我今天在胡闹,决定创建一个程序,打印出一个海滩,不幸的是,它没有工作的方式,我希望它。以下是它的源代码:
def beach1():
for i in range(7):
global beach, water, land
(beach, water, land) = (5, 0 + 5, 35 - 5)
print(''.join(['o' for i in range(land)])+''.join(['*' for i in range(beach)])+''.join(['~' for i in range(water)]))
beach1()
以下是电流输出:
oooooooooooooooooooooooooooooo*****~~~~~
oooooooooooooooooooooooooooooo*****~~~~~
oooooooooooooooooooooooooooooo*****~~~~~
oooooooooooooooooooooooooooooo*****~~~~~
oooooooooooooooooooooooooooooo*****~~~~~
oooooooooooooooooooooooooooooo*****~~~~~
oooooooooooooooooooooooooooooo*****~~~~~
这是我想要它输出的:
oooooooooooooooooooooooooooooo*****~~~~~
ooooooooooooooooooooooooo*****~~~~~~~~~~
oooooooooooooooooooo*****~~~~~~~~~~~~~~~
ooooooooooooooo*****~~~~~~~~~~~~~~~~~~~~
oooooooooo*****~~~~~~~~~~~~~~~~~~~~~~~~~
ooooo*****~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*****~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我期望输出改变的原因是因为三个变量,land
,beach
,和water
。因为这些变量是全局的,所以它们保留它们的值,所以每当for
循环重复时,land
的值将下降5。因此,每次循环重复时,输出的land部分将少打印5次。反之亦然的水部分的输出。当我在脑子里想出这个主意的时候,它看起来是可行的,但现在不行了。我做错了什么?感谢您的帮助,谢谢!另外,如果你能想出一个更好的标题,请随意,我当然不能
你也可以让你的指纹更简单
问题是您正在使用以下设置3个区域的大小:
它是一个常量值,所以在
for
循环期间它不会改变!你知道吗只需使值依赖于
i
,如下所示:此外,第5行的主循环和内部循环使用相同的变量
i
。你必须重新命名其中一个!你知道吗相关问题 更多 >
编程相关推荐