Python 中 eval("input()") 和 eval(input()) 之间的区别

2024-05-12

我正在尝试以下功能:

x = eval(input())

输入为 123,x 的类型也是int,它工作正常:

In [22]: x=eval(input("enter:"))
enter:123
In [24]: print(type(x))
<class 'int'>

但是当输入为 abcd 时,它会抛出错误:

In [26]: x=eval(input("enter:"))
enter:abcd
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-26-fb0be0584c85> in <module>()
----> 1 x=eval(input("enter:"))

<string> in <module>()

NameError: name 'abcd' is not defined

另外,当我将代码更改为:

x=eval('input()')

它工作正常:

In [27]: x=eval('input("enter:")')
enter:abcd

In [28]: print(x)
abcd

但是当输入为 123 时,x 的类型为str代替int:

In [30]: x=eval('input("enter:")')
enter:123

In [31]: print(type(x))
<class 'str'>

eval评估一段代码。input从用户输入中获取字符串。所以:

  • eval(input())评估用户输入的任何内容。如果用户输入123,结果将是一个数字,如果他们输入"foo"如果他们输入,它将是一个字符串?wrfs,它会引发错误。

  • eval("input()")评估字符串"input()",这会导致 Python 执行input功能。这要求用户提供一个字符串(而不是其他),即 while123将是字符串"123", ?wrfs将是字符串"?wrfs", and "foo"将是字符串'"foo"' (!).

第三个版本可能会使差异变得明显:eval(eval("input()"))完全相同eval(input()).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中 eval("input()") 和 eval(input()) 之间的区别 的相关文章

随机推荐

  • getJson问题,它返回未定义

    大家好 我有这个代码 var temp if method 1 temp Words val get the words from textbox else getJSON http localhost mine test js funct
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • 使用 SQL 确定子网掩码的 cidr 值

    我想找到一种方法来执行 SQL 查询 该查询将计算存储在数据库中的子网掩码的 cidr 位表示 例如 我在数据库中存储了 255 255 255 0 或其十进制值 4294967040 我想通过查询进行选择并返回 24 表示 我已经执行了类
  • Angular 2 路由器使用 Observable 进行解析

    Angular 2 RC 5 发布后引入了路由器解析 Here https angular io docs ts latest guide router html resolve guard使用 Promise 演示了示例 如果我使用 Ob
  • Java 类:匿名类、嵌套类、私有类

    有人能解释一下Java中匿名类 嵌套类和私有类之间的区别吗 我想知道与每个相关的运行时成本以及每个编译器的方法 这样我就可以掌握哪个最适合用于例如性能 编译器优化的潜力 内存使用以及其他 Java 编码人员的普遍可接受性 我所说的匿名类是指
  • 用于配置编辑的 wix 自定义对话框

    你好 我正在尝试使用 wix v3 为我的应用程序设置 msi 我对这项任务有疑问 我需要一个用户输入 该输入将存储在我的应用程序的配置文件中 例如 我需要一个用于 sql 连接字符串的对话框 并且用户输入将写入应用程序配置文件中 我尝试用
  • Android 应用程序 Phonegap 中的 Admob 实现

    我将一个 jquery 脚本转换为 Android 应用程序 现在我想将 admob 添加到其中 这可能吗 谷歌从那时起禁止在移动应用程序中使用 AdSense 在移动应用程序中使用 AdSense 移动广告违反了 AdSense 政策 移
  • 您如何评论 RFC?

    我有一些关于OAuth RFC 草案 https datatracker ietf org doc html draft hammer oauth 10 特别是关于它包含的一些错误 但我不确定可接受的制作方法是什么 底部有一个电子邮件地址
  • 我可以在pycharm中的断点处进入交互模式吗

    我是一个相当新的 Pycharm 3 用户 正在从事 django 项目 我可以在 pycharm3 中的断点处进入交互模式吗 这可能吗 当程序在断点处停止时 我尝试过工具 gt 打开调试命令行 但我没有看到控制台打开 我怎样才能让它发挥作
  • PHP mail() 函数发送电子邮件,但需要 10 多分钟才能显示

    因此 我的用户从手机上的 Android 应用程序进行注册 注册成功后 我会触发一封邮件发送到注册的电子邮件地址 其中包含来自我的 PHP 脚本的激活密码 这是我使用的代码行 非常简单 mail to subject message hea
  • Range.End() 困惑

    我有一个关于 VBA 中 Range End 属性的一般性问题 我已经阅读了有关该房产的信息here http msdn microsoft com en us library bb221181 aspx 但我还是很困惑 例子 With w
  • R.scale() 和 sklearn.preprocessing.scale() 之间的区别

    我目前正在将数据分析从 R 转移到 Python 当在 R 中缩放数据集时 我将使用 R scale 根据我的理解 它将执行以下操作 x mean x sd x 为了替换该函数 我尝试使用 sklearn preprocessing sca
  • Swift 5 MacOS 图像调整大小内存问题

    我是使用 Swift 进行 Mac OS 应用程序开发的新手 但我尝试制作简单的 ImageResizer 应用程序 我必须调整 50k 图像的大小 10个小时后 内存已增加到近120GB 我以为 Swift 也有垃圾收集器 为什么它可以增
  • 将列表(对象)转换为列表(字符串)

    有没有办法转换List of Object to a List of String 在 c 或 vb net 中而不迭代所有项目 幕后迭代很好 我只想要简洁的代码 Update 最好的方法可能就是进行新的选择 myList Select f
  • 如何在WKInterfaceLabel下面放置一个WKInterfaceLabel?

    大家好 我在 watchkit 开发中有新的东西 我有特殊要求 我将一个 WKInterfaceLabel 安排在另一个 WKInterfaceLabel 下面 我尝试使用很多关闭选项 例如编辑位置 但 WKInterfaceLabel 未
  • 在多模块项目中访问绑定适配器

    我有一个多模块项目 其中应用程序模块包含我的绑定适配器 而我的功能模块取决于我的应用程序模块 因为它是动态功能模块 应用程序 包含绑定适配器 gt 动态功能模块 存在布局的地方 我在所有模块中启用了数据绑定和 kapt 我无法成功构建应用程
  • 可变借用不止一次[重复]

    这个问题在这里已经有答案了 这是无法编译的简短示例的简短示例 错误在于add1功能 如果我这样做的话它会起作用add2 但这不是很干 有更多经验的人能否启发我如何以比以前更好的方式克服可变借用错误 add2 struct S1 full b
  • 如何使用Peewee查询多个相似的数据库?

    我遇到了使用 Peewee 查询多个数据库的问题 我有 2 个现有的 mysql 数据库 让我们将它们命名为 A 和 B 结构相似 因为它是两个 Bugzilla 数据库 我使用 Pwiz 生成模型 modelsA py 和 modelsB
  • 具有多重继承的类的 sizeof

    首先 我知道 sizeof 取决于机器和编译器的实现 我使用的是 Windows 8 1 x64 gcc 5 3 0 没有标志传递给编译器 我从大学讲座中得到了以下代码 include
  • Python 中 eval("input()") 和 eval(input()) 之间的区别

    我正在尝试以下功能 x eval input 输入为 123 x 的类型也是int 它工作正常 In 22 x eval input enter enter 123 In 24 print type x