22.python 內置函數input/eval

  • 2020 年 3 月 12 日
  • 筆記

22.python 內置函數input/eval

最後更新於:2019-10-27 09:28:54

python的內置函數其實挺多的,其中input和eval算得上比較特殊,input屬於互動式內置函數,eval函數能直接執行字元串表達式並返回表達式的值.

一.input函數

input是Python的內置函數也是互動式函數,何為互動式函數?互動式程式是指程式可以接用戶交互。

可能以前的程式碼,部分童鞋可能會覺得有些死板,變數聲明和定義都已經提前準備好了,可能老司機會說你不運行程式我也知道輸出的結果是什麼。

input()函數能接收用戶輸入的內容,並返回字元串str類型,示例程式碼如下:

Python

while True: a = input("請輸入:") print("輸入的內容是:{} 類型是:{}".format(a,type(a)))

123

while True:    a = input("請輸入:")    print("輸入的內容是:{} 類型是:{}".format(a,type(a)))

大家現在都知道AI已經是大勢所趨,未來的十年屬於AI,那麼今天我要告訴你價值一個億的AI核心程式碼:(沙雕機器人1.0版本)

Python

while True: ''' replace("?","!") 將字元串中英文狀態下的問號 ?替換為 感嘆號 ! replace("?","!")將字元串中中文狀態下的問號 ?替換為 感嘆號 ! replace("嗎","") 將字元串中的中文 "嗎" 替換為 "" ''' print(input("").replace("?","!").replace("?","!").replace("嗎",""))

1234567

while True:    '''    replace("?","!") 將字元串中英文狀態下的問號 ?替換為 感嘆號 !     replace("?","!")將字元串中中文狀態下的問號 ?替換為 感嘆號 !    replace("嗎","") 將字元串中的中文 "嗎" 替換為 ""    '''    print(input("").replace("?","!").replace("?","!").replace("嗎",""))

測試結果:

Python

在嗎? 在! 你好 你好 是python教程嗎? 是python教程! 看完教程就能學會編程嗎? 看完教程就能學會編程! python能生孩子嗎 python能生孩子

12345678910

在嗎?在!你好你好是python教程嗎?是python教程!看完教程就能學會編程嗎?看完教程就能學會編程!python能生孩子嗎python能生孩子

二.eval函數

在以前的文章中我們也曾經使用過eval,將字元串轉為eval 內置函數eval()除了這個功能還能直接執行字元串表達式,並返回表達式的結果,示例程式碼如下:

Python

a = eval("3+2.5") print("a={} ,a的類型是{}".format(a,type(a))) a = eval("3+2") print("a={} ,a的類型是{}".format(a,type(a))) b = 33 a = eval("b/2") print("a={} ,a的類型是{}".format(a,type(a)))

123456789

a = eval("3+2.5")print("a={} ,a的類型是{}".format(a,type(a))) a = eval("3+2")print("a={} ,a的類型是{}".format(a,type(a))) b = 33a = eval("b/2")print("a={} ,a的類型是{}".format(a,type(a)))

輸出結果:

Python

a=5.5 ,a的類型是<class 'float'> a=5 ,a的類型是<class 'int'> a=16.5 ,a的類型是<class 'float'>

123

a=5.5 ,a的類型是<class 'float'>a=5 ,a的類型是<class 'int'>a=16.5 ,a的類型是<class 'float'>

三.input函數和eval函數配合使用

input函數和eval函數配合使用完成一個無介面的計算器:

Python

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解憂 @Blog(個人部落格地址): shuopython.com @WeChat Official Account(微信公眾號):猿說python @Github:www.github.com @File:python_input_eval.py @Time:2019/10/6 21:48 @Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累! """ while True: result = eval(input("請輸入表達式:")) print("結果:",result)

1234567891011121314151617

# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:何以解憂@Blog(個人部落格地址): shuopython.com@WeChat Official Account(微信公眾號):猿說python@Github:www.github.com @File:python_input_eval.py@Time:2019/10/6 21:48 @Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!""" while True:    result = eval(input("請輸入表達式:"))    print("結果:",result)

輸出結果:

Python

請輸入表達式:3+2-6 結果: -1 請輸入表達式:55*25 結果: 1375 請輸入表達式:89/7 結果: 12.714285714285714 請輸入表達式:

1234567

請輸入表達式:3+2-6結果: -1請輸入表達式:55*25結果: 1375請輸入表達式:89/7結果: 12.714285714285714請輸入表達式:

四.重點總結

1.注意input函數的返回值是字元串str類型,如果需要int或者list類型可以通過轉換完成

2.eval是一個很強大的內置函數,除了以上功能,eval還能直接刪除系統文件,這裡不做過多講解,注意eval不要濫用。

Exit mobile version