zoukankan      html  css  js  c++  java
  • Python中int()强制类型转换

    今天在一个Python学习交流群中发现了一个有趣的类型转换。

    a=12.8
    print(type(12.8))
    print(int(12.8))

    运行结果很明显:

    <class 'float'>
    12

    接下来就是有些疑惑的地方了。

    a = input("input:")
    print(type(a))
    print(int(a))

    不同的输入有不同的输出结果,当输入小数时,会报错;当输入整数时却可以正常运行。

    input:12.8
    <class 'str'>
    Traceback (most recent call last):
      File "D:/PycharmProject/Study/Chapter3.py", line 66, in <module>
        print(int(a))
    ValueError: invalid literal for int() with base 10: '12.8'
    input:12
    <class 'str'>
    12

    我和朋友(我们只是菜鸟相互出主意那种)想到的方法是:

    a = input("input:")
    print(type(a))
    print(int(float(a)))

    将类型进行两次转换,得到了想要的结果:

    input:12.8
    <class 'str'>
    12

    群里也有人给出了更好的办法:

    a = eval(input("input:"))
    print(type(a))
    print(int(a))

    得到的结果:

    input:12.8
    <class 'float'>
    12

    通过搜索eval(),发现它真的是一个很神奇的函数。

    python eval的妙用

  • 相关阅读:
    线程池
    多线程随笔
    注解随笔
    反射机制
    iO流
    FastDFS+docker建立分布式文件系统
    Java之Exception
    Java之String
    手写SpringMvc
    spring中一些常用注解的含义
  • 原文地址:https://www.cnblogs.com/cathycheng/p/11177135.html
Copyright © 2011-2022 走看看