python嵌套_Python简介,第7章-导入和嵌套

python嵌套



Baldric had been a town guard for years, breaking up fights and catching thieves and helping the elderly cross the street. When the Empire arose and moved him to HR, he dragged prisoners to staff meetings and hauled corpses away without thinking much of it. Law and order was better than letting those rebels Management was always warning of run amok. He had a strange dream or two, but who didn’t now and then? And when one day he was called into his Manager’s office and strange patterned threads shot at him from his boss’ hands, he blacked out wondering if this was what promotions felt like.

aldric一直是城镇守卫多年,分手打架,捉贼,并帮助老人过马路。 帝国崛起并将他转移到HR时,他将囚犯拖到员工大会上,将尸体拖走了,却没有考虑太多。 治安总比让那些叛乱分子来得好。 他有一个或两个奇怪的梦,但谁时不时呢? 有一天,当他被叫到经理的办公室,并且老板的手向他开了奇怪的图案线时,他不知所措,想知道这是否是升职的感觉。

***
***

Baldric had lived a quiet life as a blacksmith, supplying the local citizenry and outlying farms with tools. When the Empire took over and forced him to make weapons and armor instead, he didn’t mind. And when one day he woke up after an odd dream and found he could conjure and manipulate invisible green threads of 1’s and 0’s, he simply pretended it wasn’t happening and went on with his work. Seeing a poster about a captured rebel tickled something in the back of his mind, but he simply spit in disgust and went on his way. And when Management finally visited Baldric in the night and he felt his life force draining away, he faded out glad that he had gotten to the finish line while abiding by all applicable rules and regulations.

鲍德里克(Baldric)作为铁匠过着平静的生活,为当地居民和边远的农场提供了工具。 当帝国接管并强迫他制造武器和盔甲时,他并不介意。 当有一天,他在一个奇异的梦中醒来,发现他可以想像和操纵1和0的无形绿色线程时,他只是假装这没有发生,然后继续他的工作。 看到关于被俘叛军的海报在他脑海中回荡,但他只是厌恶地吐口水,继续前进。 当管理层最终在晚上拜访Baldric时,他感到自己的生命力正在消耗drain尽,他褪色感到高兴,因为他遵守所有适用的规则和规定已到达终点。

***
***

Baldric had been mining since he was a boy. But one day he saw a battle just outside the mine between the newly rising Empire and a ragtag bunch of rebels, and he convinced the rest of the mining crew to join up with the rebellion. From raiding outposts to ambushing patrols they stirred up as much chaos as they could, even managing to temporarily slow the Empire’s ascension. But when they were eventually captured and executed, the thought occurred to Baldric, as he was being tossed in a wagon during his final moments of consciousness, that somehow things weren’t supposed to have turned out this way.

从小开始,鲍德瑞克就一直在采矿。 但是有一天,他看到了刚刚崛起的帝国与一群叛乱分子之间的一场战斗,他说服了其余采矿人员加入了叛乱。 从突袭哨所到伏击巡逻,他们尽其所能地激起了混乱,甚至设法暂时放慢了帝国的崛起。 但是当它们最终被捕获并被处决时,鲍尔德里克想到了这一点,因为鲍尔德里克在意识的最后时刻被扔进了马车里,以某种方式不应该发生这种事情。

***
***

Baldric lived life after life, experiencing every imaginable iteration, always starting out as an orphan in the city and often learning to use Magic, Logic in particular. Sometimes he became an infamous rebel leader, feared by even the Emperor himself. Sometimes he lived out his life as a farmer, hearing only rumors of happenings in the city. Always though, a shadow eventually fell over the realm, and Baldric died shortly after.

鲍德瑞克(Baldric)生前世世,经历着每一次可以想象的迭代,总是从城市中的孤儿开始,经常学会使用魔术,尤其是逻辑。 有时,他成为了臭名昭著的反叛领袖,甚至连皇帝本人也感到恐惧。 有时他过着农民的生活,只听闻有关这座城市发生的谣言。 始终,阴影最终笼罩了整个世界,不久之后,鲍德瑞克(Baldric)死了。

