|
|
发表于 2023-5-23 19:37:29
|
显示全部楼层
从您提供的代码中,我看不到图片,但是根据您的代码,我发现了几个可能的问题:
1. 在 while 循环中,您的代码会等待用户输入一个值或“STOP”来停止循环。但是如果用户输入了其他非数字的字符串, int(n) 将会抛出一个 ValueError ,因为这个字符串无法转换为整数。
2. 在结束 while 循环后,您再次尝试将输入转换为整数 target=int(input("请录入目标整数:")) 。如果用户输入的不是整数,这也会导致 ValueError 。
3. 在您的代码中,您试图获取字符串 n 的长度 len(n) ,这可能不是您想要的。您可能想要获取列表 num 的长度 len(num) 。
4. 您的循环 if i<len(n)-1: 不在任何循环体内,这将只会执行一次。为了遍历整个列表,您需要将此部分代码放入一个循环中。同样, if result==target: 后面的代码也只会执行一次,应该放入循环内。
下面是一个修改后的版本,应该可以解决您的问题:
- num=[]
- n=0
- i=0
- j=1
- while True:
- try:
- n=input("请录入一个整数(输入STOP结束):")
- if n!="STOP":
- num.append(int(n))
- else:
- target=int(input("请录入目标整数:"))
- break
- except ValueError:
- print("输入的不是一个整数,请重新输入。")
- while i < len(num) - 1:
- while j < len(num):
- result=num[i]+num[j]
- if result==target:
- print([i,j])
- break
- j+=1
- else:
- i+=1
- j=i+1
复制代码
这段代码应该可以根据用户输入的整数和目标整数,找到相加等于目标的两个整数的索引。请注意,如果列表中没有任何两个数的和等于目标整数,该程序将不会输出任何结果。 |
|