我经常看到网站做 1 次浏览、1 天还剩 1 次或 1 次回答之类的事情。对我来说,这只是懒惰,因为它通常很容易修复,例如:
if(views == 1)
print views + " view"
else print views + " views"
我想知道的是,是否有一个通用语言(如 java、python、php 等)的衬里,我可以在执行此操作的网站上发表评论并说,就像将其添加到您的代码中一样简单。那可能吗?
我经常看到网站做 1 次浏览、1 天还剩 1 次或 1 次回答之类的事情。对我来说,这只是懒惰,因为它通常很容易修复,例如:
if(views == 1)
print views + " view"
else print views + " views"
我想知道的是,是否有一个通用语言(如 java、python、php 等)的衬里,我可以在执行此操作的网站上发表评论并说,就像将其添加到您的代码中一样简单。那可能吗?
在我的网站上处理此问题时,我使用三元运算符。看起来许多基于 c 的编程语言都支持三元运算符。在 php 中就这么简单:
<?= $views . ' view' . ($views == 1 ? '' : 's'); ?>
如果您使用的是 django (python),则可以使用复数过滤器:
You have {{ num_messages }} message{{ num_messages|pluralize }}.
它也支持特殊情况。看看文档。
如果你想在普通的 python 代码中做类似的事情,看看inflect模块。看起来它可以很强大,而且显然猜对了大多数复数:
import inflect
p = inflect.engine()
print("You have {}.".format(p.no('message',num_messages)))
哪个会输出字符串
You have no messages.
You have 1 message.
You have 34 messages.
您可以使用条件或三元运算符来处理问题,但看起来不同,我们经常以以下方式显示复数/单数词
1 view(s), 1 day(s) left, or 1 answer(s)
当添加条件可能不简单时,这通常很有用,例如作为输入字段?
对于 Python,您可以创建一个函数来执行重复的比较任务并为您添加一个额外的 's'
>>> def pluralize(n, text):
return "{} {}{}".format(n,text, 's' if n > 1 else '')
>>> pluralize(3,'word')
'3 words'
>>> pluralize(1,'word')
'1 word'