news 2026/10/13 6:57:18

Python 2.x与3.x input差异揭秘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 2.x与3.x input差异揭秘

1.在.7版本中, 这两个功能都可与input配合使用, 但它们之间存在一些细微的差别。具体来说, input功能会对用户输入的类型进行识别和验证。例如, 当输入内容为字符串时, 必须在前后加上引号,如果忘记了添加引号, 则程序运行时会引发错误。

使用示例:(.7.8)

>>> name=raw_input('enter your name:')

enter your name:abc

>>>type(name) //当输入为字符串时,返回值类型是字符串

'str'>

>>> name=raw_input('enter your name:')

enter your name:123

>>>type(name) //当输入为数字时,返回值类型是字符串

'str'>

所以, 也就是说默认的这种操作是, 不管你怎么弄这个输入进来的东西, 它全都会当成是那种字符串来去处理的, 根本就没有其他的一些什么额外限制的。

(.7.8)给出了input这个词语的使用示例。

>>> name=input('enter your name:')

enter your name: abc

Traceback (most recent call last)://当输入为字符串但没加引号时,会引发错误

File"", line 1,in

name=input('enter your name:')

File"", line 1,in

NameError: name'abc'isnotdefined

通过让输入框弹出语让你去填写名字,然后在语的外面加上引号来框住它, 系统才能把咱们手敲进去的那些字给正确地认出来。

输入你的名字, 也就是abc。

>>> type(name)

用户需要调用input函数来接收名为name的数据, 同时需要在屏幕语里面输入enter your name这个信息, 这里要注意, 如果要输入的是一串数字, 那么就不需要使用引号把数字括起来, 系统就可以正常地接收到。

输入你的名字, 此处为123。

>>> type(name)

最后, 尝试给数字加上引号去处理的时候呢, 它就会把那个数字当做是字符串类型来接收。

请在对应的输入界面将您的名字信息填写为‘123’, 并确认录入。

>>> type(name)

从整体情况来看在, .x里使用input这个方法的时候是比较麻烦的, 需要在输入的时候考虑到值的类型这一回事儿, 字符串它是一定要加上双引号的, 数字如果直接作为数字来用的话是不用加双引号的, 要是数字要当作字符串来用的话那就必须加上双引号了, 在这样的情况下这层引号是不会被算作是所输入的内容里面的一部分了的它只是在起到那种去识别类型的作用而已。

要是用了的话, 那就完全不用去顾忌什么了, 系统会按默认的方式, 把所有输入的东西都当作字符串来接收和看做处理对象这种情况之下, 如果在外面再加上一对引号呢, 那这引号本身也会跟着一起被当作是这个字符串内容的一部分给接收到手里的, 具体样子就像下面展示的那样。

>>> name=raw_input('enter your name:')

enter your name:'abc'

>>>name

"'abc'"

>>>type(name)

'str'>

>>>len(name)

5

2.在3版本里面, 这两个东西被整合到一块儿去了, 只剩下了输入框这一个形式, 并且这个输入框压根就不能识别你输入内容是什么类型的数据。

input使用示例:(.3)

>>> name=raw_input('enter your name:') //使用raw_input会直接出错

Traceback (most recent call last):

File"", line 1,in

name=raw_input('enter your name:')

NameError: name'raw_input'isnotdefined

>>> name=input('enter your name:') //input不再需要识别输入类型,统一当作字符串处理

enter your name:abc

>>>type(name)

<class'str'>

同样的, 输入的字符串如果带有引号, 这种状态会被视作内容来接收和处理。

需要说明的是, 在.x版本里面, 大家其实是在保留2.x的这些特性的同时, 把原来的名字给废除了, 然后换成了input这个名字, 导致习惯了用2.x的人,再去用3.x的时候, 就会觉得有一点别扭。

我们去推测一下, 之所以要做这样的大改动, 背后的原则大概就是这样的, 功能这块要往简单了走, 因为2.x的好用的部分确实挺方便, 命名的话也要往简单了走, input这个名字比较短, 用起来顺手点, 把这两个方面整合到一起, 就成了3.x这个新东西里的input了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 6:56:07

PS5远程游玩实战:从局域网到公网的AnyPS5搭建指南

1. 项目源起&#xff1a;为什么需要“AnyPS5”先说结论&#xff1a;PS5是一台好机器&#xff0c;但绝大多数时间它只能待在客厅的电视柜上。白天上班、通勤在路上、或者在书房想随手摸一把游戏&#xff0c;都得老老实实坐在那台4K电视前面——这不是体验问题&#xff0c;是空间…

作者头像 李华
网站建设 2026/10/13 6:55:58

上海室内空气检测-摄影布景与收藏空间的材料版本怎样留痕

上海室内空气检测遇到摄影布景更换或收藏房搬迁&#xff0c;应先固定实际材料与摆放版本&#xff0c;再解释对应的空气结果。相同地址不代表相同配置&#xff1b;拆箱包装、长期保留展柜与未来才进入的物品应分别记录。材料版本卡帮助读者把数量、位置、进出时间和照片连起来&a…

作者头像 李华
网站建设 2026/10/13 6:55:18

基于Java+Vue+ElementUI的电子病历产科管理系统设计与实现

跑过几个妇幼保健院和综合医院产科的信息化项目之后&#xff0c;你会发现需求书里几乎都会写一句话&#xff1a;“构建以电子病历为核心的数字产科管理系统”。这句话听起来像标准话术&#xff0c;真正落地时涉及的却是一整套从门诊建档、产检记录、高危评估、待产住院、产程分…

作者头像 李华
网站建设 2026/10/13 6:55:01

天地盖 vs 普通开槽摇盖纸箱:承重性能与装箱效率核心区别

天地盖 vs 普通开槽摇盖纸箱&#xff1a;承重性能与装箱效率核心区别一、对比引言天地盖纸箱与普通开槽摇盖纸箱&#xff08;RSC 型&#xff09;是工业包装中最主流的两类箱型&#xff0c;二者结构形式完全不同&#xff0c;在承重性能、装箱效率、自动化适配、成本等维度差异显…

作者头像 李华