如今來探討一下Python2中的input()、raw_input()函數和Pyhont3中的input()函數:python
Python2中的raw_input()函數,咱們知道input()、raw_input()都是讓用戶輸入的函數:函數
input()函數:優化
首先,咱們先輸入數字:code
>>> a = input("Please input your favorite number: ") Please input your favorite number: 5 >>> a 5
從中能夠看出,當咱們輸入數字的時候,input()函數直接接受了5,並把這個用戶輸入的數字賦給了a,是以數字形式的。字符串
接下來,咱們以字符形式輸入:input
>>> a = input("Please input your name: ") Please input your name: virgin Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'virgin' is not defined
從結果能夠看出,提示咱們輸入的名字沒有定義,報錯了,說明不能以字符形式直接沒有引號的狀況下進行輸入;string
咱們驗證當咱們以引號的方式輸入字符串的時候,這個時候沒有提示咱們錯誤,由此能夠看出,是沒有問題的it
>>> a = input("Please input your name: ") Please input your name: "Virgin" >>> a 'Virgin'
從中能夠看出,其實Python2.x中,input()函數讓咱們明確咱們輸入的是數字格式仍是字符格式,就是咱們本身要知道咱們想要的是什麼,數字格式直接輸入,字符格式必須加上單引號或者雙引號,以肯定咱們輸入的是字符串。ast
raw_input()函數:class
>>> a = raw_input("Please input your name: ") Please input your name: Virgin >>> a 'Virgin' >>> a = raw_input("Please input your favorite number: ") Please input your favorite number: 10 >>> a '10'
第一次咱們輸入的是字符串,並且沒有加引號,正常把Virgin賦給了變量a;第二次輸入的是數字10,可是輸出的時候,a是字符格式的'10',這個時候系統將咱們輸入的數字默認爲了文本,因此能夠看出,raw_input()函數不管用戶輸入什麼,都默認爲字符格式;而input()函數在Python2.x中,是要用戶肯定本身輸入的是什麼,用戶要本身清楚明白本身操控的是什麼。
Python3中的input()函數:
咱們知道,在Python3中是沒有raw_input()函數的,只有input()函數,由於Python3是就好了優化整合:
input()函數
>>> a = input("Please input your favoriete number: ") Please input your favoriete number: 10 >>> a '10' >>> b = input("Please input your name: ") Please input your name: Virgin >>> b 'Virgin'
第一次咱們輸入的是數字,此時,input()是將數字10看成文本賦給了變量a,第二次,咱們把文本賦給了變量b,輸出結果仍是文本,這與Python2中的raw_input()是同樣的,因此,在Python3中是將Python2中的input()刪除了,把raw_input()的名稱改爲了input()函數,這樣在咱們使用數字的時候就須要本身來進行轉換了,因此咱們在讓用戶輸入數字的時候切記進行轉換,若是咱們要使用數字的。