计算成员资格pri的Python函数

2024-09-28 20:15:18 发布

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

我正在努力找出如何将数学添加到此函数中:

问:编写一个程序,首先用签名calculateFathersDayPrice(price,isMember)定义一个函数。如果用户不是会员,函数应该返回95%的价格;如果用户是会员,函数应该返回85%的价格(如isMember所示)。然后,您的程序应该提示输入价格以及用户是否是成员(您可以假设用户输入“yes”或“no”),调用calculateFathersDayPrice(),然后打印函数返回的价格。你知道吗

到目前为止我的代码是:

def calculateFathersDayPrice(price, isMember):
"""Prints price*0.85/100 if isMember is True, prints price*0.95/100 if isMember is
false
"""
if isMember:
    print  price * 0.85/100
else:
    print  price * 0.95/100 

price = raw_input ("Please Enter Price of Item: ")
isMember = raw_input ("Are you a member?: ") 
print 'price:', price, 'Member Status:', isMember
print calculateFathersDayPrice(price, isMember)

Tags: 函数用户程序inputrawif定义is
3条回答

我倾向于鼓励在函数中没有副作用,所以可以使用“return”而不是“print”。你知道吗

def calculateFathersDayPrice(price, isMember):
    if isMember:
        return price * 0.85
    return price * 0.95

price = float(raw_input("Please Enter Price of Item: "))
isMember = raw_input("Are you a member?: ").lower() in ['true', '1', 't', 'y', 'yes']

print 'Member Status: %s' % isMember
print 'Price: %.2f' % calculateFathersDayPrice(price, isMember)

这将检查答案是否为提供的真值之一,然后根据isMember状态计算价格。最后,使用字符串格式,可以得到小数位数适当的结果。你知道吗

这里要指出的几个问题和大多数问题已经被其他答案注意到了,但是遗漏了一个重要的问题,所以我将用一个答案来总结。首先,函数。。。你知道吗

def calculateFathersDayPrice(price, isMember):
    if isMember:
        print  price * 0.85/100
    else:
        print  price * 0.95/100 
  1. 正如阿尤斯所说,你不应该被100除。也许你在想price * 85/100?不管怎样,最直接的方法是简单地乘以0.85和0.95。你知道吗
  2. 我们要求您返回值,而不是在函数中打印值。将“表示”逻辑与“业务”逻辑分开是一种很好的设计,在这种情况下,业务逻辑就是计算。函数执行计算并将结果传递回程序的主要部分,该部分处理实际显示。要返回值,只需return some_value。你知道吗

这是一个修改过的函数版本。你知道吗

def calculateFathersDayPrice(price, isMember):
    if isMember:
        return price * 0.85
    else:
        return price * 0.95 

最后,正如Andrey所指出的,您需要处理用户输入并使用它做一些有用的事情。你需要决定从用户那里接受什么样的值,如果他们输入了虚假的内容,你要做什么。在第isMember = raw_input ("Are you a member?: ")行之后,您需要添加一些代码,以便在Python中将用户的输入转换为真/假值。另外,如果他们回答“费塔奶酪很恶心”,你会怎么做作为对你问题的回答?这是真是假,还是你再次要求他们提供更合理的意见?你知道吗

我不太明白你在问什么。你知道吗

另外,你不应该再除以100。应该是: ^分别为{}和print price * 0.95。你知道吗

相关问题 更多 >