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实现restful api service
Dec 04 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
Python 编码规范(Google Python Style Guide)
May 05 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
使用python 写一个静态服务(实战)
Jun 28 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
Python字典中的值为列表或字典的构造实例
Dec 16 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
ipython jupyter notebook中显示图像和数学公式实例
Apr 15 Python
Python下划线5种含义代码实例解析
Jul 10 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中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
JQuery从头学起第一讲
2010/07/04 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
Python兔子毒药问题实例分析
2015/03/05 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
浅析python 字典嵌套
2020/09/29 Python
python Xpath语法的使用
2020/11/26 Python
python之随机数函数的实现示例
2020/12/30 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
商务英语本科生的自我评价分享
2013/11/15 职场文书
新春联欢会主持词
2014/03/24 职场文书
婚前协议书怎么写
2014/04/15 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
质量整改报告范文
2014/11/08 职场文书
公司慰问信范文
2015/03/23 职场文书
2016教师节感恩话语
2015/12/09 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL