我常常看到网站做了1次观看,剩下1天或1个答案的事情。对我来说,这只是懒惰,因为它通常像以下一样容易修复:
if(views == 1)
print views + " view"
else print views + " views"
我想知道的是,如果有一个普通语言的单行内容,如java,python,php等,我可以对这样做的网站发表评论并说,就像将它添加到你的网站一样简单码。这可能吗?
答案 0 :(得分:3)
我在我的网站上处理此问题时使用ternary operators。看起来很多基于c的编程语言都支持三元运算符。它就像在php中一样简单:
<?= $views . ' view' . ($views == 1 ? '' : 's'); ?>
答案 1 :(得分:1)
您可以使用条件或三元运算符来处理问题,但以不同的方式查看,我们经常以下列方式显示复数/单数字
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'
答案 2 :(得分:1)
如果您使用的是django(python),则可以使用pluralize过滤器:
You have {{ num_messages }} message{{ num_messages|pluralize }}.
它也支持特殊情况。看看documentation。
如果你想在普通的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.