想象一个掷骰子,您想在其中打印具有良好语法的结果。
'You rolled a 18'
是错误语法的一个例子。'You rolled an 18'
是良好语法的示例。'You rolled an 5'
是错误的语法。
我可以定义一个函数来执行一堆 if
语句,但这看起来不像 Pythonic。
#ideally something like this
print(f'You rolled {a-or-an} {someint}')
最佳答案
基于discussion在comments ,我认为以下内容适合您:
def getDiceRollString(someint):
a_or_an = "an" if someint in (11, 18) or str(someint)[0] == '8' else "a"
return "You rolled %s %d" % (a_or_an, someint)
你可以试试看:
for i in [1, 5, 8, 11, 15, 18, 28, 81, 88, 800]:
print(getDiceRollString(i))
#You rolled a 1
#You rolled a 5
#You rolled an 8
#You rolled an 11
#You rolled a 15
#You rolled an 18
#You rolled a 28
#You rolled an 81
#You rolled an 88
#You rolled an 800
关于python - 在句子中正确使用a或an,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56191585/