python中input()与raw_input()的区别分析


Posted in Python onFebruary 27, 2016

使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的
纯数字输入

当输入为纯数字时

input返回的是数值类型,如int,float
raw_inpout返回的是字符串类型,string类型

输入字符串为表达式

input会计算在字符串中的数字表达式,而raw_input不会。

如输入 “57 + 3”:

input会得到整数60
raw_input会得到字符串”57 + 3”

python input的实现

看python input的文档,可以看到input其实是通过raw_input来实现的,原理很简单,就下面一行代码:

def input(prompt):
return (eval(raw_input(prompt)))

Python raw_input 读取输入值

下面介绍了python raw_input的用法,
使用raw_input 能够很方便的从控制台读入数据。

1.输入字符串

#!/usr/bin/env python
# -*- coding:utf-8 -*-

if __name__ == '__main__':
  # 13222319810101****
  nID = ''
  while 1:
    nID = raw_input("Input your id :")
    if len(nID) != len("13222319810101****"):
      print 'wring length of id,input again'
    else:
      break

  print 'your id is %s' % (nID)

结果:

python中input()与raw_input()的区别分析

2.输入整数

#!/usr/bin/env python
# -*- coding:utf-8 -*-

if __name__ == '__main__':
  nAge = int(raw_input("input your age :\n"))
  if nAge > 0 and nAge < 120:
    print 'thanks!'
  else:
    print 'bad age'
  print 'your age is %d\n' % nAge

结果:

python中input()与raw_input()的区别分析

3.输入浮点型

#!/usr/bin/env python
# -*- coding:utf-8 -*-

if __name__ == '__main__':
  fWeight = 0.0
  fWeight = float(raw_input("input your weight\n"))
  print 'your weight is %f' % fWeight

结果:

python中input()与raw_input()的区别分析

4.输入16进制数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-

if __name__ == '__main__':
  nHex = int(raw_input('input hex value(like 0x20):\n'), 16)
  print 'nHex = %x,nOct = %d\n' % (nHex, nHex)

结果:

python中input()与raw_input()的区别分析

5.输入8进制数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-

if __name__ == '__main__':
  nOct = int(raw_input('input oct value(like 020):\n'), 8)
  print 'nOct = %o,nDec = %d\n' % (nOct, nOct)

结果:

python中input()与raw_input()的区别分析

以下是其他网友的补充

我们来看input的源码

def input(prompt):
return eval(raw_input(prompt)) 

其实input也是调用了raw_input,只是做了eval处理

而eval有什么作用呢?

input:会根据用户的输入来做类型的转换
raw_input:则会把用户的输入都作为一个字符串来处理

下面是详细的补充:

首先,我们知道input()和raw_input()都是用来获取控制台的输入,当然输入的时候可以加上输入提示信息:

        a = raw_input("Please input a:")

        b = input("Please input b:")

那么这两者有什么区别呢?

input()支持用户输入数字或者表达式,不支持输入字符串,返回的是数字类型的数值。而raw_input()捕获的是最原始的输入,也就是说返回的是一个字符串,所以如果输入的是数字,那么我们必须要进行强制转换。例如:

        a = int(raw_input("Please input the number a:"))

其实input()本质上还是使用raw_input()来实现的,只是调用完raw_input()之后再调用eval()函数,所以,除非对input()有特别需要,否则一般情况下我们都是推荐使用raw_input()来与用户交互。
 
map接收一个函数和一个可迭代对象(如列表)作为参数,用函数处理每个元素,然后返回新的列表。

ACM有时需要要a b c这样的一行格式输入,这时就用map函数来处理,这里假设a,b,c都是整数。
a,b,c = map(int, raw_input().split()),raw_input函数输入的是字符串,字符串的split方法用来将字符串分割成序列。

Python 相关文章推荐
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
Python实现对特定列表进行从小到大排序操作示例
Feb 11 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
python如何输出反斜杠
Jun 18 Python
python dir函数快速掌握用法技巧
Dec 09 Python
python如何实现递归转非递归
Feb 25 Python
如何使用flask将模型部署为服务
May 13 Python
python PIL模块与随机生成中文验证码
Feb 27 #Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 #Python
python 网络爬虫初级实现代码
Feb 27 #Python
Python数据库的连接实现方法与注意事项
Feb 27 #Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 #Python
学习python之编写简单乘法口诀表实现代码
Feb 27 #Python
学习python 之编写简单乘法运算题
Feb 27 #Python
You might like
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
php反射应用示例
2014/02/25 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
Python实现的归并排序算法示例
2017/11/21 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
Java文件和目录(IO)操作
2014/08/26 面试题
机关道德讲堂实施方案
2014/03/15 职场文书
个人工作主要事迹
2014/05/08 职场文书
陕西导游词
2015/02/04 职场文书
实习证明格式范文
2015/06/16 职场文书
法定代表人资格证明书
2015/06/18 职场文书
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android