python2和python3的input是不同的

python3的input

对于python3,只有input,官方文档里是这样描述的

def input(*args, **kwargs): # real signature unknown
"""
Read a string from standard input. The trailing newline is stripped. The prompt string, if given, is printed to standard output without a
trailing newline before reading input. If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
On *nix systems, readline is used if available.
"""
pass

意思就是:读取一个字符串并输入,舍弃结尾的换行符
```python
a = input()
print(a, type(a))

b = input()

print(b, type(b))

<br>
控制台输出结果
```python
hello
hello <class 'str'>
123
123 <class 'str'>

python2的input

python2有input和raw_input两种输入

input

a = input()
print(a, type(a)) b = input()
print(b, type(b))

控制台输出结果

123
(123, <type 'int'>)
hello
Traceback (most recent call last):
File "D:/input_test/test.py", line 11, in <module>
b = input()
File "<string>", line 1, in <module>
NameError: name 'hello' is not defined

报错了!这是因为input是获取原始的输入内容,也就是说,输入什么,就会得到什么

官方文档是这样描述的

def input(prompt=None): # real signature unknown; restored from __doc__
"""
input([prompt]) -> value Equivalent to eval(raw_input(prompt)).
"""
pass

如果要输入字符串,需要手动加引号

a = raw_input()
print(a, type(a)) b = raw_input()
print(b, type(b)) # 控制台输出结果
123
(123, <type 'int'>)
'hello'
('hello', <type 'str'>)

### raw_input
raw_input与python3里面的input一样,输入的内容都会转化成字符串

a = raw_input()
print(a, type(a)) b = raw_input()
print(b, type(b))

控制台输出结果

123
('123', <type 'str'>)
hello
('hello', <type 'str'>)

## 小结
- python3只有input,输入的数据都会转化成字符串
- python2有input和raw_input,input读取原始的数据类型,输入什么就得到什么;raw_input获取到的都是字符串类型
补充:关于input的底层实现,参考博客 python中print和input的底层实现

最新文章

  1. javascript面向对象系列第三篇——实现继承的3种形式
  2. Ubuntu 14.04.1 建立 Android M, Android N 開發環境 與 問題
  3. 使用Java开发高性能网站需要关注的那些事儿
  4. android 编译过程
  5. EntityFramework code first 一些常用的约束特性
  6. ZTE AD3812 3G模块在linux 2.6.34 内核的开发板上的支持方法
  7. SQL Server2008 附加数据库失败 错误代码5120
  8. Wap touch flispan demo
  9. PHP学习笔记14-操作session
  10. Agile/CMMI/Scrum
  11. java课程设计——猜数游戏
  12. 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理
  13. Flex中的FusionCharts 四图监听
  14. ASP.NET Core + Docker +Jenkins 实现持续集成
  15. 通用类 对象和XML互转
  16. js&#183;&#183;事件捕捉
  17. django操作数据库 ORM
  18. Liebig&#39;s Barrels CodeForces - 985C (贪心)
  19. win常用
  20. 浅析 Spring Aop

热门文章

  1. GIT分布式版本控制系统
  2. Tomcat7基于Redis的Session共享实战一
  3. 人脸识别经典算法一:特征脸方法(Eigenface)
  4. JS思维之路菜鸟也能有大能量(2)--模拟数组合并concat
  5. php get set方法深入理解
  6. 基于MapReduce的矩阵乘法运算
  7. 剑指Offer33 第一个只出现一次的字符
  8. ASP.NET 优化 check list
  9. 开源项目AndroidUtil-采用Fragment实现TabHost
  10. 2014牡丹江——Hierarchical Notation
  11. Excel里函数中的万金油,你确定不要点进来看看?
  12. 用C#写经理评分系统
  13. 如何降低90%Java垃圾回收时间?以阿里HBase的GC优化实践为例
  14. BZOJ3252: 攻略 可并堆
  15. linux的cron
  16. 常用Mac快捷键
  17. SpringBoot整合MyBatis(XML)
  18. Vue中 export default 和 export 区别
  19. 【设计模式】JDK源码中用到的设计模式
  20. jsp下载文件