In many lives he was a clerk. In some he met a rebel named Cassandra, and was drawn into a quest to bring down the Empire. Sometimes he took a wrong turn in a labyrinth and was torn apart by demons. Sometimes he was eaten by the HR Manager, or pierced by arrows, or knocked into a lake of lava. In one, however, he eventually found himself in front of a door, a heavy stone door with odd green inscriptions. And when the Door opened he glimpsed a pulsing red crystal and a giant man whose face he could only describe as wisdom itself. There was a decision to be made, about whether or not to…

在许多生活中,他都是店员。 在某些情况下,他遇到了一个名叫卡桑德拉(Cassandra)的反叛者,并被吸引去推翻帝国。 有时他在迷宫中转错了方向,被恶魔撕裂了。 有时他会被人力资源经理吃掉,或者被箭刺穿,或者被撞到熔岩湖中。 然而,他最终发现自己在一扇门前,那是一扇厚重的石头门,上面刻有奇怪的绿色铭文。 当门打开时,他瞥见一个脉动的红色水晶和一个巨人,他的脸只能形容为智慧本身。 关于是否要决定……

Baldric abruptly came to. He was floating bodiless through space and slowly began to remember his actual life.

波德瑞克突然来到。 他在太空中漂浮着身体,慢慢地开始回忆起自己的真实生活。

“Yes, I’m a clerk. And Cassandra, and the HR Manager, and…the Teleportation Circle! I unlocked it…didn’t I?”

“是的,我是店员。 还有卡桑德拉(Cassandra)和人力资源经理,还有……瞬移传送圈! 我解锁了……不是吗?”

Baldric became aware of a presence, one that reminded him of the being he had glimpsed in the chamber beyond the Door. The presence was all around him and had the feeling of deep calm and understanding. He also noticed faint points of green light in the blackness. They were everywhere, all mysteriously twinkling in the void.

鲍德瑞克开始意识到他的存在,这使他想起了他在门外的房间里瞥见的那个人。 在场的人都围绕着他,充满了沉稳和理解的感觉。 他还注意到黑色中有淡淡的绿光。 他们无处不在,所有的神秘都在虚空中闪烁。

A voice entered Baldric’s thoughts. It wasn’t so much a voice as it was a stream of colors and concepts, emotions and imagery, but if it could be said to have spoken, it said something like: “Welcome Baldric Hightower, Aspiring Wizard. I have wished to speak with you directly for some time now.”

声音进入了鲍德瑞克的思想。 它不是声音,而是颜色,概念,情感和图像的源泉,但是如果可以说出来,它的意思是:“欢迎抱抱向导的鲍德里克·高塔尔。 我希望现在与您直接交谈一段时间。”

This mysterious voice had a vaguely feminine quality to it. Lacking a head with which to speak, Baldric thought, “What’s going on here? Who are you?”

这种神秘的声音具有模糊的女性特质。 缺乏说话能力,鲍德瑞克想:“这是怎么回事? 你是谁?”

The voice spoke up again, “You have grown strong, but precious little time remains, and you are still not strong enough for what lies ahead. Listen closely as I teach what you must know.”

声音再次传出,“您已经成长壮大,但宝贵的时间却很少,您仍然没有足够的力量应对即将发生的事情。 当我教您必须知道的内容时,请仔细听。”

“Listen, I really appreciate it, but I’m a little busy at the moment. Why don’t we reschedule for…”

“听着,我真的很感激,但是我现在有点忙。 我们为什么不重新安排…”

“First, you must learn of the many of worlds all around you, miniature dimensions which are comprised of pure Logic that you may draw upon and magnify your powers with. And second, you must learn of the infinite depths and complexity of which your very own Logic can plumb. Let us begin.”

“首先,您必须了解周围的许多世界,它们是由纯粹的逻辑构成的微观维度,您可以借鉴并放大自己的力量。 其次,您必须了解自己的逻辑可以探究的无限深度和复杂性。 让我们开始吧。”

Suddenly Baldric was hurtling through space toward one of those green star-like entities that dotted the void.

突然,鲍德瑞克在太空中飞奔,飞向那些点缀着虚空的绿色恒星状实体之一。

