2016-11-10 46 views
0

这里相当简单的问题。我正在构建一个hello世界程序的例子,它会在用户输入名字时向用户打招呼,而不使用任何变量。我有嵌套在打印语句中的输入

print('What is your name?') 

print('Hello, ' +str(input()) + ', nice to meet you!') 

它给出了所需的结果。为什么输入语句尽管嵌套在print语句之前,在print语句之前执行''''?谢谢!

+2

你为什么认为嵌套在里面意味着它会在稍后执行?如果'input'还没有执行,你会期望print'打印吗? – BrenBarn

+0

因为和数学一样,括号内的东西在它们之外的东西之前被评估。 – Carcigenicate

回答

2

我想,你并不知道运营商的优先权。这里你正在使用+运算符。

print('Hello, ' +str(input()) + ', nice to meet you!') 

这里,在执行打印之前准备好不同的操作数表达式。由于str(input())是一个函数表达式,因此必须首先对其进行求值,以便字符串连接发生。

在其他情况下,如阶乘(sum(2,3))将导致阶乘(5),因为sum(2,3)将首先执行。 简而言之,经验法则是最内层的表达式首先从左到右进行评估。

2
3 * (2 + 2) 

预期答案会是什么?这是12,因为括号内的部分首先被评估。

编程中也是如此。括号外的东西依赖于括号内的东西,所以括号内的东西首先被评估。