Python “为什么有必要这样做?”;输入();排在队伍的最后?还是这样?
我在udemy上的第一门课程是用python实现自动化。首先我们写了一个小脚本,问我们的名字和年龄。好啊因此,当他们让我们编写代码时,它让我们放在两行中,分别是“name=input()”和“age=input()”,因此它会提示用户输入他们的姓名和年龄 所以我的问题是,如果我颠倒顺序说“input()=name”和“input()=age”,为什么它不起作用?我认为从逻辑上讲,它应该先读取“input()”函数,这样它就知道该如何询问用户一些问题。为什么是这样?我是否必须始终确保我的“input()”位于行的末尾而不是开头 对不起,我只是刚刚开始学习。(我还有64位windows python的最新版本。)我想是3.9.2Python “为什么有必要这样做?”;输入();排在队伍的最后?还是这样?,python,input,variable-assignment,python-3.9,Python,Input,Variable Assignment,Python 3.9,我在udemy上的第一门课程是用python实现自动化。首先我们写了一个小脚本,问我们的名字和年龄。好啊因此,当他们让我们编写代码时,它让我们放在两行中,分别是“name=input()”和“age=input()”,因此它会提示用户输入他们的姓名和年龄 所以我的问题是,如果我颠倒顺序说“input()=name”和“input()=age”,为什么它不起作用?我认为从逻辑上讲,它应该先读取“input()”函数,这样它就知道该如何询问用户一些问题。为什么是这样?我是否必须始终确保我的“inpu
编辑:我现在意识到这被认为是离题的。如果我要删除它,请告诉我。这就是语言的工作原理(以及大多数语言作业的工作原理) 您可以看到该语言的完整语法规范。与此相关的是分配规范:
assignment:
| NAME ':' expression ['=' annotated_rhs ]
| ('(' single_target ')'
| single_subscript_attribute_target) ':' expression ['=' annotated_rhs ]
| (star_targets '=' )+ (yield_expr | star_expressions) !'=' [TYPE_COMMENT]
| single_target augassign ~ (yield_expr | star_expressions)
这有点难读。但这里的重要部分可以归结为:
NAME = expression
=
的右侧是一个计算结果为值的表达式。左侧的名称是数据应关联的名称
例如,
input()
是一个计算值的表达式,name
是与该值关联的名称。几乎所有编程语言都使用从左到右的无向变量赋值(使用等号=
),变量在左侧,值在右侧。要创建变量x
并将其值指定为1,请使用:
x = 1
有些语言,如R,支持有向变量赋值。如果要使用向右分配将x分配给1
,可以使用:
1 -> x
Python中没有这方面的等价物。这不是语言的构造方式
使用
input
时,调用input
函数会提示用户输入值,捕获值,然后将其分配给变量。要做到这一点,变量必须位于等号的左侧。在大多数编程语言中,如果不是所有的变量,那么在为其分配任何其他内容之前都要先清除变量名,这就是为什么input()不能放在第一位,因为它是一个函数。在为变量赋值之前,必须先清除变量赋值语法通常是destination=new\u value
。您也不能在Python中运行42=whater
,只有whater=42
可以运行。有关Python中赋值的正式定义,请参阅<代码>(target_list“=”)位于开头意味着任务的目标(被分配到的东西)必须在=
@CharlesDuffy好的,谢谢,这现在是有意义的。也就是说,请注意,关于语言设计的“为什么”问题在这里通常被认为是离题的。再见,好的,再次谢谢