看到一段代码,判读输入的数字,用的是eval(input()),查了一下,原来input()会把所有输入值,包括数字,视为字符串,而eval()会去掉字符串最外层的引号,然后当做Python语句执行[mark:语句or表达式,应该是表达式!],直观理解是:看起来像数字的字符串变成数字了。。。

>>> a = input()
123
>>> type(a)
<class 'str'>
>>> b = eval(input())
456
>>> type(b)
<class 'int'>
>>>

一个反例

>>> a = eval("'pybook'")
>>> a
'pybook'

所以本质上,eval是去一层引号,然后按语句执行,eval(input())本质是一个取输入数字的技巧

如果不用eval,怎么取输入的数字?

可以用int, float转数据类型,但效果不如eval

一点补充说明

对于eval(input()),input隐含会在输入最外层加一层引号,即把输入视为一个字符串,eval隐含会去最外层引号,如果输入的字符串带了引号,则这个引号会保留,看下面的例子

>>> guess = input()
0x452//2
>>> guess
'0x452//2'
>>> guess = eval(input())
0x452//2
>>> guess
553
>>> guess = eval(input())
'0x452//2'
>>> guess
'0x452//2' #保留输入的引号
>>> guess = input()
'0x452//2'
>>> guess
"'0x452//2'" #2层引号
>>>

  

eval(input())的更多相关文章

  1. 使用 eval(input()) 的便利

    输入列表或者字典时使用eval可以自动转换为其类型 2020-06-18

  2. python 内置函数input/eval(22)

    python的内置函数其实挺多的,其中input和eval算得上比较特殊,input属于交互式内置函数,eval函数能直接执行字符串表达式并返回表达式的值. 一.input函数 input是Pytho ...

  3. Python 基础之二用户交互input

    Input是个内建函数: >>> input <built-in function input> >>>   具体用法:接收用户输入的内容,输入的字符串 ...

  4. python eval()和exec()以及complie()

    1.eval() 函数 eval() 函数用来执行一个字符串表达式,并返回表达式的值. ------->>  eval(expression[, globals[, locals]]) 参 ...

  5. 我的第一个Python程序,定义主函数,eval、format函数详解,

    程序实例: #第一个py小程序 def main(): f = eval(input("输入一个数值:")) p=f*(5/9) print("现在的值为:{0:3.3f ...

  6. Python3:input()输入函数的用法

    Python3:input()输入函数的用法 一.简介 input这个函数,第一个参数是提示语,它默认是空的.在我们使用input的时候,会从标准输入中读取一个string,即字符串(请注意,这里很重 ...

  7. Python中input()的使用方法

    input()以字符串的方式获取用户输入: >>> x = input() 4.5 >>> type(x) <class 'str'> >> ...

  8. python eval()内置函数

    python有一个内置函数eval(),可以将字符串进行运行. 通过help(eval)查看帮助文档 Help on built-in function eval in module builtins ...

  9. python-输入列表,求列表元素和(eval输入应用)

    在一行中输入列表,输出列表元素的和. 输入格式: 一行中输入列表. 输出格式: 在一行中输出列表元素的和. 输入样例: [3,8,-5] 输出样例: 6 代码: a = eval(input()) t ...

随机推荐

  1. xxx.pch(No such file or directory)

    今天在写一个组件的Demo,发现把一个现象. 我把stdafx.h和stdafx.cpp从工程删除了(本地也被我删除了).后来又想把它加回去,就用新的工程生成这两个文件.然后拷贝过来,增加到工程. 但 ...

  2. C# 中的反射机制

    C# 中的反射 首先我们通过两个实例来说明反射的大体概念.B超:大家体检的时候大概都做过B超,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射 ...

  3. C#基础知识---is与as

    一.is与as对比 is检查一个对象是否兼容于指定的类型,并返回一个Boolean值:true或者fasle. 注:is操作符永远不会抛出异常 经常按如下方法使用: ClassA { .... } O ...

  4. WPF---数据绑定之PasswordBox绑定(八)

    一.概述 众所周知,绑定的源既可以是依赖属性也可以是普通的CLR属性,而绑定的目标只能是依赖属性. 控件PasswordBox的Password属性不是依赖属性,不可以作为绑定的目标与后台数据进行绑定 ...

  5. [ASP.NET MVC]@RenderSection,@RenderBody(),@RenderPage

    1.@RenderBody()  作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之 ...

  6. CentOS7中apache的部署与配置

    一.apache的部署 输入命令 yum list | grep httpd 查看可安装的软件包,选择"httpd.x86_64"安装. 输入命令 yum install http ...

  7. 源码解析.Net中DependencyInjection的实现

    前言 笔者的这篇文章和上篇文章思路一样,不注重依赖注入的使用方法,更加注重源码的实现,我尽量的表达清楚内容,让读者能够真正的学到东西.如果有不太清楚依赖注入是什么或怎么在.Net项目中使用的话,请点击 ...

  8. apt-get 安装程序时报 'E: Unable to locate package xxx' 错误处理办法

    提示无法定位包,要执行命令更新: sudo apt-get update

  9. linux 查看用户密码

    2021-07-26 1.查看前三个密码 head -3 / etc / passwd # 注解 /etc/passwd 中一行记录对应着一个用户,每行记录又被冒号 (:) 分隔为 7 个字段,其格式 ...

  10. iNeuOS工业互联平台,增加OPC UA驱动,同步和订阅方式读取数据

    目       录 1.      概述... 1 2.      平台演示... 2 3.      OPC UA应用效果... 2 1.   概述 最近的项目,用户需要使用OPC UA读取数据,通 ...