在python中使用raw_input时,用户必须输入一个输入,然后按回车键。 有没有办法让我编写代码,代码会同时提示几个用户输入,然后按回车键运行代码?
例如: 而不是......
>>> Name: <prompt> <enter>
>>> Age: <prompt> <enter>
>>> Gender: <prompt> <enter>
它会......
>>>
Name: <prompt>
Age: <prompt>
Gender: <prompt>
<enter>
答案 0 :(得分:2)
不,input()
只允许提供一个字符串输入。
你可以做的是:
name, age, gender = input('Enter Name|Age|Gender:').split('|')
# user inputs "ABC|30|M"
print(name, age, gender)
# ABC 30 M
现在,您只需依赖用户名称中没有|
个字符。
或者,当然,你可以提出不同的问题。
答案 1 :(得分:0)
一种方法是这样做:
x=raw_input("Enter values: ")
a=x.split(' ')
现在,您在a
中拥有单独的值。
演示:
>>> x=raw_input("Enter values: ")
Enter values: 12 65 hello
>>> a=x.split(' ')
>>> a
['12', '65', 'hello']
然后你可以做age=a[0]
等等。
您可以直接使用拆分:
a,b,c=raw_input("Enter values: ").split(' ')
一个缺点是,如果用户没有给出三个值,您将收到错误。如果之后拆分,则可以先对输入执行控制。
注意:
如果您想在数据中使用空格,则此方法可能会导致问题,因为空格用作分隔符。切换到split()
中的另一个标记,以便在需要时允许空格。
答案 2 :(得分:0)
如果name
始终是字母,age
将永远是数字,gender
将始终是字母,并且它们按顺序排列,这应该有效:
info=input("what is your name, age and gender?")
name=""
age=""
gender=""
var="n"
for i in info:
if var=="n":
try:
int(i)
var="a"
except:
name+=i
if var=="a":
try:
int(i)
age+=i
except:
var="g"
if var=="g":
gender+=i
print(name, age, gender)
这意味着您不必担心用户输入分隔符。