返回 for 循环 python
Returning in for loops python
我已经尝试了一段时间了,但我似乎无法做到正确。
我是一名初级程序员,必须为学校做作业。该程序应要求用户提供一个数字并根据此数字打印菱形。
现在我已经让它工作正常了..但是我在我的主要文件之外有打印语句。我如何将它放入我的 main 中?
我的代码:
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")。
假设您粘贴的缩进是正确的(并且 y
变量是在全局范围内定义的),您当前的代码不会生成菱形,只有最后一个 [=13] =] 在 loop()
函数内缩进在 for
循环内。
鉴于此,您可能想要研究的是 generator functions with yield
statements。示例 -
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
我已经尝试了一段时间了,但我似乎无法做到正确。 我是一名初级程序员,必须为学校做作业。该程序应要求用户提供一个数字并根据此数字打印菱形。 现在我已经让它工作正常了..但是我在我的主要文件之外有打印语句。我如何将它放入我的 main 中?
我的代码:
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")。
假设您粘贴的缩进是正确的(并且 y
变量是在全局范围内定义的),您当前的代码不会生成菱形,只有最后一个 [=13] =] 在 loop()
函数内缩进在 for
循环内。
鉴于此,您可能想要研究的是 generator functions with yield
statements。示例 -
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