print('when asked for first two numbers type 27')
response = int(input('first two numbers of the list? '))
start_list = list(response)
print('first two numbers of the list are', start_list)
if start_list[0] < start_list[1]:
new = start_list[0] + 1
start_list.insert(2, new)
print('first algo run gives', start_list)
答案 0 :(得分:1)
我的猜测是你希望用户输入两个用空格分隔的整数。这绝对不是你怎么做的。首先,在类似int
的输入上应用"123 456"
不是正确的方法。您需要str.split
,然后将每个元素转换为整数。对此的常见习语是:
x, y = map(int, input('Enter two numbers: ').split())
Enter two numbers: 123 456
print(x, y)
(123, 456)
在此之后,您可以将您的号码放在一个列表中:
start_list = [x, y]
或者,如果您不想解压缩map
结果,可以使用:
start_list = list(map(int, input('Enter two numbers: ').split()))
如果您正在使用python2,请忽略list
位。
请注意,如果用户输入多于或少于两个以空格分隔的数字,则解包不是一个好主意。在这样的事件中,你最好不要开始解包结果。
答案 1 :(得分:0)
如果您想接受2个号码,可能需要使用raw_input
response = raw_input('first two numbers of the list? ') # this will give you a string like '1 2'
然后您想将其转换为整体列表
start_list = [int(x) for x in response.split()]
然后你的其余代码应该可以正常工作
答案 2 :(得分:0)
您可以对列表进行一些修改
print('when asked for first two numbers type 27')
response = input('first two numbers of the list? ')
start_list = list(map(int, response.split()))
print('first two numbers of the list are', start_list)
if start_list[0] < start_list[1]:
new = start_list[0] + 1
start_list.insert(2, new)
print('first algo run gives', start_list)
输出
when asked for first two numbers type 27
first two numbers of the list? 1 10
first two numbers of the list are [1, 10]
first algo run gives [1, 10, 2]
答案 3 :(得分:0)
使用coldspeed的建议,并认识到split()
会返回字符串列表......
然后记住将字符串转换回int,这似乎解决了我的系统上的问题:
start_list = list(input('Enter two numbers: ').split())
print('first two numbers of the list are', start_list)
if start_list[0] < start_list[1]:
new = int(start_list[0]) + 1 # need to convert first string to an int with a call to int()
start_list.insert(2, new)
print('first algo run gives', start_list)
答案 4 :(得分:0)
我看到你正在学习Python。这是我的建议:
让用户输入两个号码的最佳方法是提示他两次。函数input
返回一个字符串,您可以将其转换为int(就像您所做的那样)。
print('when asked for first two numbers enter 2 and 7')
response1 = int(input('Enter the first integer'))
response2 = int(input('Enter the second integer'))
将这两个值放入列表中。最简单的方法是使用[...]
语法:
start_list = [response1, response2]
print('first two numbers of the list are', start_list)
现在追加你的第三个元素。
if start_list[0] < start_list[1]:
new_value = start_list[0] + 1 # don't use the name new
start_list.append(new_value) # append always adds it at the end
print('first algo run gives', start_list) # what's an algo?
名称new
不是变量的好名称,因为它具有特殊含义。
如果您知道要将值放在列表的末尾,请使用append
而不是insert
。
答案 5 :(得分:-1)
我认为错误在于此代码:
start_list = list(response)
你应该把你的回答放在[]之间,如:
start_list = list([response])