Python: 循环语法正确

Python: grammar correct in a loop

“我正在做以下练习:

体操运动员可以从每位裁判那里获得 1 到 10 分之间的分数。

打印出一系列句子,“裁判可以给体操运动员_分。” 如果您的第一句话是“裁判可以给体操运动员 1 分”,请不要担心。 但是,如果您会使用 for 循环并且语法正确,您将获得 1000 的互联网奖励积分。

我的代码是这样的:

scores = (tuple(range(1,11)))
 
for score in scores:
   print (f'A judge can give a gymnast {score} points.')

我的输出当然是:

问题是:如何更正循环中的语法?我的意思是,什么时候是“1 分”,我怎样才能让我的循环说“1 分”而不是“1 分”,而其他分数保持“分”?

有条件地将s添加到字符串中:

print(f'A judge can give a gymnast {score} point{"s" if score > 1 else ""}.')

您只需要一个if语句来检查分数

scores = (tuple(range(1,11)))
 
for score in scores:
   if (score == 1):
       print (f'A judge can give a gymnast {score} point.')
   else:
       print (f'A judge can give a gymnast {score} points.')

这是另一种方法。上面的答案可能(我不知道)会更有效率,在我看来这对未来的开发者来说更​​具可读性。

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.')

我从这个问题的简单性得出结论,您对 PythonProgramming 总体来说还比较陌生。

你应该看看 fundamental-concepts 之类的 flow-control 并且找到解决方案不应该很难。

https://docs.python.org/3/tutorial/controlflow.html

但仍然 - 给你一个具体的问题答案, 你可以简单地添加一个 if-statement 到你的 loop 像这样:

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}.")

straight-forward 方法是使用 python 字符串格式有条件地呈现 s

print(f'A judge can give a gymnast {score} point{"s" if score > 1 else ""}.')