我的输入一直以字符串而不是int的形式读取。我如何解决这个问题

2024-05-23 18:58:52 发布

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

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")

所以这个程序的目标是输出最大数量的美元钞票,然后是最大数量的100,50,美元钞票, 然后是20,10,5和1。之后,显示最大的硬币数、一角硬币数、五分镍币数和便士数。你知道吗

例如,100美元可以显示为10000便士,或2张50美元钞票或5张20美元钞票。但正确的答案是100美元纸币的最大数目:1 100美元纸币。如果面额不为零,则仅显示面额。你知道吗

我遇到的问题是我的输入一直以字符串而不是int的形式读取我该如何解决这个问题


Tags: amountintprintdollardimebillsquarternickel
3条回答

为什么您的输入一直以str而不是int的形式读取,是因为input()返回一个字符串对象(自从他们从python2中删除了raw_input()函数并用input()函数代替它之后,情况就一直如此)。你知道吗

使用int()函数将字符串更改为整数,如下所示:

amount = int(input("Enter amount: "))

(这也适用于float()函数。)

但是,如果用户输入一个字符串,这将产生一个错误。要避免这种情况,请将转换包装到tryexcept块中的整数:

try:
  amount = int(input("Enter amount: "))
except ValueError:
  #Perhaps prompt the user to try again here

(同样,这将与float()函数一起工作)

您可以使用内置函数int()float()分别以int或float形式返回字符串(如果合适)。你知道吗

例如:

amount = float(input("Enter amount:"))

数量设置为从用户输入构造的浮点值。你知道吗

其他改进

查看您提供的代码,您可以做的其他改进如下:

Use // to divide and floor a number.

例如:

hundredDollar = amount // 100

将“百分位数”设置为整数,表示100进入数量的最大次数。因此,如果金额为150,则由于金额是由一整张百元钞票组成的,所以将“百元整”设置为1。你知道吗

Use str() when concatenating a number with a string

当您将一个数字与一个字符串连接(组合)起来,并且该数字排在第一位时,您需要首先将该数字转换为一个字符串。例如:

str(hundredDollar) + " hundred dollar bills."

如果使用浮点,并且希望输出显示为int,即2而不是2.0,则可以使用int()函数或格式化输出。例如:

print( int(hundredDollar), "hundred dollar bills." ) 

Add validation for user input

当接收到来自用户的输入时,建议添加一些验证,以检查用户输入的数据是否如预期的那样(在本例中,是有效量)。这可以使用数据类型的tryexcept块和if语句来检查数据是否在有效范围内或是否满足附加要求。你知道吗

用这个

amount = eval(input  ("enter amount: "))

它将字符串从输入转换为int

如果你想浮动

amount = float(input  ("enter amount: "))

相关问题 更多 >