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