求大佬看看 19回动手第一题 代码看着跟答案差不多 但就是得不到正确结果
本帖最后由 mumei2018 于 2023-5-1 22:42 编辑nums = []
IsInput = True
while IsInput == True:
e_a = input("enter a number(enter S to stop):")
if e_a != 'S':
nums.append(e_a)
print(nums)
else:
IsInput = False
target = int(input("enter a target:"))
IsFind = False
n = len(nums)
for i in range(n):
for j in range(i + 1, n):
if nums + nums == target:
print()
IsFind = True
if IsFind == False:
print('not found.')
运行结果如下
= RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python311/hw/019b1a.py
enter a number(enter S to stop):80
['80']
enter a number(enter S to stop):20
['80', '20']
enter a number(enter S to stop):S
enter a target:100
not found.
本帖最后由 sfqxx 于 2023-5-1 22:38 编辑
根据代码运行结果,可以发现没有找到两个数的和为目标值,提示 "not found." 。这说明程序中存在问题,具体来说应该是在计算两个数的和时出了错误。
分析代码可以发现,在循环中计算两个数的和时使用了错误的加法操作 nums + nums,而实际上应该是 int(nums) + int(nums)。因此需要将代码中的这一行
if nums + nums == target:
改为
if int(nums) + int(nums) == target:
另外,需要注意将输入的字符串转换为整数类型,可以使用 int() 函数实现。最终修改后的代码如下所示:
nums = []
IsInput = True
while IsInput == True:
e_a = input("enter a number(enter S to stop):")
if e_a != 'S':
nums.append(int(e_a))
print(nums)
else:
IsInput = False
break
target = int(input("enter a target:"))
IsFind = False
n = len(nums)
for i in range(n):
for j in range(i + 1, n):
if int(nums) + int(nums) == target: # 修改此处
print()
IsFind = True
if IsFind == False:
print('not found.')
经过修改后,程序就能够正确地输出符合要求的结果。希望对你有所帮助!
有用请设置最佳答案 sfqxx 发表于 2023-5-1 22:37
根据代码运行结果,可以发现没有找到两个数的和为目标值,提示 "not found." 。这说明程序中存在问题,具体 ...
谢谢你 修改那一部分num在我的代码里是有的 我发的图里面也是有的发帖输入的时候也是有的 不知为啥帖子里不显示 mumei2018 发表于 2023-5-1 22:44
谢谢你 修改那一部分num在我的代码里是有的 我发的图里面也是有的发帖输入的时候也是有的 不知为啥 ...
还是有问题? sfqxx 发表于 2023-5-1 22:37
根据代码运行结果,可以发现没有找到两个数的和为目标值,提示 "not found." 。这说明程序中存在问题,具体 ...
改成int就成功运行了 谢谢你啦!不过发帖的时候 不知为啥老有一部分字符不显示 sfqxx 发表于 2023-5-1 22:37
根据代码运行结果,可以发现没有找到两个数的和为目标值,提示 "not found." 。这说明程序中存在问题,具体 ...
你的num[ i ]的[ i ]变了 mumei2018 发表于 2023-5-1 22:48
改成int就成功运行了 谢谢你啦!不过发帖的时候 不知为啥老有一部分字符不显示
很正常,因为倾斜的字体就是用(i)(把括号替换成[],下同),而您的程序也出现了(i) mumei2018 发表于 2023-5-1 22:48
改成int就成功运行了 谢谢你啦!不过发帖的时候 不知为啥老有一部分字符不显示
不客气,解决了就行{:10_256:}
页:
[1]