raw_input和input两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。下面举两个例子,来说明两者

raw_input和input两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。下面举两个例子,来说明两者使用上的不同。

例子1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Python 2.7.5 (default, Nov 18 2015, 16:26:36) 
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Type "help""copyright""credits" or "license" for more information.
>>> 
>>> raw_input_A = raw_input("raw_input: ")
raw_input: PythonTab.com
>>> print raw_input_A 
PythonTab.com
>>> input_A = input("Input: ")
Input: PythonTab.com
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'PythonTab' is not defined
>>> 
>>> input_A = input("Input: ")
Input: "PythonTab.com"
>>> print input_A
PythonTab.com
>>>

例子2

1
2
3
4
5
6
7
8
9
10
11
12
13
Python 2.7.5 (default, Nov 18 2015, 16:26:36) 
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Type "help""copyright""credits" or "license" for more information.
>>> 
>>> raw_input_B = raw_input("raw_input: ")
raw_input: 2015
>>> type(raw_input_B)
<type 'str'>
>>> input_B = input("input: ")
input: 2015
>>> type(input_B)
<type 'int'>
>>>

例子 1 可以看到:这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。

例子 2 可以看到:raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float );同时在例子 1 知道,input() 可接受合法的 python 表达式,举例:input( 1 + 3 ) 会返回 int 型的 4 。

查看python手册,得知:

input([prompt])

Equivalent to eval(raw_input(prompt))

input() 本质上还是使用 raw_input() 来实现的,只是调用完 raw_input() 之后再调用 eval() 函数,所以,你甚至可以将表达式作为 input() 的参数,并且它会计算表达式的值并返回它。

不过在 Built-in Functions 里有一句话是这样写的:Consider using the raw_input() function for general input from users.

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。

raw_input() 与 input()的区别的更多相关文章

  1. raw_input和input的区别

    raw_input的返回类型是String类型 input的返回类型是int类型 >>> rawinput = raw_input("raw_input:") r ...

  2. raw_input 和input的区别

    input它会根据用户输入变换相应的类型, raw_input则是不管用户输入什么类型的都会转变成字符型.

  3. python中从键盘输入内容的方法raw_input()和input()的区别

    raw_input()输出结果都是字符串 Input()输入什么内容,输出就是什么内容

  4. raw_input与input的区别

    1. 版本差异 raw_input——>python2版本 input——>python3版本 2. 输入格式差异 就是raw_input()随便输都是字符串,而input()必须按照Py ...

  5. raw_input与input

    raw_input 不管用户输入的是什么,最后打印的类型都会是str字符串类型 input 会根据用户的输入变换成相应的类型,但是需要注意的是我们用户在输入字符或者字符串的时候,需要给他们加上双引号, ...

  6. raw_input和input

    昨天在OJ上做CTF的题目,发现有道python的题目很有意思,让我知道了raw_input和input的区别,并且能干一些别的事情. 官方文档上说,input()相当于eval(raw_input( ...

  7. python 中的input()和raw_input()功能与使用区别

    在python中raw_input()和input()都是提示并获取用户输入的函数,然后将用户的输入数据存入变量中.但二者在处理返回数据类型上有差别. input()函数是raw_intput()和e ...

  8. Python raw_input和input总结 在版本2和版本3中的区别

    Python 2.3.4 (#1, Feb 2 2005, 11:44:13) [GCC 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)] on linux2 Type &q ...

  9. Python 内置函数raw_input()和input()用法和区别

    我们知道python接受输入的raw_input()和input() ,在python3 输入raw_input() 去掉乐,只要用input() 输入,input 可以接收一个Python表达式作为 ...

随机推荐

  1. FlightGear 视角控制

    Flightgear提供了非常灵活的模块化功能 这里就简要记录一下视角切换功能 首先,需要了解一下Flightgear中的property tree的主要内容,这里暂略. http://wiki.fl ...

  2. JS判断浏览器是否支持某一个CSS3属性的方法

    var div = document.createElement('div'); console.log(div.style.transition); //如果支持的话, 会输出 "&quo ...

  3. img超出div width时, jQuery动态改变图片显示大小

    参考: 1. http://blog.csdn.net/roman_yu/article/details/6641911 2. http://www.cnblogs.com/zyzlywq/archi ...

  4. 通过GetManifestResourceStream加载文件出现错误提示“null值”对于“stream”无效[转]

    本文解决了我的问题,收藏一下. 原文地址:http://blog.sina.com.cn/s/blog_a67799f601010atz.html 在做Mobile开发时,需要引入图片,用到了这个方法 ...

  5. 趁有空,再了解一下GROOVY中关于类的通例

    简单的,浅浅的看一下. 想起了RUBY里覆盖类的方法... 在GROOVY里也同样提到了,比如TOSTRING... (其实,在我以前的经验中,从未用过这些东东..:)) 这样用了PACKAGE,显得 ...

  6. Dll方式的线程,需要引用这个

    {== D6DLLSynchronizer =================================================} {: This unit handles the D6 ...

  7. Sublime Text 有哪些使用技巧

    1. 更改变量名的几种方法&lt;img src="https://pic4.zhimg.com/d93cf0e8987e0117f3a3187cfe8e53fb_b.jpg&quo ...

  8. Naive and Silly Muggles (计算几何)

    Naive and Silly Muggles Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/ ...

  9. HDU 5876 Sparse Graph 【补图最短路 BFS】(2016 ACM/ICPC Asia Regional Dalian Online)

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  10. 【离线】【深搜】【树】Codeforces 707D Persistent Bookcase

    题目链接: http://codeforces.com/problemset/problem/707/D 题目大意: 一个N*M的书架,支持4种操作 1.把(x,y)变为有书. 2.把(x,y)变为没 ...