input函數 input()是從控制台獲取用戶輸入的信息,不論用戶輸入的是什麼,input()都會返回字元串類型。 <變數> = input(<提示性文字>) a = input("請輸入你的年齡:") print(type(a)) Run and output! 請輸入你的年齡:25 <clas ...
input函數
input()是從控制台獲取用戶輸入的信息,不論用戶輸入的是什麼,input()都會返回字元串類型。 <變數> = input(<提示性文字>)
a = input("請輸入你的年齡:")
print(type(a))
Run and output!
請輸入你的年齡:25
<class 'str'>
我們看到當我們運行代碼時,我們輸入的是數字,但是返回的數據類型是字元串。這點要註意哦!
eval函數
eval()可以將字元串類型轉化成python對象。具體我們看下麵的例子
print(eval("25"))
print(type(eval("25")))
Run and output!
25
<class 'int'>
可見eval將字元串轉化為python中的整型數據類型。eval實際上能將字元串轉化為任意的python對象,如變數名、函數名等。我們繼續看幾個例子
轉化為變數名
eval將字元串轉化為python里的變數
sentence = 'python is very easy to learn!'
eval('sentence')
Run and output!
'python is very easy to learn!'
#### 轉化為函數名
def hello():
print('hello world!')
eval('hello')
Run and output!
<function __main__.hello()>
不要奇怪哦,因為上面的eval('hello')等同於hello,但是我們調用函數時候一定要加上括弧。
eval('hello')()
Run and output!
hello world!
input與eval
實際上eval()與input()很像一對情侶,在python世界中形影不離。input用來獲取用戶輸入的數據,而eval將輸入的數據轉化成python對象。
a = input('請輸入一個列表:')
print(type(a))
print(type(eval(a)))
Run and output!
請輸入一個列表:[1,2,3,4]
<class 'str'>
<class 'list'>
從圖中我們看到,我們輸入的列表經過input函數變成了字元串。為了在python程式中繼續使用a的列表特性,我們必須使用eval將再轉化為python列表對象。同理eval還可以將字元串轉化為字典、元組、集合等python對象,這裡就不一一做講解了。