如何在Python的一行中从用户输入多个值?

为了读取语言C中的多个变量,我们编写类似-

//Read three variable in one line
scanf(“%d %d %d”, &x, &y, &z)

目前python没有等效于scanf()。但是,python提供了比scanf()格式字符串更强大和更详细的正则表达式。在Python中,要从用户提供多个值,我们可以使用-

input()方法:用户可以在一行中输入多个值,例如-

>>> x, y, z = input(), input(), input()40
30
10
>>> x
'40'
>>> y
'30'
>>> z
'10'

从上面的输出中,您可以看到,我们能够在一行中为三个变量提供值。

为了避免使用多种input()方法(取决于我们传递多少个值),我们可以使用列表推导或map()函数。

使用列表推导传递多个值

>>> x,y,z = [int(x) for x in input().split()]
9 12 15
>>> x
9
>>> y
12
>>> z
15

在上面的代码行中,我将输入值类型转换为整数。如果您不希望&输入为混合类型,则只需键入-

>>> x,y,z = [x for x in input().split()]
40 10 "hello"

使用映射功能

从用户传递多个值的另一种方法是使用映射函数。

>>> x,y,z = map(int, input().split())
40 54 90
>>> x
40
>>> y
54
>>> z
90