输入与打印功能..混淆
Inputs vs print functions.. CONFUSED
我是学习 python 和编码的全新人物,真的。我从事技术支持多年,但现在正在尝试学习编码。
无论如何,我正在参加名为 100 天编码的 UDEMY 课程。
我将在这里列出的第一个练习..
print("你好" + input("你叫什么名字") + "!")
我不太明白的是当你 运行 这段代码.. 它打印出输入(“你叫什么名字”)并完全忽略打印(“你好”
为什么它在打印出输入字符串之前不打印 ("Hello"?
输入总是先得到 运行 吗??
我的意思是如果你取出输入然后它只会打印你好......所以因为你好是在输入之前输入的......为什么它不在输入之前读取打印..
它在下一个练习中做同样的事情。他们让我们输入以下内容
print( len( input("你叫什么名字?")))
但是它再次打印出输入(“你叫什么名字”),然后再返回到打印(len(
并打印用户输入的字符串的长度,即使打印是在同一行的输入之前输入的?
我希望我对我感到困惑的事情有所了解?
任何帮助将不胜感激?
print("Hello " + input("What is your name ") + "!")
解释为:
print(something)
哪里
something = "Hello " + input_answer + "!"
哪里
input_answer = input("What is your name ")
要知道要打印什么,您需要知道 something
是什么,为此您需要知道 input_answer
是什么。这就是评估语句的顺序。
您可以对第二个示例执行相同的操作。
当您运行以下内容时:
print("Hello " + input("What is your name ") + "!")
python 的解释器(其职责是理解你的代码并执行它),想在这里打印 "Hello" + input(...) + "!"
的东西,所以它必须等待 [= 的结果12=],然后打印出整个参数。
欢迎来到编程,
在上面的语句中 print("Hello " + input("What is your name ") + "!")
每当调用 print 时,print 都会评估要打印的参数。在打印参数中,字符串还包含一个函数调用。所以打印语句中的函数被调用,即 input("What is your name")
这个输入函数打印字符串 What is your name
并从控制台读取输入,与打印语句的参数连接。
每种编程语言都会将一行代码分解成称为标记的东西
所以通常发生的是“打印”和“输入”功能被分成两个任务,它们根据您的调用方式排队。
在你的例子中,你首先调用了“input”(因为它在括号内),因此打印了“input”内的语句。
另一个例子是
math.cos(math.sin(30))
所以在这种情况下,将计算 30 的 sin,然后计算 sin(30) 的 cos,而不是 cos(30)
的 sin
希望这个解释对您有所帮助
不,您从根本上误解了程序的执行方式。 Python 代码(大部分)是从上到下执行的,这是相对安全的假设。但它 并不是 完全“从左到右”执行的。表达式可以有子表达式。 print
是一个函数。如果你这样做 function(<sub-expression1>, <sub-expression2>)
,子表达式将从左到右完全计算,因此它们的值可以作为函数参数传递。因此,如果您有三个不同的函数,foo
、bar
和 baz
,并且您执行:
foo(bar(), baz())
然后首先评估(调用)bar()
,然后是 baz()
,最后调用 foo
,并将先前调用的结果作为参数。参见:
def foo(x, y):
print("In foo")
return x + y
def bar():
print("In bar")
return 1
def baz():
print("In baz")
return 10
result = foo(bar(), baz())
print("result was", result)
所以运行上面的程序输出:
In bar
In baz
In foo
result was 11
因此 input
打印您作为参数传递给它的值,然后 等待换行符分隔的用户输入 .
您必须了解如何评估您选择使用的语言结构。考虑另一种类型的表达式,条件表达式,它有三个子表达式,例如 <expression 1> if <expression 2> else <expression 3>
,然后 <expression 2>
,首先评估条件,如果它是真实的,那么 <expression 1>
被评估为return 整个表达式的值,否则如果它是假的,<expression 2>
被评估为整个事物的 return 值。
So consider:
... return n < 10
...
>>> condition(1)
True
>>> condition(12)
False
>>> "small" if condition(5) else "big"
'small'
>>> "small" if condition(25) else "big"
'big'
所以请注意,条件表达式“短路”,这是为了潜在地避免不必要的、昂贵的操作。
并根据条件的真实性证明<expression 1>
或<expression 2>
中只有一个被评估,见:
>>> def a():
... print("a executed")
... return "small"
...
>>> def b():
... print("b executed")
... return "big"
...
>>> a() if condition(4) else b()
a executed
'small'
>>> a() if condition(14) else b()
b executed
'big'
当您输入 print()
时,您可以看到 input()
作为一个函数,它开始 运行 “Hello” 然后您的程序将进入 input()
和您的print()
保持 运行ning 直到你给你的输入一个值。希望我的解释能帮到你:)
我是学习 python 和编码的全新人物,真的。我从事技术支持多年,但现在正在尝试学习编码。 无论如何,我正在参加名为 100 天编码的 UDEMY 课程。 我将在这里列出的第一个练习.. print("你好" + input("你叫什么名字") + "!")
我不太明白的是当你 运行 这段代码.. 它打印出输入(“你叫什么名字”)并完全忽略打印(“你好”
为什么它在打印出输入字符串之前不打印 ("Hello"?
输入总是先得到 运行 吗??
我的意思是如果你取出输入然后它只会打印你好......所以因为你好是在输入之前输入的......为什么它不在输入之前读取打印..
它在下一个练习中做同样的事情。他们让我们输入以下内容 print( len( input("你叫什么名字?"))) 但是它再次打印出输入(“你叫什么名字”),然后再返回到打印(len( 并打印用户输入的字符串的长度,即使打印是在同一行的输入之前输入的?
我希望我对我感到困惑的事情有所了解? 任何帮助将不胜感激?
print("Hello " + input("What is your name ") + "!")
解释为:
print(something)
哪里
something = "Hello " + input_answer + "!"
哪里
input_answer = input("What is your name ")
要知道要打印什么,您需要知道 something
是什么,为此您需要知道 input_answer
是什么。这就是评估语句的顺序。
您可以对第二个示例执行相同的操作。
当您运行以下内容时:
print("Hello " + input("What is your name ") + "!")
python 的解释器(其职责是理解你的代码并执行它),想在这里打印 "Hello" + input(...) + "!"
的东西,所以它必须等待 [= 的结果12=],然后打印出整个参数。
欢迎来到编程,
在上面的语句中 print("Hello " + input("What is your name ") + "!")
每当调用 print 时,print 都会评估要打印的参数。在打印参数中,字符串还包含一个函数调用。所以打印语句中的函数被调用,即 input("What is your name")
这个输入函数打印字符串 What is your name
并从控制台读取输入,与打印语句的参数连接。
每种编程语言都会将一行代码分解成称为标记的东西 所以通常发生的是“打印”和“输入”功能被分成两个任务,它们根据您的调用方式排队。
在你的例子中,你首先调用了“input”(因为它在括号内),因此打印了“input”内的语句。 另一个例子是 math.cos(math.sin(30)) 所以在这种情况下,将计算 30 的 sin,然后计算 sin(30) 的 cos,而不是 cos(30)
的 sin希望这个解释对您有所帮助
不,您从根本上误解了程序的执行方式。 Python 代码(大部分)是从上到下执行的,这是相对安全的假设。但它 并不是 完全“从左到右”执行的。表达式可以有子表达式。 print
是一个函数。如果你这样做 function(<sub-expression1>, <sub-expression2>)
,子表达式将从左到右完全计算,因此它们的值可以作为函数参数传递。因此,如果您有三个不同的函数,foo
、bar
和 baz
,并且您执行:
foo(bar(), baz())
然后首先评估(调用)bar()
,然后是 baz()
,最后调用 foo
,并将先前调用的结果作为参数。参见:
def foo(x, y):
print("In foo")
return x + y
def bar():
print("In bar")
return 1
def baz():
print("In baz")
return 10
result = foo(bar(), baz())
print("result was", result)
所以运行上面的程序输出:
In bar
In baz
In foo
result was 11
因此 input
打印您作为参数传递给它的值,然后 等待换行符分隔的用户输入 .
您必须了解如何评估您选择使用的语言结构。考虑另一种类型的表达式,条件表达式,它有三个子表达式,例如 <expression 1> if <expression 2> else <expression 3>
,然后 <expression 2>
,首先评估条件,如果它是真实的,那么 <expression 1>
被评估为return 整个表达式的值,否则如果它是假的,<expression 2>
被评估为整个事物的 return 值。
So consider:
... return n < 10
...
>>> condition(1)
True
>>> condition(12)
False
>>> "small" if condition(5) else "big"
'small'
>>> "small" if condition(25) else "big"
'big'
所以请注意,条件表达式“短路”,这是为了潜在地避免不必要的、昂贵的操作。
并根据条件的真实性证明<expression 1>
或<expression 2>
中只有一个被评估,见:
>>> def a():
... print("a executed")
... return "small"
...
>>> def b():
... print("b executed")
... return "big"
...
>>> a() if condition(4) else b()
a executed
'small'
>>> a() if condition(14) else b()
b executed
'big'
当您输入 print()
时,您可以看到 input()
作为一个函数,它开始 运行 “Hello” 然后您的程序将进入 input()
和您的print()
保持 运行ning 直到你给你的输入一个值。希望我的解释能帮到你:)