“Consider how powerful you felt once you learned how to use functions, once you could bundle up as much Logic as you desired into a single entity and effortlessly call it at will. Or how remember how convenient it was to use built-in functions without ever having to write them yourself. Well then, imagine being able to draw upon not just a pre-made function or two, but pre-made anything. Any Logic imaginable. This is the power of import-ing.”

“考虑一下一旦学会了如何使用功能,您便可以将自己想要的逻辑捆绑成一个实体,然后轻松地随意调用它,感觉到了多么强大。 或者,如何记住使用内置函数而不必自己编写它们有多么方便。 那么,想象一下不仅可以利用一个或两个预制函数,还可以利用任何东西。 任何可以想象的逻辑。 这就是导入的力量。”

Baldric’s flight through space slowed as he approached the star. He could see it was in fact a sort of translucent orb with the word math printed on its surface. Within the orb floated a collection of Logic, already woven, just begging to be used. He thought he saw lots of functions and maybe a few floats in there. He tried to access the Logic and test it out, but the orb wasn’t allowing his own Logic to penetrate inside.

当鲍德瑞克接近恒星时,他在太空中的飞行速度变慢。 他可以看到它实际上是一种半透明的球体,表面印有数学字样。 在球体内漂浮着已经编织的逻辑集合,只是乞求使用。 他以为自己看到了很多功能,也许在那里有些漂浮物。 他试图访问Logic并对其进行测试,但是这个Orb不允许他自己的Logic进入内部。

“Wizards such as yourself have long woven Logical constructs, sometimes worlds of Logic unto themselves, that they have been willing to share with others. To that end, they bundle up their Logic in tiny dimensions for safe keeping, dimensions which are only accessible to other Logic users. Behold…”

“像您这样的向导长期编织逻辑结构,有时将逻辑世界带给自己,他们愿意与他人共享。 为此,他们将Logic打包成很小的尺寸以安全保存,这些尺寸只有其他Logic用户才能访问。 看哪……”

# use import statements to access modules
>>> import math

>>> math.pi
3.141592653589793

Baldric saw a tunnel-like weave of Logic materialize and bore through the math orb. It extracted something called pi and printed it out, revealing it to be a float.

鲍德里克(Baldric)看到了类似逻辑的隧道编织物,并贯穿了数学球。 它提取了一个叫做pi的东西并将其打印出来,表明它是一个浮点数。

“One may simply use an import statement to tap into the math dimension (or “module” as it’s sometimes called). To peer inside and see what the module holds, you may use dir(), and to see more detailed descriptions of the objects within, you may use help().”

“人们可以简单地使用import语句来利用数学维度(有时也称为“模块”)。 要查看内部内容并查看模块的内容,可以使用dir (),要查看其中的对象的详细说明,可以使用help ()。”

>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', 
'__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 
'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 
'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 
'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 
'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 
'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 
'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

>>> help(math)
# try this yourself to see the lengthy output

“Using dir(), you can see that the module contains something called pi. Calling help() and looking near the bottom of the output in the “DATA” section, we see that pi is in fact a float equal to 3.141592653589793. Note that to use objects from modules you must follow the module_name.object_name syntax, as you saw with math.pi.”

“使用dir (),您可以看到该模块包含名为pi的内容 。 调用help ()并在“ DATA”部分的输出底部附近,我们看到pi实际上是一个等于3.141592653589793的浮点数。 请注意,要使用模块中的对象,必须遵循module_name.object_name语法,就像在math.pi中看到的那样 。”

“In addition to mathematical constants, you will find that math also contains something much more powerful: functions. If you look back at the output from help(), you’ll see that functions comprise most of the math module.”

“除了数学常数,您还会发现数学还包含更强大的功能:函数。 如果您回顾一下help ()的输出,您会发现函数包含了大部分的数学模块。”

# the math module has a factorial function
# recall that factorials are often notated with an exclamation point
# for example 4! = 4 x 3 x 2 x 1 = 24
>>> math.factorial(4)
24

# there's also a function for calculating square roots
>>> math.sqrt(2)
1.4142135623730951

