复数,if语句python

2024-06-28 20:24:51 发布

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

这么多问题。。目前我的代码是计算成本,成人和儿童的数量。如果用户只输入一个子项,我希望它打印子项,而不是子项。在

serviceType = input("Would you like (M)edium or (R)are steak?")
if serviceType == "r":
    rare = float((noChild * rare) * DISCOUNT) + (noAdult * BASIC)
    print("That is " + formatCurrency(rare) + " for rare choice for " + str(noAdult) + " adults and " + str(noChild) + " children. Enjoy!")

输出显示 这是美元——两个成年人和一个孩子的罕见选择。 我需要它说“这是$——一个成年人和一个孩子难得的选择。在

我想我需要

^{pr2}$

语句在某个地方,但不确定要添加到哪里?在

我也有相同格式的代码来计算“medium”,所以我不能将句子改为child,否则如果用户输入2,它将是2 child。我希望我已经解释清楚了吧?在

谢谢你


Tags: 代码用户childfortypeservice孩子子项
3条回答

您可以这样写print语句:

print("That is " + formatCurrency(rare) + " for rare choice for " + str(noAdult) +
     (" adult" if noAdult==1 else " adults") + " and " + str(noChild) +
     (" child" if noChild==1 else " children") + ". Enjoy!")

使用x if ... else y构造:

def children_str(number):
    return "{} {}".format(number, 'child' if number == 1 else 'children')

for i in range(3):
    print children_str(i)

输出:

^{pr2}$

您可以将此函数概括为:

def pl(number, singular, plural=None):
    if plural == None:
        plural = singular + 's'
    return "{} {}".format(number, singular if number == 1 else plural)

print (pl(1, 'child', 'children')) # 1 adult
print (pl(2, 'child', 'children')) # 2 children
print (pl(1, 'adult', 'adults')) # 1 adult
print (pl(2, 'adult')) # 2 adults
print (pl(1, 'adult')) # 1 adult
print (pl(5, 'adult', 'adults')) # 5 adults

如果你想让复数和单数更一般,你可以考虑使用屈折,an python package

然后转换如下所示:

import inflect

conversion_engine = inflect.engine()

def main():

    for count in range(4):
        print format_plural_singular("child",count)
        print format_plural_singular("adult",count)
        print

def format_plural_singular(noun,quantity):
    return conversion_engine.plural_noun(noun,quantity)

相关问题 更多 >