Python 3中的int()与float()输入及其实用程序?
这并不涉及我的特定代码,所以我希望这不会违反社区提出问题的标准。我还在学习,所以如果这种问题不适合以后参考,请告诉我 在开始学习使用Python3时,我试图对某些命令的实用性有一个透彻的了解。我以前从未编写过代码,所以我没有任何其他语言的背景。我希望有人能帮我更彻底地理解这一点 基本上,我理解当提示用户输入一个数值时,有时写入Python 3中的int()与float()输入及其实用程序?,python,python-3.x,floating-point,int,Python,Python 3.x,Floating Point,Int,这并不涉及我的特定代码,所以我希望这不会违反社区提出问题的标准。我还在学习,所以如果这种问题不适合以后参考,请告诉我 在开始学习使用Python3时,我试图对某些命令的实用性有一个透彻的了解。我以前从未编写过代码,所以我没有任何其他语言的背景。我希望有人能帮我更彻底地理解这一点 基本上,我理解当提示用户输入一个数值时,有时写入float(input())是正确的,有时写入int(input())是正确的。我在数学中知道整数是一个整数,浮点数是由整数、基数和尾数(如4.32)定义的任何数字。我不理
float(input())
是正确的,有时写入int(input())
是正确的。我在数学中知道整数是一个整数,浮点数是由整数、基数和尾数(如4.32)定义的任何数字。我不理解将用户输入转换为其中一种的效用
例如,如果我写int(输入(“输入一个小数”)
并且用户输入4.3,程序将返回一个值错误。这其中的效用是什么?因此:
input()
转换为float()
或int()
的实用程序是什么int()
和float()
的困惑:
price=input(“该商品的价格是多少?:$”)
如果float(price)与效用无关,那么它与程序应该/需要接受的值的可能范围有关
如果它需要接受整数和浮点作为输入,那么应该转换为float
,因为浮点可以表示整数
但是如果您的程序要求输入是一个整数,那么您应该强制转换为int
编辑:
在您的示例中,您应该始终使用float
,因为货币有一个十进制值
如果你问“你买了多少香蕉?”你会想转换成int
,因为这些值将是0,1,2,3,4,
。然后当你问“你花了多少钱买这些香蕉?”你会想转换成float
,因为这些输入可以是3.15、.77、1、1.00、
等等
这样你就可以处理数字了。在Python中,不能很好地将'3'
乘以'2'
这样您就可以使用浮点数了。生活中的一些事情可以是零零碎碎的,比如公斤、秒或平均分数
如果您的程序需要处理连续整数之间的数字,您可能应该使用float
如果在程序中使用字符串,则可能希望它们是数字,而不管字符串来自何处
您需要根据具体情况对此进行评估
您可以使用try函数实现错误检查。使用int vs float的唯一原因是,如果您试图节省内存,而嵌入式ROM的内存严重受限。在我看来,您应该在不确定时始终使用float,因为它接受更多的值,因此返回错误的可能性较小
除非您的代码要求用户输入一个四舍五入的数字(如果是浮点数,则可以对该数字进行四舍五入,但如果操作不正确,则可能导致混淆)
坏例子:
username_input = float(input("Enter your username: "))
pincode_input = int(input("Enter pincode: "))
pincode = 1234
if pincode == pincode_input:
print("Good")
else:
print("Bad")
在这种情况下,代码希望用户输入一个四舍五入的数字,因此我喜欢使用int(),这样,如果用户输入一个十进制数字,那么我就知道问题所在,可以直接修复它,而不是修复依赖它的所有其他代码
这是一个糟糕的例子,因为如果用户的输入没有用int()转换,代码就会运行,但我希望您能理解。因此float()
几乎就像int()
的超集一样?当我需要用户输入一个数值时,我应该何时使用float()
?此外,我编辑了我的问题,以包括一批代码,我认为我可能误用了这些命令,但我不确定。非常感谢你的帮助!如果我们使用非常严格的数学意义上的单词float,它几乎是int的超集,但它不是因为几个重要的原因。首先,并非所有整数都可以用浮点数精确存储;其次,python3 int类型支持大于最大可存储浮点数的bigint。无论如何,一个小评论不能做到这一点,所以去读一下:在你发布的示例中,你应该使用float
,因为钱可以有一个十进制值。@NaomiJacobson-不要使用这个答案。这是错误的。继续做你正在做的事。货币应转换为其最小面额并存储为整数,以避免浮点错误。@NaomiJacobson-简单地说,在Python解释器中输入0.3-0.2==0.1
,然后查看结果。然后尝试30-20==10
float()
可以让你将用户的输入转换成一个数字,以便进行进一步的处理,但货币计算最好使用整数,就像你正在做的那样。我认为这可能是在聊天中讨论得更好的事情,这当然是一个宽泛的话题,但我没有投票决定以过于宽泛的方式结束。你熟悉浮动的方式吗
username_input = float(input("Enter your username: "))
pincode_input = int(input("Enter pincode: "))
pincode = 1234
if pincode == pincode_input:
print("Good")
else:
print("Bad")