问题是要使用4个整数作为在单独的行中输入的输入。 例如:
1
1
1
2
以下代码可完成所需的操作。我想了解它的工作原理。
x,y,z,n=[int(input()) for _ in range(4)]
答案 0 :(得分:1)
欢迎!
此代码等效于
x = int(input())
y = int(input())
z = int(input())
n = int(input())
input()
函数从用户读取输入,int
尝试将其转换为整数,并将其分配给每个变量(x
,y
, z
和n
)。
代码也可以写为:
numbers = []
for i in range(4): # Loop 4 times
numbers[i] = int(input())
x = numbers[0]
y = numbers[1]
z = numbers[2]
n = numbers[3]
与您提供的表格更相似。但是作者使用了两个python功能,这些功能使代码更小(更富表现力)。我会同时解释:
在编程过程中很多次,您将多次执行一条命令并将结果存储到列表中,例如将值从一个列表映射到另一个列表。在这种情况下,您将具有以下内容:
numbers_til_5 = [0,1,2,3,4,5]
squares_til_5 = []
for n in numbers_til_5:
squares_til_5.append(n*n)
使用列表理解语法,我们可以做到:
sqaures_til_5 = [ n*n for n in numbers_til_5]
另一个功能是:
此功能使您可以在单个语句中获取列表的元素。 在示例中,我们有:
x = numbers[0]
y = numbers[1]
z = numbers[2]
n = numbers[3]
可以用x,y,z,n = numbers
代替。
另一种有趣的形式是,当您只关心第一个参数时,例如:
first = numbers[0]
rest = numbers[1:] # This get all elements starting from the first
可以写为first, *rest = numbers
。
我希望我能说清楚。
答案 1 :(得分:0)
for _ in range(4)
重复int(input())
4次,所以方括号现在包含前四个输入[1, 1, 1, 2]
。
在Python中,您可以一次分配多个变量,因此x,y,z和n将被分配给相应的括号值。
为了更好地理解,您可以提取以下各个部分:
x = int(input())
y = int(input())
z = int(input())
n = int(input())
答案 2 :(得分:0)
它正在运行一个循环,以整数形式输入值,然后按顺序将这些值提供给变量x,y,z,n。 range(n)将循环运行0-n的范围(在这种情况下为4次)。 _表示运行循环时的“任何内容”。