艰苦学习python ex24
我不明白为什么艰苦学习python ex24,python,python-2.x,Python,Python 2.x,我不明白为什么豆、罐、板条箱=秘方(起点)指的是果冻豆、罐、板条箱 这是从艰苦的方式学习python的Ex24。下面我将给出一个几乎相同答案的Stackoverflow问题的答案,但没有充分解释,因此我真正掌握了它 print "Let's practice everything." print 'You\'d need to know \'bout escape with \\ that do \n newlines and \t tabs.' poem = """ \tThe love
豆、罐、板条箱=秘方(起点)
指的是果冻豆、罐、板条箱
这是从艰苦的方式学习python的Ex24。下面我将给出一个几乎相同答案的Stackoverflow问题的答案,但没有充分解释,因此我真正掌握了它
print "Let's practice everything."
print 'You\'d need to know \'bout escape with \\ that do \n newlines and \t tabs.'
poem = """ \tThe lovely world with logic so firmly planted cannot discern \n the needs of love nor comprehend passion from intuition and requires an explanation \n\t\twhere there is none. """
print "-------------"
print poem
print "-------------"
five = 10 - 2 + 3 - 6
print "This should be five: %s" % five
def secret_formula(started):
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates
start_point = 10000
beans, jars, crates = secret_formula(start_point)
print "With a starting point of : %d" % start_point
print "We'd have %d beans, %d jars, and %d crates." % (beans, jars, crates)
start_point = start_point / 10
print "We can also do that this way:"
print "We'd have %d beans, %d jars, and %d crates." % secret_formula(start_point)
这是我在别处找到的答案:
由于Python的作用域规则,jelly_bean的名称仅在secret_formula函数中有效。这就是为什么不能在函数外通过诸如print jelly_beans之类的语句引用它。
请注意,secret_公式将一个元组返回给它的调用者。因此,当您键入:beans、jars、crates=secret\u formula(起始点)时,您可以指定对secret\u formula的调用(使用特定参数),并将元组的内容分配给三个不同的名称
- jelly_bean的返回值被分配给bean
- JAR的返回值被分配给JAR
- 板条箱的返回值分配给板条箱
问:为什么我们不能称豆子为果冻豆?为什么我们可以用罐子和板条箱
我知道我们把1000乘以50000
然而,为什么我们会在以下位置得到答案:
print "We can also do that this way:"
print "We'd have %d beans, %d jars, and %d crates." % secret_formula(start_point)
为什么我们不能称豆子为果冻豆?为什么我们可以用罐子和板条箱
这不是真的。你可以随意调用你的变量,甚至是果冻豆
jelly_beans, jars, crates = secret_formula(10000)
但请记住,这些变量与函数中的变量无关
最好的学习方法就是去做。嗨,我实际上是在练习。但我最大的困惑来自这个问题:豆子、罐子、板条箱=秘密配方(起点)。如果10000=起点,我不知道我们如何得到50k作为答案。豆子还是指果冻豆吗,是这样吗?我们可以随便叫“豆子”吗?你是这么说的吗?我在工作,所以不能真正尝试。让我困惑的是:由于Python的作用域规则,jelly_bean这个名称仅在secret_formula函数中有效。这就是您不能通过语句引用它的原因。[]@JohnSmith:secret\u formula()
函数中名为jelly\u beans
的整数对象返回到脚本的主要部分,在那里它获得名称beans
。如果您愿意,可以在脚本的主要部分给它命名为jelly_beans,但是Zed正试图向您展示函数内部的名称如何是该函数的本地名称,因为函数外部的代码不知道函数内部定义的名称。明白了。因此,它可以很容易地成为Shop,Drop,Flop=secret\u公式(起点)。在那个时候,商店仍然会参考果冻豆,扔到罐子里,扔到板条箱里。@JohnSmith:明白了@Nz1:我想你是在问如果一个函数被定义在另一个函数中会发生什么。最里面的函数可以读取在外部作用域中定义的变量,但它(通常)不能修改它们,如果它尝试修改,则会创建一个新的同名局部变量。外部函数甚至看不到内部函数中定义的变量。但我怀疑这对于你目前的学习水平来说可能有点太高了,我不想让你感到困惑您是否同意这一行:打印“我们将有%d个豆子、%d个罐子和%d个板条箱。”%(豆子、罐子、板条箱)
?在这里粘贴代码一开始有点混乱,但我相信您很快就会习惯的。:)(但我会帮你纠正这个错误)。然而,我的问题是:你明白那行在做什么吗?“我们有%d个豆子、%d个罐子和%d个板条箱。”%%
希望在字符串中插入3个数字的元组,每个%d
。您可以提供类似(50,10,5)
或(bean,jar,clates)
,(假设bean
,jar
和clates
都是一个数字)的元组。但是您也可以执行“我们有%d个bean、%d个罐子和%d个板条箱。”%secret\u formula(起点)
,因为secret\u formula
函数返回一个包含3个数字的元组。tuple
是标准Python序列类型之一。它类似于列表
,只是元组是不可变的,这意味着元组中的项不能更改。你用方括号写一个列表,但你用圆括号写一个元组,在某些情况下你可以省略括号,这就是secret\u formula
的return
语句中发生的情况。在这行:beans、jars、crates=secret\u formula(起始点)
start
是secret\u formula
内部使用的名称。当你调用它时,你可以传递一个数字,例如secret\u formula(42)
,或者你可以传递绑定到一个数字的任何名称,比如start\u point
。但我们最好到此为止:所以评论真的不是一个进行广泛讨论的好地方!