Python 3中的int()与float()输入及其实用程序?

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)定义的任何数字。我不理

这并不涉及我的特定代码,所以我希望这不会违反社区提出问题的标准。我还在学习,所以如果这种问题不适合以后参考,请告诉我

在开始学习使用Python3时,我试图对某些命令的实用性有一个透彻的了解。我以前从未编写过代码,所以我没有任何其他语言的背景。我希望有人能帮我更彻底地理解这一点

基本上,我理解当提示用户输入一个数值时,有时写入
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")