“If at some point you become knowledgeable enough to travel to different universes, modules such as math will still be accessible to you. If you happen to travel to different multiverses, math will also be available to you, though some of the mathematical constants may change. But if you travel to a different supermultiverse, which I don’t recommend, then it becomes difficult to say what might happen.”

“如果在某个时候您变得足够知识,可以前往不同的宇宙,那么仍然可以使用数学等模块。 如果您碰巧旅行到不同的多元宇宙,尽管某些数学常数可能会更改,但数学也将对您可用。 但是,如果您旅行到另一个超多重宇宙(我不建议这样做),那么很难说会发生什么。”

“There are many other functions you may explore if you wish. Sometimes you may find that neither dir() nor help() are sufficiently enlightening. In such a case, try praying to the gods, particularly the ones known as Google or DuckDuckGo.”

“如果愿意,您可以探索许多其他功能。 有时您可能会发现dir ()和help ()都没有足够的启发性。 在这种情况下,请尝试向众神祈祷,尤其是向那些被称为Google或DuckDuckGo的众神祈祷。”

“Let us briefly examine a second module you might find useful: string.”

“让我们简要检查一下您可能会发现有用的第二个模块: string 。”

Baldric was flung through space once again, soon arriving at a second Logic-containing orb with string written across it.

鲍德瑞克再次跳入太空,不久又到达了另一个包含逻辑的球体,球体上写满了绳子

>>> import string

>>> dir(string)
['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', 
'__all__', '__builtins__', '__cached__', '__doc__', '__file__', 
'__loader__', '__name__', '__package__', '__spec__', '_re', 
'_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 
'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 
'punctuation', 'whitespace']

>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

“Again, using dir() you can see that the module contains something called ascii_letters, which help() describes as “a string containing all ASCII letters”. And printing it out, we see that ascii_letters is in fact a string containing every upper and lower case letter. So if you were ever in need of such a string, instead of laboriously typing the whole string out, you could quickly import it from the string module.”

“再次使用dir (),您可以看到该模块包含名为ascii_letters的内容help ()将其描述为“包含所有ASCII字母的字符串”。 并将其打印出来,我们看到ascii_letters实际上是一个包含每个大小写字母的字符串。 因此,如果您需要这样的字符串,则无需费力地键入整个字符串,而可以从字符串模块中快速导入它。”

“Wherever you are in the Multiverse, you may call upon these and other modules. Know however that with your current powers you can only access the “standard” modules. There are an incredible number of more distant and powerful modules, but those are a subject for another time.”

“无论您处于Multiverse中的哪个位置,都可以调用这些模块其他模块 。 但是请注意,使用当前的电源,您只能访问“标准”模块。 有许多令人难以置信的更遥远和更强大的模块,但这是另一个时代的主题。”

Baldric spoke up. “Why are you showing me these things? Are you an enemy of the Empire too? Why would you care about me, or about any of this?”

鲍德里克开口了。 “为什么要给我看这些东西? 您也是帝国的敌人吗? 你为什么要在乎我,或者在乎其中任何一个?”

“Unfortunately the Emperor’s ambitions do not stop at wanting to enslave the realm, Baldric. You may think this fantastical, but already your city is changing, mirroring the Emperor’s own darkness. Soon your entire plane will fall under his shadow, and eventually it will consume not just your world, but all possible worlds, for the Emperor plans to do nothing short of enslaving the Great Serpent itself and reweaving the fundamental patterns of reality in his own image.”

“不幸的是,皇帝的野心并不只是想奴役鲍尔德里克这个领域。 您可能认为这是梦幻般的,但您的城市已经在变化,反映出皇帝自己的黑暗。 不久,您的整个飞机将落在他的阴影下,最终它将不仅吞噬您的世界,而且吞噬所有可能的世界,因为皇帝计划无所不能,奴役大蛇本身并以他自己的形象重塑现实的基本模式。”

