mumei2018 发表于 2023-5-1 22:31:00

求大佬看看 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:37:27

本帖最后由 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.')
经过修改后,程序就能够正确地输出符合要求的结果。希望对你有所帮助!
有用请设置最佳答案

mumei2018 发表于 2023-5-1 22:44:37

sfqxx 发表于 2023-5-1 22:37
根据代码运行结果,可以发现没有找到两个数的和为目标值,提示 "not found." 。这说明程序中存在问题,具体 ...

谢谢你   修改那一部分num在我的代码里是有的   我发的图里面也是有的发帖输入的时候也是有的 不知为啥帖子里不显示

sfqxx 发表于 2023-5-1 22:45:19

mumei2018 发表于 2023-5-1 22:44
谢谢你   修改那一部分num在我的代码里是有的   我发的图里面也是有的发帖输入的时候也是有的 不知为啥 ...

还是有问题?

mumei2018 发表于 2023-5-1 22:48:42

sfqxx 发表于 2023-5-1 22:37
根据代码运行结果,可以发现没有找到两个数的和为目标值,提示 "not found." 。这说明程序中存在问题,具体 ...

改成int就成功运行了 谢谢你啦!不过发帖的时候 不知为啥老有一部分字符不显示

歌者文明清理员 发表于 2023-5-1 22:50:36

sfqxx 发表于 2023-5-1 22:37
根据代码运行结果,可以发现没有找到两个数的和为目标值,提示 "not found." 。这说明程序中存在问题,具体 ...

你的num[ i ]的[ i ]变了

sfqxx 发表于 2023-5-1 22:50:42

mumei2018 发表于 2023-5-1 22:48
改成int就成功运行了 谢谢你啦!不过发帖的时候 不知为啥老有一部分字符不显示

很正常,因为倾斜的字体就是用(i)(把括号替换成[],下同),而您的程序也出现了(i)

sfqxx 发表于 2023-5-1 22:51:58

mumei2018 发表于 2023-5-1 22:48
改成int就成功运行了 谢谢你啦!不过发帖的时候 不知为啥老有一部分字符不显示

不客气,解决了就行{:10_256:}
页: [1]
查看完整版本: 求大佬看看 19回动手第一题 代码看着跟答案差不多 但就是得不到正确结果