Python中raw_input() & input() 的功能对比

raw_input的功能是方便的从控制台读入数据。

 inputraw_input都是Python的内建函数,实现与用户的交互,但是功能不同。

一、raw_input

下面介绍让raw_input的几种功能。

1、输入字符串

1>>> raw_input_A = raw_input("raw_input:")
2 raw_input:abc
3>>>type(raw_input_A)
4 <type ‘str‘>

上面输入的abc为字符串str类型

2、输入整数

1 >>> raw_input_A = raw_input("input int:")
2 input int:abc
3 >>>type(raw_input_A)
4 <type ‘str‘>

输入的123也为字符串 str 类型

3、输入浮点数

1 >>> raw_input_A = raw_input("input a float:")
2  input a float:1.2
3 >>>type(raw_input_A)
4  <type ‘str‘>

输入1.2为字符串 str 类型

4、输入16进制数

1 >>> raw_input_A = raw_input("input Hex:")
2  input Hex:0X20
3 >>>type(raw_input_A)
4  <type ‘str‘>

输入0X20为字符串str类型

5、输入八进制数

1 >>> raw_input_A = raw_input("input Oct:")
2  input Oct:110
3 >>>type(raw_input_A)
4  <type ‘str‘>

输入八进制数为字符串 str 类型

二、input

1、输入整数

1 >>> input_A = input("input int:")
2  int:123
3 >>>type(input_A)
4  <type ‘int‘>

输入123为整型 int

2、输入浮点数

1 >>> input_A = raw_input("input a float:")
2  input a float:1.2
3 >>>type(input_A)
4  <type ‘float‘>

3、输入八进制数

1 >>>input_a = input("input H:")
2 input H:00H3
3 Traceback (most recent call last):
4   File "<stdin>", line 1, in ?
5   File "<string>", line 1
6     00H3
7       ^
8 SyntaxError: unexpected EOF while parsing
9 >>>

输入003H报语法错,input无法识别

4、十六进制类似八进制

5、输入字符串

1 >>> input_a = input("input string:")
2 input string:abc
3 Traceback (most recent call last):
4   File "<stdin>", line 1, in ?
5   File "<string>", line 0, in ?
6 NameError: name ‘abc‘ is not defined
7 >>> 

输入字符串abc, 提示未定义错误

1 >>> input_a = input("input string:")
2 input string:‘abc‘
3 >>> type(input_a)
4 <type ‘str‘>
5 >>> 

输入‘abc‘,可以正确识别,为str类型

raw_input  与  input 的区别

这两个函数都可以读取用户的输入,不同的是input()函数要求用户输入有效的表达式,而raw_input()函数将用户输入的任意类型数据都转换为一个字符串。

当输入纯数字时

>>>raw_input返回字符串类型,string

>>> input返回的是数值类型,如int、float

输入字符串表达式时

>>> input() 会计算字符串中的数字表达式,而raw_input()不会

1 >>> input(3+8)
2 11
3 >>> raw_input(3+8)4 115 ‘‘

Python input的实现

查看Built-in-functions可得知,input是由 raw_input实现的:

input([prompt])
   Equivalent to eval(raw_input(prompt)).
   
    input()本质上是由raw_input()来实现,调用raw_input()后再调用eval()函数,所有,可以将表达式作为input()的参数,且会计算表达式的值并返回。
    built-in-function中还说:
Consider using the raw_input() function for general input from users.
   除了特殊需要,一般情况下建议使用raw_input()函数。
从 raw_input() 到 input()
Python 2.X
   在2.x版本中:
     raw_input() 会从标准输入(sys.stdin)读取输入值并返回一个字符串,且尾部换行符从末尾移除。
     input()不同,需要输入有效的表达式,如3+8,‘abc‘。
Python 3
   在Python 3中,将raw_input()重命名为 input(),这样一来,无需导入也可从标准输入获得数据。如需要保留2.X版本的 input() 功能, 可以使用 eval_r(input()), 效果基本相同。
时间: 2024-10-10 13:59:39