“How could the Emperor possibly accomplish this, you ask? It appears he has found a crystal of great power, a power that even I do not fully comprehend. And the Emperor has used this crystal to capture my other half, infect his mind with dark energy and use it to alter the nature of reality as you might a dream of your own making. However, if you can somehow manage to open the Door, disrupt this power source and defeat the Emperor, you will have saved all of creation. I attempted to aid many other heroes in this quest, but I fear I ended up only leading them to their doom, or worse. Only you remain Baldric. You are our final hope. Ah, and it seems your ride is here.”

“你问皇帝怎么可能做到这一点? 看来他已经找到了强大的力量的结晶,甚至我也没有完全理解的力量。 皇帝用这种水晶捕捉了我的另一半,用黑暗的能量感染了他的心灵,并用它来改变现实的本质,因为你可能梦your以求。 但是,如果您能够设法以某种方式打开门,中断该电源并击败皇帝,那么您将保存所有的创作。 在这个任务中,我试图帮助其他许多英雄,但我担心我最终只会带领他们走向灭顶之灾,甚至更糟。 只有你是波德里克。 您是我们的最终希望。 啊,看来您的乘车来了。”

Baldric looked away from the modules to see a gargantuan flaming bird-like entity descending upon him. It was like some brilliant multi-colored avian sun diving through the void. It flew overhead and scooped Baldric’s being up in its claws. The blackness of the void gave way to colors and light as Baldric and his transport zoomed into a psychedelic tunnel that carried them through the cosmos. Eventually the swirling colors began to take shape, forming into places, into worlds that flew by which Baldric had never before seen or imagined. Baldric watched in awe as planets flourished in nature, then died in Magical armageddon. Entirely alien civilizations rose and fell. Universes were born, then died, then born again.

鲍德瑞克视线离开模块,看到一个巨大的燃烧的鸟状实体降在他身上。 就像是一些灿烂的,五彩缤纷的禽类阳光在虚空中潜水。 它飞过头顶,ed起鲍德瑞克的爪子。 鲍德瑞克(Baldric)将虚空的黑色变成了色彩和光明,他的行进范围扩大了一条迷幻的隧道,使它们穿过了宇宙。 最终,漩涡状的色彩开始成形,形成了场所,变成了鲍尔德里克从未见过或想象过的飞行世界。 鲍德里克敬畏地看着行星在自然界中蓬勃发展,然后死于魔法大决战。 整个外来文明兴衰。 宇宙诞生了,然后死亡,然后又诞生了。

Eventually Baldric’s phoenix-like transport flew directly into a world covered with trees, though not any that Baldric recognized. The bird flew low over the treetops and let go of him. Cursing the fact that he just now apparently regained his bodily form, Baldric plummeted through the trees but landed comfortably enough in a large bird’s nest. Looking around he saw that within the nest were many other nests. Some nests were just in the main nest, and still quite large. Other nests were inside these sub-nests, while still other nests were inside sub-sub-nests. In many cases, multiple nests of the same size were together in one nest. Nests always had smaller and smaller nests in them unless they contained an egg, in which case the nesting stopped.

最终,鲍德瑞克(Baldric)的凤凰式运输直接飞入了一个布满树木的世界,尽管鲍德瑞克(Baldric)并不认可。 那只鸟飞过树梢低下,放开他。 鲍德瑞克(Baldric)诅咒他现在显然已经恢复了身体形态,因此从树上坠落,但是足够舒适地落在一个大鸟巢中。 环顾四周,他发现巢内还有许多其他巢。 一些巢只是在主巢中,而且仍然很大。 其他嵌套在这些子嵌套中,而其他嵌套在子嵌套中。 在许多情况下,一个大小相同的多个嵌套在一起。 除非巢中包含鸡蛋,否则巢中总是有越来越小的巢,在这种情况下,巢会停止。

“What an odd nest,” Baldric thought to himself. “There must be thousands of eggs here, or more, of all sizes.”

“真是个奇怪的巢,”鲍德里克自言自语。 “这里必须有成千上万个卵,甚至更多,不计其数。”

The voice spoke again. “Now you shall learn of just how deep your Logic can flow. Recall how conditional statements work, such as the following.”

声音再次响起。 “现在,您将了解逻辑可以深入到什么地方。 回顾条件语句如何工作,例如以下。”

