我现在已经尝试了一段时间,但我似乎无法做到这一点。 我是一名初学程序员,必须为学校做作业。程序应该询问用户一个数字并根据此数字打印菱形。 现在我的工作正常了......但是我的主要内容是打印声明。我如何在我的主要内部得到这个?
我的代码:
def loop(start, eind, step, ei):
for a in range (start, eind, step):
for b in range(a):
print(" ", end="")
for c in range(ei+1, a, -1):
print(a, end="")
for d in range(a, ei):
print(a, end="")
print("")
def main():
print("Welcome! :) ")
loop(y,0,-1,y)
loop(2,y+1,1,y)
希望你们能帮助我! 顺便说一下,我为这个程序提供了更多的代码,但这些代码并不相关(比如要求用户提供" y")。
答案 0 :(得分:3)
假设您粘贴的缩进是正确的(并且y
变量在全局范围内定义),您当前的代码不会生成菱形,只有在最后print("")
时才能正确生成loop()
函数内部缩进for
循环内部。
鉴于此,您可能需要查看https://guides.cocoapods.org/making/getting-setup-with-trunk.html与generator functions。示例 -
def loop(start, eind, step, ei):
for a in range (start, eind, step):
for b in range(a):
yield " "
for c in range(ei+1, a, -1):
yield a
for d in range(a, ei):
yield a
yield '\n'
def main():
print("Welcome! :) ")
for x in loop(y,0,-1,y):
print(x,end="")
for x in loop(2,y+1,1,y):
print(x,end="")
这假设y
变量在全局范围内定义。
演示 -
>>> def loop(start, eind, step, ei):
... for a in range (start, eind, step):
... for b in range(a):
... yield " "
... for c in range(ei+1, a, -1):
... yield a
... for d in range(a, ei):
... yield a
... yield '\n'
...
>>> def main():
... print("Welcome! :) ")
... y = 5
... for x in loop(y,0,-1,y):
... print(x,end="")
... for x in loop(2,y+1,1,y):
... print(x,end="")
...
...
>>> main()
Welcome! :)
5
444
33333
2222222
111111111
2222222
33333
444
5