在 Python2 中如要想要获得用户从命令行的输入,可以使用 input() 和 raw_input() 两个函数,那么这两者有什么区别呢?

我们先借助 help 函数来看下两者的文档注释:

>>> help(raw_input)

Help on built-in function raw_input in module __builtin__:

raw_input(...)

raw_input([prompt]) -> string

Read a string from standard input. The trailing newline is stripped.

If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.

On Unix, GNU readline is used if enabled. The prompt string, if given,

is printed without a trailing newline before reading.

>>> help(input)

Help on built-in function input in module __builtin__:

input(...)

input([prompt]) -> value

Equivalent to eval(raw_input(prompt)).

可以看出,raw_input() 返回的始终是一个“原始”(raw)字符串,并且去掉了行末的换行符。

值得注意的是,文档还提到“On Unix, GNU readline is used if enabled. ”,

这是说,如果 *nix 系统中安装了 GNU readline 库,并且在 python 中启用了(import readline),那么 raw_input() 底层就会调用这个库。

如果不启用,raw_input() 也能用,只不过会读取你键盘输入的所有字符,包括不可见字符,比如回退键……这样就很不方便了是不是。

而 input() 其实是在 raw_input() 返回的结果上再 调用了 eval() 函数,把原始字符串计算成 python 可以识别的对象。

在 Pyhon3 中,已经没有 raw_input() 函数了,而剩下 input() 函数与 Python2 中的 raw_input() 行为一致:

>>> help(raw_input)

Traceback (most recent call last):

File "", line 1, in

NameError: name ‘raw_input‘ is not defined

>>> help(input)

Help on built-in function input in module builtins:

input(prompt=None, /)

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.

python命令行输入函数回退_Python2 中 input() 和 raw_input() 的区别相关推荐

  1. python命令行输入函数回退_Anaconda--成功解决python2与python3之间随意切换的问题!...

    Anaconda 由于python2与python3不兼容,之前一直使用python2,但由于种种原因不得不使用python3.我使用的python的集成开发环境是pycharm,使用了好多种办法使p ...

  2. python命令行输入函数回退_linux命令.

    1.Linux命令 1.关机.重启 关机 :init 0 重启 :init 6 2.rm 1.rm -rf 文件/目录 r :递归删除文件夹内的子文件夹 f :强制删除,force 2.练习 1.在用 ...

  3. python中str和input_python中input()与raw_input()的区别分析

    使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 纯数字输入 当输入为纯数字时 input返回的是数值类型,如int,float ra ...

  4. python中int和input的区别_python中input()与raw_input()的区别分析

    使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 纯数字输入 当输入为纯数字时 input返回的是数值类型,如int,float ra ...

  5. python中input和raw_input的区别

    input和raw_input在处理数字时是有区别的: 1.输入为纯数字时 input返回的是数值类型,如int,float raw_inpout返回的是字符串类型,string类型 2.输入字符串为 ...

  6. python中input()与raw_input()的区别到底是啥?-----marsggbo原创作品为你解答

    首先先给出总结:input () = int(raw_input()) 有图有真相!!! 先看看input的例子: 可见用input键入得到int类型的数据,那如果输入一些非int类型的会怎么样呢? ...

  7. python 命令行参数 parser.add_arguement 中各参数的意思

    class Action(_AttributeHolder): """Information about how to convert command line stri ...

  8. 对于python命令行参数使用,你应该这么做才专业

    python命令行参数 在python开发中,我们经常会遇到在执行代码时,需要给代码传参的情况. 遇到传参的场景,最基础的传参方式为*.py argv1 argv2 ...,然后我们在代码中通过sya ...

  9. 对于python命令行,你应该这么做才专业

    论吃苦 和朋友聊天,说到了学习的问题.不知道何时听过一句话,因为不想吃生活的苦,所以我忍受着学习的苦.生活的苦只要躺着就能吃到,而学习的苦却要我们逼着自己去吃.每天下班回来等到孩子睡了开始学习,学的差 ...

最新文章

  1. 【Qt】Qt单例模式三种实现
  2. Python3基础笔记---面向对象
  3. OpenCV——KNN分类算法 摘
  4. 如何在windows上玩转redis的最新特性?
  5. weblogic自带的jdk是在工程的包部署后编译使用
  6. java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题
  7. poj 1637 Sightseeing tour——最大流+欧拉回路
  8. linux ora-39002,impdp ORA-39002,ORA-39166,ORA-39164的问题及解决
  9. OpenCV-Mat笔记
  10. 卷积神经网络--可视化中间激活
  11. python函数参数为文件名_从零开始第5步:Python 函数和模块
  12. Day 32 processthreading_4
  13. selenium chrome历史版本docker镜像分享
  14. flash builder 4.7破解亲测可用
  15. 经纬度 度分秒转换为小数
  16. 设置qgraphicsitem原点_QT QGraphicsScene设置原点左下角
  17. 三校生高考计算机基础知识,计算机基础知识题(单选题)(三校生历年高考真题归纳)...
  18. 计算机基础实训评分标准,计算机实训考核办法细则.doc
  19. 翻译python代码的软件_Linux环境下的Python翻译工具源码
  20. 小程序下拉刷新 上拉加载等多

热门文章

  1. 【Kafka】Kafka Consumer 管理 Offset 原理
  2. 【MySQL】MySQL 中的函数
  3. 【Java】java Java反编译器
  4. Kudu : NonRecoverableException: illegal replication factor 2 (replication factor must be odd)
  5. spark学习-72-源代码:Endpoint模型介绍(4)-Spark为何使用Netty通信框架替代Akka
  6. Linux终端复用神器-tmux初探
  7. 计算机网络---HTTP状态码
  8. eclipse上的.properties文件中文编辑显示问题
  9. php图片写入带问号_php-fpm Remote Code Execution 分析(CVE-2019-11043)
  10. 【Hive的高级查询详】