Python2.x 和 Python3.x 中 raw_input( ) 和 input( )

解决办法非常的简单,只需要用上python的bytes和str两种类型转换的函数encode()、decode()即可!
str通过encode()方法可以编码为指定的bytes;
反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法;

1、在 Python2.x 中 raw_input( ) 和 input( ),两个函数都存在,其中区别为:

  raw_input( ) 将所有输入作为字符串看待,返回字符串类型。
  input( ) 只能接收"数字"的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。


2、在 Python3.x 中 raw_input( ) 和 input( ) 进行了整合,去除了 raw_input( ),仅保留了 input( ) 函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

例如:

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 "help", "copyright", "credits" or "license" for more information.
>>> user=raw_input("please input:")       
please input:wei                          #  raw_input 输入  字符串  成功
>>> user
'wei'
>>> user=input("please input:")          
please input:123                          #  input 输入  数字  成功(返回的是数字)
>>> user
123
>>> user=raw_input("please input:")
please input:111               #  raw_input 输入  数字  成功(返回的还是当成字符串)
>>> user
'111'
>>> user=input("please input:")
please input:wei                          #  input  输入字符串   失败
Traceback (most recent call last):
  File "", line 1, in ?
  File "", line 0, in ?
NameError: name 'wei' is not defined
在 Python 3.2.3 中 input 和 raw_input 整合了,没有了 raw_input:

Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> user=raw_input("please input:")                 #没有了raw_input
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'raw_input' is not defined
>>> user=input("please input:")
please input:wei
>>> user
'wei'
>>> user=input("please input:")                     #input的输出结果都是作为字符串
please input:123
>>> user
'123'

你可能感兴趣的:(Python2.x 和 Python3.x 中 raw_input( ) 和 input( ))