Python “为什么有必要这样做?”;输入();排在队伍的最后?还是这样?

Python “为什么有必要这样做?”;输入();排在队伍的最后?还是这样?,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

我在udemy上的第一门课程是用python实现自动化。首先我们写了一个小脚本,问我们的名字和年龄。好啊因此,当他们让我们编写代码时,它让我们放在两行中,分别是“name=input()”和“age=input()”,因此它会提示用户输入他们的姓名和年龄

所以我的问题是,如果我颠倒顺序说“input()=name”和“input()=age”,为什么它不起作用?我认为从逻辑上讲,它应该先读取“input()”函数,这样它就知道该如何询问用户一些问题。为什么是这样?我是否必须始终确保我的“input()”位于行的末尾而不是开头

对不起,我只是刚刚开始学习。(我还有64位windows python的最新版本。)我想是3.9.2


编辑:我现在意识到这被认为是离题的。如果我要删除它,请告诉我。

这就是语言的工作原理(以及大多数语言作业的工作原理)

您可以看到该语言的完整语法规范。与此相关的是分配规范:

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好的,谢谢,这现在是有意义的。也就是说,请注意,关于语言设计的“为什么”问题在这里通常被认为是离题的。再见,好的,再次谢谢