if condition1:
    print("do something")
else:
    print("do something else")

“This structure can be extended indefinitely. Here’s an example with two levels of branching.”

“这种结构可以无限期地扩展。 这是一个具有两个分支级别的示例。”

if condition1:
    if condition2:
        print("conditions 1 and 2 are true, do something")
    else:
        print("just condition 1 is true, do something else")
else:
    print("condition 1 was false, let's call it quits")

“To each if/else branch, you may add more branches. Try adding more branches and see how many levels you can keep track of in your head. You will find that the complexity quickly gets out of hand, which is why it’s advisable to keep your nesting to a minimum. But the capability is there should you ever require it.”

“对于每个if / else分支,您可以添加更多分支。 尝试添加更多的分支,并查看您可以在头脑中跟踪多少个级别。 您会发现复杂性很快就失控了,这就是为什么建议将嵌套最小化的原因。 但是只要您有需要,功能就在那里。”

Baldric stopped to think for a moment. “Interesting. It makes sense to think of nested conditionals as a tree of sorts, because it branches out into continually more specific options. But based on the Logic’s appearance and structure, it also makes sense to think of them like a series of nests, getting smaller and smaller within each other.”

鲍德瑞克停下来思考了一会儿。 “有趣。 将嵌套条件视为树形结构是很有意义的,因为它会不断扩展为更多特定的选项。 但是基于Logic的外观和结构,将它们像一系列嵌套一样会变得越来越有意义,彼此之间越来越小。”

The voice spoke up again. “for loops are much the same. Here’s a single level example.”

声音再次发出来。 for循环大体相同。 这是一个单层示例。”

for i in range(5):
    print(i)
0
1
2
3
4

And here’s a for loop nested in another for loop.

而且这里有一个for循环嵌套在另一个for循环。

for i in range(5):
    for j in range(3):
        print(i, j)
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
3 0
3 1
3 2
4 0
4 1
4 2

“Naturally, conditionals and for loops can be mixed together and nested within each other.”

“自然地,条件和for循环可以混合在一起并相互嵌套。”

for i in range(5):
    if i >= 2:
        for j in range(5):
            if j % 2 == 0:
                print(i, j)
2 0
2 2
2 4
3 0
3 2
3 4
4 0
4 2
4 4

“But again, be wary of the complexity of such nested structures. Good Logic is often simple, readable Logic.”

“不过,再次提醒您注意此类嵌套结构的复杂性。 好的逻辑通常是简单易读的逻辑。”

“Now, let’s see if you’ve grasped the concept of nesting. Using the math module’s hypot() function, find all the pairs of positive whole numbers under 50 that result in a whole number hypotenuse (e.g. math.hypot(3, 4) results in 5).”

现在,让我们看看您是否已经掌握了嵌套的概念。 用数学模块的hypot将 ()函数,找到所有对正整数的50岁以下这一结果在整数斜边(如数学 ,hypot将 (3,4),导致5)“。

import math

for i in range(1, 50):
    for j in range(i, 50):
        h = math.hypot(i, j)
        if h == int(h):
            s = 'A triangle with sides {} and {} has a hypotenuse of {}'
            answer = s.format(i, j, int(h))
            print(answer)
A triangle with sides 3 and 4 has a hypotenuse of 5
A triangle with sides 5 and 12 has a hypotenuse of 13
A triangle with sides 6 and 8 has a hypotenuse of 10
A triangle with sides 7 and 24 has a hypotenuse of 25
A triangle with sides 8 and 15 has a hypotenuse of 17
A triangle with sides 9 and 12 has a hypotenuse of 15
A triangle with sides 9 and 40 has a hypotenuse of 41
A triangle with sides 10 and 24 has a hypotenuse of 26
A triangle with sides 12 and 16 has a hypotenuse of 20
A triangle with sides 12 and 35 has a hypotenuse of 37
A triangle with sides 14 and 48 has a hypotenuse of 50
A triangle with sides 15 and 20 has a hypotenuse of 25
A triangle with sides 15 and 36 has a hypotenuse of 39
A triangle with sides 16 and 30 has a hypotenuse of 34
A triangle with sides 18 and 24 has a hypotenuse of 30
A triangle with sides 20 and 21 has a hypotenuse of 29
A triangle with sides 20 and 48 has a hypotenuse of 52
A triangle with sides 21 and 28 has a hypotenuse of 35
A triangle with sides 24 and 32 has a hypotenuse of 40
A triangle with sides 24 and 45 has a hypotenuse of 51
A triangle with sides 27 and 36 has a hypotenuse of 45
A triangle with sides 28 and 45 has a hypotenuse of 53
A triangle with sides 30 and 40 has a hypotenuse of 50
A triangle with sides 33 and 44 has a hypotenuse of 55
A triangle with sides 36 and 48 has a hypotenuse of 60
A triangle with sides 40 and 42 has a hypotenuse of 58

