DR8*_*DR8 5 python grammar loops
“我正在做以下练习:
体操运动员可以从每位评委那里获得 1 到 10 分之间的分数。
打印出一系列句子,“裁判可以给体操运动员_分”。如果您的第一句话是“裁判可以给体操运动员 1 分”,请不要担心。但是,如果您可以使用 for 循环并且语法正确,您将获得 1000 个额外的互联网积分。
我的代码是这样的:
scores = (tuple(range(1,11)))
for score in scores:
print (f'A judge can give a gymnast {score} points.')
Run Code Online (Sandbox Code Playgroud)
我的输出当然是:
裁判可以给体操运动员 1 分。
裁判可以给体操运动员 2 分。
裁判可以给体操运动员 3 分。
裁判可以给体操运动员 4 分。
裁判可以给体操运动员 5 分。
裁判可以给体操运动员 6 分。
裁判可以给体操运动员打 7 分。
裁判可以给体操运动员打8分。
裁判可以给体操运动员打 9 分。
裁判可以给体操运动员 10 分。
问题是:如何纠正循环中的语法?我的意思是,什么时候“1分”我怎样才能让我的循环说“1分”而不是“1分”,而其他分数则保持“分”?
Wil*_*low 10
有条件地将 the 添加s到字符串中:
print(f'A judge can give a gymnast {score} point{"s" if score > 1 else ""}.')
Run Code Online (Sandbox Code Playgroud)
从这个问题的简单性来看,我得出的结论是,您对Python和一般编程相当陌生。
您应该看一下流量控制等基本概念,并且找到解决方案应该不难。
https://docs.python.org/3/tutorial/controlflow.html
但是,为了给你这个问题一个具体的答案,你可以简单地在循环中添加一个if 语句, 如下所示:
scores = (tuple(range(1,11)))
for score in scores:
output = f'A judge can give a gymnast {score} point'
if score > 1:
output += "s"
print(f"{output}.")
Run Code Online (Sandbox Code Playgroud)
小智 2
这是另一种方法。上面的答案可能(我不知道)更有效,在我看来,这对于未来的开发人员来说更具可读性。
scores = (tuple(range(1,11)))
for score in scores:
if score == 1:
print ('A judge can give a gymnast 1 point.')
else:
print (f'A judge can give a gymnast {score} points.')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |