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 七种邮件内容发送方法实例
Apr 22 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 Python
python制作图片缩略图
Apr 30 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
Python中拆分字符串的操作方法
Jul 23 Python
python3 enum模块的应用实例详解
Aug 12 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
Python如何根据时间序列数据作图
May 12 Python
Pytest之测试命名规则的使用
Apr 16 Python
python办公自动化之excel的操作
May 23 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
PHPLog php 程序调试追踪工具
2009/09/09 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
php中的登陆login实例代码
2016/06/20 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
Jquery遍历节点的方法小集
2014/01/22 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
python SVD压缩图像的实现代码
2019/11/05 Python
Python实现元素等待代码实例
2019/11/11 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
大学生家政服务项目创业计划书
2014/01/30 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
出纳担保书范文
2014/04/02 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
2014院党委领导班子对照检查材料思想汇报
2014/09/24 职场文书
考试没考好检讨书
2015/05/06 职场文书
电影圆明园观后感
2015/06/03 职场文书
法定代表人资格证明书
2015/06/18 职场文书
党员反四风学习心得体会
2016/01/22 职场文书