我使用python 3.5.1并在Windows上通过命令提示符运行我的文件。程序运行后传递参数;即程序根据先前生成的列表提示输入。
我希望在由空格分隔的同一行上读取多个数字。 Python 2.X它不会成为raw_input的问题,但事实证明这是一个挑战。
selection = list(map(int,input("Enter items to archive (1 2 etc):").split(",")))
如果我在同一行输入两个不同的数字:
输入要归档的项目(1 2等):29 30 Traceback(最近一次通话 last):文件" G:\ Learning \ Python \ need_to_watch.py",第15行,in selection = list(map(int,input("输入要归档的项目(1 2等):")。split(",")))文件"& #34;,第1行 29 30 ^ SyntaxError:解析时意外的EOF
我放弃了一行,并尝试在循环中进行,但我得到了一个不同的错误
data=[]
while True:
entry = int(input('Item number : '))
data.append(entry)
if entry == 'q':
break
它试图评估' q'作为一个变量,即使我没有得到任何东西。
这个问题说只是使用input()。split()但看起来这不再有效.... accepting multiple user inputs separated by a space in python and append them to a list
我可以尝试捕捉EOF异常,但这似乎不是正确的方法,也不是必要的。
答案 0 :(得分:2)
如果要将参数传递给python脚本,您可能需要查看argparse:https://docs.python.org/3/library/argparse.html
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('integers', type=int, nargs='+')
args = parser.parse_args()
print(args.integers)
python script.py 1 2 3 4
[1, 2, 3, 4]
答案 1 :(得分:2)
entry = input('Enter items: ')
entry = entry.split(' ')
entry = list(map(int, entry))
print(entry)
或者更简洁:
entry = list(map(int, input('Enter items: ').split(' ')))
print(entry)
答案 2 :(得分:1)
您尝试将所有内容评估为int
,这显然不起作用。试试这个:
data = []
while True:
entry = input('Item number : ')
if entry == 'q':
break
try:
data.append(int(entry))
except:
print("Not a valid number")