在普通语言中,是否有一个处理单数/复数单词的方法?

2024-06-16 12:57:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我经常看到网站做一些事情,比如1个浏览量,1天剩余时间,或者1个答案。对我来说,这是懒惰的,因为它通常很容易修复,就像:

if(views == 1)
   print views + " view"
else print views + " views"

我想知道的是,在java、python、php等通用语言中是否有一行代码,我可以在做这件事的网站上发表评论,并说,这很容易添加到代码中。有可能吗?在


Tags: 答案代码view语言if网站评论java
3条回答

您可以使用条件或三元运算符来处理这个问题,但是如果不这样看,我们通常会以以下方式显示复数/单数单词

1 view(s), 1 day(s) left, or 1 answer(s)  

当添加条件可能不简单时,这通常很有用,例如作为输入字段?在

对于Python,您可以创建一个函数来执行重复的任务,即比较和添加额外的“s”

^{pr2}$

我在我的网站上处理此问题时使用ternary operators。看起来许多基于c的编程语言都支持三元运算符。在php中很简单:

<?= $views . ' view' . ($views == 1 ? '' : 's'); ?>

如果使用的是django(python),则可以使用pluralize筛选器:

You have {{ num_messages }} message{{ num_messages|pluralize }}.

它也支持特殊情况。看看documentation。在

如果您想在普通python代码中执行类似的操作,请查看inflect模块。它看起来很强大,而且很明显能正确地猜测大多数复数:

^{pr2}$

它将输出如下字符串

You have no messages.
You have 1 message.
You have 34 messages.

相关问题 更多 >