Java中使用的相同逻辑不会';我不能用Python工作
我一直在练习做网站上的练习。我的问题涉及练习19,其中提出了以下问题: 实际上,我在Java中运行了下面提到的相同逻辑,并且它工作了,但是我不理解为什么它在Python中不工作Java中使用的相同逻辑不会';我不能用Python工作,python,Python,我一直在练习做网站上的练习。我的问题涉及练习19,其中提出了以下问题: 实际上,我在Java中运行了下面提到的相同逻辑,并且它工作了,但是我不理解为什么它在Python中不工作 import os List = [0,1,2,3,4,5,6] for i in List: if i==0 or i==6: for j in range(1,5): print "*", print("") if i==3:
import os
List = [0,1,2,3,4,5,6]
for i in List:
if i==0 or i==6:
for j in range(1,5):
print "*",
print("")
if i==3:
for k in range(1,4):
print "*",
print("")
else:
print "*",
print("")
os.system("pause")
试着这样做:
for i in range(7):
if i in [0,6]:
print('*' * 5)
elif i == 3:
print('*' * 4)
else:
print('*')
- 使用
range(7)
- 如果
语句中出现错误,请将它们与if
、if
、elif
配对。代码中的else
语句仅与第二个else
语句配对if
- 打印
仍然会省略空格,您可以通过执行打印“*”,
'*'*5
- 如果i==0或i==6,则将
重写为
中,则更易于阅读和扩展,如果i在[0,6]
- 该网站上的#19解决方案非常糟糕。
如果要保留静态列表,请保留每行要打印的星星数的静态列表:
num_stars = [5, 1, 1, 4, 1, 1, 5]
for num in num_stars:
print('*' * num)
还值得注意的是,如果您希望先将输入存储为字符串并将其打印出来,则可以使用一个简单的str.join()
,其中包含一个列表:
e = '\n'.join(['*' * num for num in num_stars])
print(e)
Euhm
print
自动输入新行。range(1,5):
循环4次,而不是5次。@WillemVanOnsem如果你添加一个,
最后它不会打印新行print“*”*5
会比循环好。@Jean-Françoisfare正是我的思维过程。请看下面我的答案。