Baldric printed out the answers (in nicely formatted style) and heard a faint crackling. Looking down, he saw a large egg near him shaking and breaking open. The egg shell fell away to reveal a painted wooden doll of sorts. It was very round and painted in the likeness of a dwarf. It was also split across the middle, as if it might come apart.

Baldric打印出答案(格式正确)并听到微弱的crack啪声。 往下看,他看到附近有一个大鸡蛋在摇晃,裂开。 蛋壳掉了下来,露出了一个彩绘的木制娃娃。 它非常圆,像矮人一样画着。 它也分散在中间,好像可能会分开。

The voice boomed again. “You are a remarkably quick learner. Know this as well: one may also define functions inside of other functions.”

声音再次响起。 “您是一个非常快的学习者。 也要知道这一点:在其他函数内部也可以定义函数。”

def f1():
    print('knock knock')
    
    def f2():
        print("who's there?")
    
    f2()

f1()
knock knock
who's there?

He picked up the doll and pulled it apart to reveal a similar but smaller doll within. Intrigued, Baldric pulled this second doll apart as well to reveal two dolls! He continued like this, opening every doll he found until all the dolls became too small for his stocky fingers to pull apart. At this point the nest around him was littered with halves of the wooden dolls, and it was then he noticed that all the rest of the many-sized eggs were shaking and cracking. He saw a hand break through one of the shells and, to Baldric’s surprise, it looked like little men were hatching from the eggs. Little dwarves, in fact.

他拿起洋娃娃并将其拆开,露出其中一个类似但较小的洋娃娃。 好奇的是,鲍德瑞克也把第二个娃娃拆开了,露出了两个娃娃! 他继续这样,打开他发现的每个洋娃娃,直到所有洋娃娃都变得太小,以至于手指无法拉开。 此时,他周围的巢里散落着一半的木制娃娃,然后他注意到所有其他大小的鸡蛋都在晃动和破裂。 他看到一只手突破了其中一个贝壳,令鲍德瑞克惊讶的是,似乎小家伙正在从卵中孵化。 小矮人,实际上。

Baldric also noticed that the dolls he had pulled apart were no longer wooden doll parts, but had become, to his horror, actual body parts. They now looked not just like dwarves, but like Baldric himself! Many differently-sized halves of him, all perfect likenesses torn in two, blood leaking from the torsos and dripping through the nest.

鲍德瑞克还注意到,他拉开的娃娃不再是木制娃娃的零件,而是令他恐惧的是实际的身体零件。 他们现在不仅看起来像矮人,而且看起来像鲍德瑞克本人! 他有许多不同大小的两半,所有的完美像都被撕成两半,鲜血从躯干漏出并从巢中滴落。

The live dwarves were now free of their eggs, and Baldric could see they were all him as well, but different. Town guards, blacksmiths, farmers, and a thousand other versions of Baldric were all streaming out of the eggs towards him. Along the way some swarmed over the severed Baldric corpses, feasting on the still-warm flesh, while the rest kept on coming.

活着的矮人现在没有了卵,而鲍德瑞克也可以看到它们全都是他,但有所不同。 镇守,铁匠,农民和其他上千种的波德瑞克都从蛋中流了出来。 一路上,一些人聚集在被割断的波德瑞克尸体上,以仍然温暖的肉食为食,而其余的则继续前来。

