我已经获得了以下内容,并且我要求提供值的类型及其返回的表达式:
>>> b = 10
>>> c = b > 9
>>> c
我知道在第一部分中,我们将b
定义为10,但在第二句中,我将其解释为:将c
定义为相等到b>9
。现在b>9
作为一个值,没有意义,因此c
不能与它相等,所以我认为答案是error
,类型是Nonetype
。
正确答案显然是True
,但为什么呢?为什么我们首先考虑c=b
部分,然后询问它是否> 9?是否存在某种标准顺序,您应该应用这些东西?
PS:三个>>>
符号在编程中意味着什么?我正在做CS入门课程,所以请原谅任何用词不当。
答案 0 :(得分:1)
Python的顺序优先级为well documented。 b > 9
返回一个布尔值,必须先对其进行评估,然后才能使用c =
进行分配。
>>>
是解释器REPL的一部分。它对所有编程语言都没有特定的含义。
您可以在任何Python解释器中运行您的代码,以查看输出值是什么。我不确定你是什么意思得到一个Nonetype错误,因为在那些行中没有被评估为None
答案 1 :(得分:0)
我认为你之间感到困惑:
=
),它将运算符右侧的表达式结果赋给运算符左侧的变量; ==
),它测试运算符右侧和左侧的表达式是否相等,并返回一个布尔值(true / false)。第一个表达式将值10赋给变量b
。第二个表达式将表达式b > 9
(即10> 9)(其评估为真)分配给c
。因此,我希望你能看到c
最终是如何成真的。
您可能需要澄清的另一个问题是=
运算符是右关联,这意味着将首先计算运算符右侧的表达式。即在第二行中,在将结果(true)赋给b > 9
之前,首先评估c
。
回答你问题的第二部分。您的代码实际上不会像常规C#编译器那样进行编译。我不确定>>>
是什么。您使用的是在线编辑器吗?
有效的C#代码为:
int b = 10;
bool c = b > 9;
Console.WriteLine(c); //Outputs true