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的妙用

  • 相关阅读:
    响应头中的 ETag 值是如何生成的
    http请求状态码
    RPC 和 REST 有什么优劣
    comet 长轮询与 node 实现
    HTTPS 加密
    iterm2 快捷键
    static in C/C++
    03-树3 Tree Traversals Again
    2016.03.19随笔
    03-树2 List Leaves
  • 原文地址:https://www.cnblogs.com/cathycheng/p/11177135.html
Copyright © 2011-2022 走看看