1. 程式人生 > >Py與Py3的區別之輸入input()函數

Py與Py3的區別之輸入input()函數

png 用戶 不同 mage intel 都是 img cred copy

  • Python 2.7中,一般是使用的input()比較常規些,可是也可以使用raw_input();他們仍有以下不同之處

C:\Windows\system32>python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (
Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> s=input("請輸入:")
請輸入:saa
Traceback (most recent call last):
  File 
"<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name saa is not defined

>>> s=input("請輸入:")

請輸入:‘asxs‘

>>> s
‘asxs‘

  當我使用raw_input()函數時:

>>> s=raw_input("input something:")
input something:哈哈
>>> s
\xb9\xfe\xb9\xfe >>> s=raw_input("input something:") input something:axsx >>> s axsx

 >>> s=raw_input("input something:")
 input something:0
 >>> s
 ‘0‘
>>> type(s)
<type ‘str‘>

  對於Python2.7 raw_input()函數,對於任何輸入,raw_input()函數都會把它完全當做字符串來處理

  但是使用input()

輸入一些數字、列表、元組等類型數據是不會報錯的

>>> s=input("input something:")
input something:1234556
>>> s
1234556
>>> type(s)
<type int>
>>> s=input("input something:")
input something:(1,2,a,999)
>>> s
(1, 2, a, 999)
>>> type(s)
<type tuple>
>>> s=input("input something:")
input something:[1,2,[12,2],42,(2,2,a)]
>>> s
[1, 2, [12, 2], 42, (2, 2, a)]
>>> type(s)
<type list>

  • 然而在Python3中,甚至都沒有raw_input()這個函數

  技術分享圖片

  不過Python3支持input()函數的使用,但是,它又能直接接受一串字符:

>>> s=input("input something:")
input something:aaaaa
>>> s
‘aaaaa‘
>>> s=input("input something:")
input something:(12,23,‘a‘)
>>> s
"(12,23,‘a‘)"
>>> type(s)
<class ‘str‘>
>>> s=input("input something:")
input something:123
>>> s
‘123‘
>>> type(s)
<class ‘str‘>
>>> s=input("input something:")
input something:‘asx‘
>>> s
"‘asx‘"
>>> s=input("input something:")
input something:"wsacvd12324qaa"
>>> s
‘"wsacvd12324qaa"‘

  可以看到,對於任何輸入,Python3的input()函數都會把它完全當做字符串來處理


  總結一波,Python2raw_input()函數和Python3input()函數的功能幾乎等同,它對會把用戶的輸入當做一整個字符串的內容來處理,輸出的類型也都是str字符串類型;

  Python3不支持 raw_input()函數;

  Python2input()簡直是神一般的存在,十分智能化地識別用戶輸入的內容並給予相應的類型,單數輸入字符串時候需要給字符串增添上 ‘xxx‘ "xxx" 引號。

  以上

Py與Py3的區別之輸入input()函數