The voice calmly continued. “You can even tap into the deep magic of Recursion and make a function refer to itself.”

声音平静地继续。 “您甚至可以利用递归的深层魔力,并使函数引用自身。”

def custom_factorial(n):
    if n == 1:
        return 1
    else:
        return n * custom_factorial(n-1)

print(custom_factorial(4))
24

He could see the eyes of the larger ones now. While their faces were scrunched up in rictus, bloodthirsty snarls, their black-and-white eyes looked empty. Those vacant gazes never blinked, and they plunged swords and teeth alike into Baldric’s feet and legs. With a cry Baldric tripped backwards and fell into several of his halves. The pseudo-Baldrics streamed over him, biting and stabbing and making their way to his head.

他现在可以看到较大的眼睛。 当他们的脸皱成状,嗜血的咆哮时,他们的黑白眼睛显得空虚。 那些空洞的目光从不眨眼,他们将剑齿一样地刺入鲍德瑞克的脚和腿中。 鲍德瑞克哭了起来,跌倒了,跌入了他的一半。 伪鲍尔德里克人在他身旁流淌,咬伤和刺伤,直奔他的头。

“But be warned, it is powerful stuff. Use Recursion inappropriately, and it can even bring the world crashing down around you.”

“但是要警告,它是强大的东西。 不适当地使用Recursion,它甚至可能使周围世界崩溃。”

def the_emperor_shall_fall(answer):
  print("It's " + str(answer) + " that the Emperor shall fall")
  return the_emperor_shall_fall(not answer)

the_emperor_shall_fall(True)
It's True that the Emperor shall fall
It's False that the Emperor shall fall
It's True that the Emperor shall fall
It's False that the Emperor shall fall
.
.
.
It's True that the Emperor shall fall
It's False that the Emperor shall fall
It's True that the Emperor shall fall
It's False that the Emperor shall fall
Traceback (most recent call last):
  File "python", line 5, in <module>
  File "python", line 3, in the_emperor_shall_fall
  File "python", line 3, in the_emperor_shall_fall
  File "python", line 3, in the_emperor_shall_fall
  [Previous line repeated 983 more times]
  File "python", line 2, in the_emperor_shall_fall
RecursionError: maximum recursion depth exceeded in comparison

As the Baldrics swarmed him, the nest filled with messages alternating between possibilities of the Emperor’s fate. The function went deeper and deeper, continually calling itself until the world began to slow and almost freeze entirely. One mini-Baldric was on the real one’s face in the act of plunging a spear in his eye when the spear thrust slowed, inching forward randomly only in the stuttering moments when time still advanced. The world lost it’s color and decomposed into an infinite grid of ERROR messages. Then the grid itself began to dissolve, and Baldric felt his consciousness rip to shreds.

当鲍德瑞克人蜂拥而至时,鸟巢里充斥着各种信息,这些信息在皇帝命运的可能性之间交替出现。 该功能越来越深入,不断地自我调用,直到世界开始变慢并几乎完全冻结为止。 当长矛推力变慢时,一名迷你巴尔德里克就将长矛猛扑入眼,仅在时间仍在前进的结结时刻随机向前倾斜。 世界失去了它的颜色,分解为无限的ERROR消息网格。 然后网格本身开始解散,Baldric感到他的意识被撕成碎片。



Congratulations, you earned 4,518 experience and 3,197 gold. You are now a Level 9 Dwarven Wizard!(cue victory music)

恭喜,您获得了4,518经验和3,197金。 您现在是9级矮人向导! 提示胜利音乐

Here are the Python topics you covered (and may want to DuckDuckGo for further inquiry):

这是您涵盖的Python主题(并且可能需要DuckDuckGo进行进一步的查询):

  • imports
  • nested conditional statements
  • nested loops
  • nested functions
  • recursion
  • 进口
  • 嵌套条件语句
  • 嵌套循环
  • 嵌套函数
  • 递归


翻译自: https://www.pybloggers.com/2017/11/intro-to-python-chapter-7-imports-and-nesting/

python嵌套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值