哪位大神帮忙看一下这段代码是哪里出错了?
a = input("请录入一个整数(输入STOP结束):")nums =
while a != 'STOP':
a = input("请录入一个整数(输入STOP结束):")
nums.append(int(a))
target =int(input("请录入目标整数:"))
n = len(nums) # 获取 nums 的长度,并将结果存放到 n 变量中 #
for i in range(n):
for j in range(i+1,n):# 这里应该填什么呢 #
if nums + nums == target:
print()# 将找到的两个元素下标值以列表的形式打印出来 #
哪里有问题? the_ben 发表于 2023-1-12 21:40
哪里有问题?
Traceback (most recent call last):
File "D:\python学习\twoSum0\twoSum0.py", line 5, in <module>
nums.append(int(a))
ValueError: invalid literal for int() with base 10: 'STOP'
这个报错 本帖最后由 靘绛 于 2023-1-12 22:06 编辑
手上没有安装Python的电脑,可能问题找不全,我写的东西更复杂更差了……算法没学。
while和转换数据类型前前先判断
range具体参考https://fishc.com.cn/thread-164088-1-1.html
a = input("请录入一个整数(输入STOP结束):")
nums = []
while a != 'STOP':
nums.append(int(a))
a = input("请录入一个整数(输入STOP结束):")
target =int(input("请录入目标整数:"))
n = len(nums) # 获取 nums 的长度,并将结果存放到 n 变量中 #
for i in range(n):
for j in range(n):# 这里应该填什么呢 # #我也不知道呢,我猜你可能是想写这个意思吧#
if nums + nums == target:
print()# 将找到的两个元素下标值以列表的形式打印出来 # 因为输入 STOP 不能被转为整数,所以报错,
不要在输入后转为整数,而是要先判断是不是 STOP 再转为整数
故对你的代码修改如下:
nums = []
while (a := input("请录入一个整数(输入STOP结束):")) != 'STOP':
nums.append(int(a))
target =int(input("请录入目标整数:"))
n = len(nums) # 获取 nums 的长度,并将结果存放到 n 变量中 #
for i in range(n):
for j in range(i+1,n):# 这里应该填什么呢 #
if nums + nums == target:
print()# 将找到的两个元素下标值以列表的形式打印出来 # nums = []
while True:
s = input("请录入一个整数(输入STOP结束): ")
try:
nums . append(int(s))
except Exception as e:
if s . lower() == 'stop' : break
else : print('请你输入一个数字!\n')
print()
target = int(input("请录入目标整数:"))
for i in range(len(nums) - 1) :
for j in range(i + 1 , len(nums)):
if nums + nums == target : print() nums = # 这句话是把a转化为整数,但是没有考虑到a为stop
代码可以参考楼上
另外,如果这个回答对你有帮助的话,请设置“最佳答案”! STOP不是整数,所以不能被转换,就报错了 jackz007 发表于 2023-1-12 22:52
非常感谢,学习了!! 非常感谢大家回答,获益匪浅!
页:
[1]