019动动手第一题
nums = []while True:
x = input('请输入一个整数(输入STOP停止)')
if x != 'STOP':
y = int(x)
nums.append(y)
else:
break
target = input('请录入目标整数')
n = len(nums)
result=[]
for i in range(n):
for j in range(i + 1, n):
if nums + nums == target:
result.append((i,j))
if result:
print(result)
else:
print('没有符合条件的数')
为什么完不成这个任务 输入任何数都会显示没有符合条件的数{:10_249:} 本帖最后由 jackz007 于 2025-4-1 17:26 编辑
原因在这里:
if nums + nums == target:
nums + nums 是数字,target 是字符串,二者永远不可能相等
这一句
target = input('请录入目标整数')
得改为
target = int(input('请录入目标整数'))
修改后,target 也是数字,问题就解决了。
nums = []# 修正1:初始化列表应使用方括号
while True:
x = input('请输入一个整数(输入STOP停止)')
if x != 'STOP':
y = int(x)
nums.append(y)
else:
break
target = int(input('请录入目标整数'))# 修正2:将输入转换为整数
n = len(nums)
result = []# 修正3:初始化结果列表
for i in range(n):
for j in range(i + 1, n):
if nums + nums == target:# 修正4:正确访问列表元素
result.append((i,j))
if result:
print(result)
else:
print('没有符合条件的数')
问题分析:
[*]原代码未正确初始化列表,应该用 nums = []
[*]目标整数未转换为整型,导致比较时类型不匹配(字符串 vs 整数)
[*]条件判断错误写成 nums + nums 应改为 nums + nums
[*]结果列表未初始化会导致NameError,应添加 result = []
测试示例:
输入列表:2,7,11,15,目标值 9
输出结果应为:[(0,1)]
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]