我正在努力寻找如何将数学添加到此函数中:
问题:编写一个程序,首先使用签名calculateFathersDayPrice(price,isMember)定义一个函数。如果用户不是会员,则该函数应返回95%的价格,如果用户是会员,则该函数应返回85%的价格(即,如isMember所示)。然后,您的程序应该提示价格以及用户是否是成员(您可以假设用户输入“是”或“否”),调用calculateFathersDayPrice(),然后打印该函数返回的价格。 / p>
到目前为止我的代码:
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)
答案 0 :(得分:1)
我不太明白你在问什么。
此外,你不应该再分为100。它应该是:
<{1}}和print price * 0.85
。
答案 1 :(得分:1)
我倾向于鼓励函数没有副作用,所以你可以使用'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状态计算价格。最后,使用字符串格式化,您将获得具有适当小数位数的结果。
答案 2 :(得分:1)
在这里指出了几个问题,其中大部分问题已经被其他答案注意到了,但遗漏了一个重要问题,所以我将把它全部包装在一个答案中。首先,功能......
def calculateFathersDayPrice(price, isMember):
if isMember:
print price * 0.85/100
else:
print price * 0.95/100
price * 85/100
?无论如何,最简单的方法是简单地乘以0.85和0.95。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中的True / False值。另外,如果他们回答“奶酪是令人讨厌的!”,你会怎么做?作为回答你的问题?这是对还是错,或者你再次问他们更合理的投入?
答案 3 :(得分:0)
如果您认为用户输入yes
或no
被问及他/她是否是会员,那么您应该评估他/她对True
或{{1}的回答}。您的程序现在可以打印False
。是的,没有必要除以100。