如何在Python中从用户处获取多个输入

如何在Python中从用户处获取多个输入

这对于初学者来说是一个常见的问题。它可能会在面试中被问到。有时,开发人员也需要在一行中获取多个输入。在C / C++中可以很容易地通过使用 scanf() 方法来实现。然而,Python提供了两种方法来帮助我们在一行中获取多个值或输入。

  • 使用split()方法
  • 使用列表推导

在本教程中,我们将学习如何使用不同的方法在一行中获取多个输入。

使用split()方法

split() 方法用于从用户那里获取多个输入。语法如下。

语法 –

input().split(separator, maxsplit)

参数 –

  • 间隔符参数会根据指定的分隔符将输入内容拆分开。默认情况下,空格是指定的分隔符。

split() 方法用于拆分Python字符串,但我们也可以用它来获取多个值。

让我们来理解下面的示例。

示例

# taking two inputs at a time
a, b, c = input("Enter three values: ").split()
print("Enter Your First Name: ", a)
print("Enter Your Last Name: ", b)
print("Enter Your Class: ", c)
print()

# taking three inputs at a time
x, y, z = input("Enter three values: ").split()
print("Total number of students: ", x)
print("Number of passed student : ", y)
print("Number of failed student : ", z)
print()

# taking four inputs at a time
a, b, c, d = input("Enter four values: ").split()
print("First number is {}, second number is {} third is {} and fourth is {}".format(a, b, c, d))
print()

输出:

Enter three values: David Warner MCA
Enter Your First Name:  David
Enter Your Last Name:  Warner
Enter Your Class:  Warner

Enter three values: 100 67 33
Total number of students:  100
Number of passed students :  67
Number of failed students :  33

Enter four values: 1 2 3 4
First number is 1, second number is 2 third is 3 and fourth is 4
Enter multiple values: 4 6 7 2 4
List of students:  [4, 6, 7, 2, 4]

解释 –

在上面的代码中,我们在一行中获取多个输入。值是以空格分隔的,您可以使用逗号(,)或任何其他字符。

使用列表理解

我们也可以使用 map() 方法和 split() 方法将值取出并将它们转换为列表。让我们理解以下示例。

示例2:

# Taking multiple inputs in a single line
# and type casting using list() function
x = list(map(int, input("Enter multiple values: ").split()))
print("List of students: ", x)

输出:

Enter multiple values: 4 6 7 2 4
List of values:  [4, 6, 7, 2, 4]

解释 –

我们在上面的代码中使用空白作为分隔符,并将输入放在一行中,并将其强制转换为一个列表。

从用户那里获取矩阵输入

矩阵是一个矩形数组,或者我们可以说是数据或数字的矩形排列。矩阵可以采用任何值,例如整数值、浮点值、字符串、复数等。这些值水平放置称为行,而垂直值称为“列”。如果矩阵包含 r 个行和 c 个列,矩阵的阶数将为 r x c。

示例

row = int(input("Enter the number of rows:"))
column = int(input("Enter the number of columns:"))

# Initialize matrix
matrix = []
print("Enter the entries row-wise:")

# For user input
for i in range(row):         # A for loop for row entries
    a =[]
    for j in range(column):  # A for loop for column entries
        a.append(int(input()))
    matrix.append(a)

# For printing the matrix
for i in range(row):
    for j in range(column):
        print(matrix[i][j], end = " ")
    print()

输出:

Enter the number of rows:3
Enter the number of columns:3
Enter the entries row-wise:
1
2
3
4
5
6
7
8
9
1 2 3 
4 5 6
7 8 9

以上可以用以下一行实现。

示例

row = int(input("Enter the number of rows:"))
column = int(input("Enter the number of columns:"))
matrix = [[int(input()) for x in range (column)] for y in range(row)]
print(matrix)

输出:

Enter the number of rows:3
Enter the number of columns:3
1
2
3
4
5
6
7
8
9
1 2 3 
4 5 6
7 8 9

使用map()函数和numpy库

有一个流行的库叫做Numpy,可以用于任何科学计算。它为多维数组提供了广泛的支持。我们将使用这个库来处理输入的矩阵。让我们来看一下下面的示例。

示例

import numpy as np

row = int(input("Enter the number of rows:"))
column = int(input("Enter the number of columns:"))


print("Enter the entries in a single line (separated by space): ")

# User input of entries in a 
# single line separated by space
entries = list(map(int, input().split()))

# For printing the matrix
matrix = np.array(entries).reshape(row, column)
print(matrix)

输出:

Enter the number of rows:2
Enter the number of columns:2
Enter the entries in a single line separated by space: 1 2 3 1 
[[1 2]
 [3 1]]

结论

在本教程中,我们展示了从用户那里获得多个值的不同方法。这节省了代码行数,并且使用起来相当容易。我们还将其描述为一个矩阵,我们可以创建一个用户定义的矩阵。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程