def main():
pennies = get_input("Enter pennies : ")
nickels = get_input("Enter nickels: ")
dimes = get_input("Enter dimes: ")
quarters = get_input("Enter quarters: ")
print("You Entered : ")
print("\tPennies : " , pennies)
print("\tNickels :" , nickels)
print("\tDimes :" , dimes)
print("\tQuarters:" , quarters)
total_value = get_total(pennies, nickels, dimes, quarters)
dollars = get_dollars(pennies, nickels, dimes, quarters)
left_over_cents = get_left_over_cents(pennies, nickels, dimes, quarters)
print("Total = $",total_value, sep="")
print("You Have", dollars, "dollars and", left_over_cents, "cent(s)")
我一直得到一个错误,它声明TypeError:不支持*:“float”和“NoneType”的操作数类型。我在这个网站上浏览了与这个错误相关的答案,但是没有找到任何可以帮助我的东西。在用户输入四个数字后,程序在尝试执行下一部分代码后给我错误。在
^{pr2}$在这一部分。如果用户输入一个0或更低的数字,while循环应该返回函数,但它只写下0。我很抱歉,这些可能是非常简单的解决办法,但我在我的介绍课上,这些东西对我来说相当困难。在
def get_total(pennies, nickels, dimes, quarters):
pennies = (.01 * pennies);
nickels = .05 * nickels;
dimes = .10 * dimes;
quarters = .25 * quarters;
total_value = pennies + nickels + dimes + quarters
return total_value
def get_dollars(pennies, nickels, dimes, quarters):
total_value = get_total(pennies, nickels, dimes, quarters)
dollars = format(total_value // 1, ".0f")
return dollars
def get_left_over_cents(pennies, nickels, dimes, quarters):
total_value = get_dollars(pennies, nickels, dimes, quarters)
left_over_cents = total_value
return left_over_cents
main()
您的问题出在您的
get_input
函数中:如果输入的值小于或等于0,显然不是所需的输入,则返回值。相反,您应该将return移到
^{pr2}$while
语句的之外,或者考虑改进它,使它只在输入大于0时返回:因此:
^{3}$之前,您没有返回任何内容,所以您的便士值被存储为
None
。Python试图乘以pennies
,None
,因此出现错误:首先,我认为您的输入函数是错误的:
这不应该是:
^{pr2}$大多数(强)编译器甚至不会编译它,因为它们会将您的程序转换为跟踪,请注意,您的程序有可能返回而不给出任何值。在
由于Python是弱类型的,这不是问题:如果没有return语句,它只返回任何内容,而结束方法。在
因此,当您输入有效数据时,您的方法不会返回任何内容,因此无法处理结果。在
这是强类型语言与弱类型语言(如Python)相比的优势之一,尽管我承认还有其他一些论据支持Python而不是Java。在
相关问题 更多 >
编程相关推荐