将 2 个 for 循环的代码合并为 1 个 for 循环
Merge the code from 2 for-loops into 1 for-loop
我想让我的脚本尽可能短:
from turtle import *
for _ in range(10):
lt(72)
fd(71)
rt(108)
fd(71)
for _ in range(10):
for s in [(29,90),(73,72),(73,90),(29,72)]:
fd(s[0])
rt(s[1])
如您所见,有两个 for 循环 "for _ in range 10:"。
有没有办法合并这两个循环,以及仍然得到相同的结果?
如果您只想要一个循环,请尝试以下操作:
for i in range(20):
if i < 10:
lt(72)
fd(71)
rt(108)
fd(71)
if i > 10:
for s in [(29,90),(73,72),(73,90),(29,72)]:
fd(s[0])
rt(s[1])
这看起来有点不必要,但如果你真的很想合并两个循环,你可以试试:
from turtle import *
mode1 = True
for i in range(20):
if mode1:
lt(72)
fd(71)
rt(108)
fd(71)
if i == 9:
mode1 = False
else:
for s in [(29,90),(73,72),(73,90),(29,72)]:
fd(s[0])
rt(s[1])
你可以把所有东西都放在一个列表里,这样会消耗更多一些space:
for walk, turn in [(0,-72),(71,108),(71,0)]*10+[(29,90),(73,72),(73,90),(29,72)]*10:
fd(walk)
rt(turn)
我想让我的脚本尽可能短:
from turtle import *
for _ in range(10):
lt(72)
fd(71)
rt(108)
fd(71)
for _ in range(10):
for s in [(29,90),(73,72),(73,90),(29,72)]:
fd(s[0])
rt(s[1])
如您所见,有两个 for 循环 "for _ in range 10:"。
有没有办法合并这两个循环,以及仍然得到相同的结果?
如果您只想要一个循环,请尝试以下操作:
for i in range(20):
if i < 10:
lt(72)
fd(71)
rt(108)
fd(71)
if i > 10:
for s in [(29,90),(73,72),(73,90),(29,72)]:
fd(s[0])
rt(s[1])
这看起来有点不必要,但如果你真的很想合并两个循环,你可以试试:
from turtle import *
mode1 = True
for i in range(20):
if mode1:
lt(72)
fd(71)
rt(108)
fd(71)
if i == 9:
mode1 = False
else:
for s in [(29,90),(73,72),(73,90),(29,72)]:
fd(s[0])
rt(s[1])
你可以把所有东西都放在一个列表里,这样会消耗更多一些space:
for walk, turn in [(0,-72),(71,108),(71,0)]*10+[(29,90),(73,72),(73,90),(29,72)]*10:
fd(walk)
rt(turn)