|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Mr.KKKK 于 2023-4-1 16:45 编辑
以下代码哪里错了,结果总是为'没找到'
nums = []
isinput = True
while isinput == True:
a = input('请录入一个整数(输入STOP结束):')
if a != 'STOP':
nums.append(a)
else:
isinput = False
target = input('请输入目标整数:')
n = len(nums)
for i in range(n):
for j in range(i+1,n):
if nums[i] + nums[j] == target:
print([i,j])
else:
print('没找到')
代码中有两个问题需要解决。
首先,从输入中获取的整数被存储为字符串类型,而我们需要将它们转换为整数类型。
第二个问题是,在else子句中使用print('没找到')是不正确的,
因为这会在每次循环没有找到匹配时都输出"没找到"。我们需要在循环之外检查是否找到了匹配的元素对。
请参阅修改后的代码:
- nums = []
- isinput = True
- while isinput == True:
- a = input('请录入一个整数(输入STOP结束):')
- if a != 'STOP':
- nums.append(int(a)) # 将输入的数字转换为整数类型
- else:
- isinput = False
- target = int(input('请输入目标整数:')) # 将目标整数转换为整数类型
- n = len(nums)
- found = False # 设置一个标志来检查是否找到匹配的元素对
- for i in range(n):
- for j in range(i + 1, n):
- if nums[i] + nums[j] == target:
- print([i, j])
- found = True # 如果找到匹配的元素对,将found设置为True
- if not found:
- print('没找到')
复制代码
现在代码应该能够正常工作并给出正确的结果。
|
|