我的输入继续作为字符串而不是int读取如何解决此问题

时间:2018-06-08 07:25:41

标签: python python-3.x

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如何解决这个问题

3 个答案:

答案 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." ) 
  

为用户输入添加验证

当收到用户的输入时,建议添加一些验证以检查用户输入的数据是否符合预期 - 在这种情况下,是有效金额。这可以使用数据类型的tryexcept块以及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: "))