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

问题描述 投票:1回答:3

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

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

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

它会......

>>>
Name: <prompt>
Age: <prompt>
Gender: <prompt>
<enter>
python user-input raw-input
3个回答
2
投票

不,input()只允许提供一个字符串输入。

你能做的是:

name, age, gender = input('Enter Name|Age|Gender:').split('|')

# user inputs "ABC|30|M"

print(name, age, gender)
# ABC 30 M

现在你只依赖于用户名字中没有|字符的用户。

或者,当然,您可以提出单独的问题。


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()中的另一个标记,以便在需要时允许空格。


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)

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

© www.soinside.com 2019 - 2024. All rights reserved.