Python中raw_input() & input() 的功能对比的相关文章

Python中的input你真会吗?

前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:一米阳光里的晴天娃娃 python中的input()方法是在控制台可以自己输入数据 比如 :定义变量a = 2 现在可以写成 a = input() 可以自己输入变量a的值 注意:input()返回的值是str字符型的,另外如果你Python学的比较菜,可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面很多新教程项目 如果要让输入

python中raw_input() 与 input()

参考网址:http://www.cnblogs.com/way_testlife/archive/2011/03/29/1999283.html 在python中如何接收一个输入的字符串. 举个例子: #coding=utf-8 #测试input 和 raw_input x = input("please input :") print x 运行:python 23.py 输入一个数字 please input :9 9 输入一个字符串 please input :aaa Traceb

python中的input,print

此用例在python3.3.5中测试通过: 输入:在python中输入是使用input,下面示例代码表示把输入的值存入变量s中,并输入s 在这里提醒一下:使用input获取的值都是string类型 输出:输出s有两种方式,第一种方式就是直接在屏幕中输入s,然后回车(上图).第二种输出方式就是使用print(s) 格式化:使用format(value,m.nf),其中value指需要格式化的原值,m代表输出数据的总长度,n代表保存的小数点个数,f代表是以浮点型的数据输出. python对数据进行了

python中的input()和raw_input()

首先,追过美剧的都知道 '生肉' (无字幕)和 '熟肉'(有字幕) 的说法,这里的 '生肉' 其实就来自 raw这个单词,raw本身就是「未经加工的,生的」这种意思. python 2.x 中: raw_input() 和 input() 这两个内建函数都可以读取用户的输入来实现交互的目的,但二者存在差别. raw_input(): 顾名思义,不管用户输入的是字符还是数字,它都力求 '原样' 输出,因此对于用户输入的对象,该函数以字符串的形式保存下来. 何谓 '原样' 输出,想一下print语句

python中raw_input()与input()

raw_input([prompt]) input([prompt]) # prompt:如果参数存在,直接输出到屏幕上,不会再另起一行 raw_input 如其字面意思一样,返回输入字符的字符串形式,不做任何变换运算 input 本质上是使用raw_input()来实现的,即调用完raw_input()之后再调用eval()函数,调用如下: def input(prompt): return (eval(raw_input(prompt))) eg. 输入纯数字字符串,返回数字类型:对合法的

python中difflib内置模块之文本对比

什么是difflib? 用来做什么?difflib为python的标准库模块,无需安装.作用时对比文本之间的差异.并且支持输出可读性比较强的HTML文档,与Linux下的diff 命令相似.在版本控制方面非常有用. 符号理解符号 含义'-' 包含在第一个系列行中,但不包含第二个.'+' 包含在第二个系列行中,但不包含第一个.' ' 两个系列行一致'?' 存在增量差异'^' 存在差异字符 import difflib text1 = ''' 1. Beautiful is better than

Python中简化的验证码功能实现

1 #!/usr/bin/env python 2 # _*_ encoding:utf-8 _*_ 3 # author:snate 4 import random 5 def generate_auth_code(): 6 auth_code_list =[] 7 for i in range(6): # 要生成几个验证码循环几次 8 num = random.randint(0,5) # 随机生成0到5之间的数字 9 if num ==1 or num == 4: # 若生成的数字为1,4

python中raw_input输入数字问题

如果按照下面方式,则无论你输入什么,都会打印12,因为raw_input接受的输入是按照字符串处理的 num = raw_input('please enter a num:') if num > 10: print 12 else: print  -abs(int(num)) 需要改成下面的写法就OK了: num = raw_input('please enter a num:') if int(num) > 10: print 12 else: print  -abs(int(num))

Python 中一些代码的功能2

name="i have a beautiful flower" print(name.capitalize())#使name中的首字母大写 print(name.count("a"))#统计name中a的个数 print(name.center(30,"-"))#使name中的字符数一共为30个字符,不够的用-填充 print(name.endswith("flower"))#判断字符串是否以flower结尾,可用来判断邮件