如何通过input()输入多个字符串

时间:2018-03-16 16:55:36

标签: python user-input raw-input

在python中使用raw_input时,用户必须输入一个输入,然后按回车键。 有没有办法让我编写代码,代码会同时提示几个用户输入,然后按回车键运行代码?

例如: 而不是......

>>> Name: <prompt> <enter>
>>> Age: <prompt> <enter>
>>> Gender: <prompt> <enter>

它会......

>>>
Name: <prompt>
Age: <prompt>
Gender: <prompt>
<enter>

3 个答案:

答案 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)

这意味着您不必担心用户输入分隔符。