amount = input ("enter amount: ")
hundredDollar = amount / 100
amount = amount % 100
fiftyDollar = amount / 50
amount = amount % 50
twentyDollar = amount / 20
amount = amount % 20
tenDollar = amount / 10
amount = amount % 10
fiveDollar = amount / 5
amount = amount % 5
oneDollar = amount / 1
amount = amount % 1
quarter = amount / .25
amount = amount % .25
dime = amount / .10
amount = amount % .10
nickel = amount / .05
amount = amount % .05
penny = amount / .01
amount = amount % .01
print(int(hundredDollar) + " hundred dollar bills")
print(int(fiftyDollar) + " fifty dollar bills")
print(int(twentyDollar) + " twenty dollar bills")
print(int(tenDollar) + " ten dollar bills")
print(int(fiveDollar) + " five dollar bils")
print(int(oneDollar) + " one dollar bills")
print(int(quarter) + " quarters")
print(int(dime) + " dimes ")
print(int(nickel) + " nickels")
print(int(penny) + " pennies")
因此,该计划的目标是输出最大数量的美元钞票,其中包含金额,然后是最多的数百,五十美元钞票, 然后是20,然后是10,5和1.之后,显示最大季度数,硬币数,镍币数和便士数。
例如,100美元可以显示为10000便士,或2个五十美元钞票或5个二十美元钞票。但正确答案是首先100美元钞票的最大数量:1百美元的钞票。如果不是零,则仅显示面额金额。
我遇到的这个问题是我的输入继续读作字符串而不是int如何解决这个问题
答案 0 :(得分:4)
您可以使用内置函数int()
或float()
将字符串分别作为int或float返回,并在适当的位置返回。
例如:
amount = float(input("Enter amount:"))
将 amount 设置为从用户输入构造的浮点数。
其他改进
查看您提供的代码,您可以进行的其他改进如下:
使用
//
对数字进行分割和排列。
例如:
hundredDollar = amount // 100
将100Dollar设置为一个整数,表示100进入金额的最大次数。因此,如果金额为150,则100Dollar将设置为1,因为金额由一整百美元的账单组成。
将数字与字符串连接时使用
str()
当您将数字与字符串连接(组合)并且数字首先出现时,您需要先将数字转换为字符串。例如:
str(hundredDollar) + " hundred dollar bills."
当使用float并且您希望输出显示为int,即2而不是2.0时,您可以使用int()函数或格式化输出。例如:
print( int(hundredDollar), "hundred dollar bills." )
为用户输入添加验证
当收到用户的输入时,建议添加一些验证以检查用户输入的数据是否符合预期 - 在这种情况下,是有效金额。这可以使用数据类型的try
和except
块以及if
语句来检查数据是否在有效范围内或满足其他要求。
答案 1 :(得分:1)
您的输入继续作为str
而不是int
读取的原因是因为input()
返回一个字符串对象(自从他们删除{{1}以来一直如此来自Python 2的函数并使raw_input()
函数取而代之。)
使用input()
函数将字符串更改为整数,如下所示:
int()
(这也适用于amount = int(input("Enter amount: "))
功能。)
但是,如果用户输入字符串,则会产生错误。为避免这种情况,请将转换包装到float()
... try
块中的整数:
except
(再一次,这将适用于try:
amount = int(input("Enter amount: "))
except ValueError:
#Perhaps prompt the user to try again here
功能)
答案 2 :(得分:0)
使用此
amount = eval(input ("enter amount: "))
它将字符串从输入转换为int
如果你想浮动
amount = float(input ("enter amount: "))