Python用作計算器(50)*

看完大大的解答才知道原來我寫的計算器太“死”了,只能實現(xiàn)固定的程序,如果需要改數(shù)據(jù),得重新編程,這是一件非常麻煩的事情。所以大大的高配版計算器是能手動輸入算式的,甚至可以不用每次點執(zhí)行,實現(xiàn)循環(huán)輸入。

python大大的圖

圖片發(fā)自簡書App
圖片發(fā)自簡書App

我的圖

圖片發(fā)自簡書App

這么寫雖然能實現(xiàn)自定義輸入,但是每一次輸入前都要點執(zhí)行。這里出了兩個比較生的函數(shù)raw_input()和eval()

關(guān)于input()和raw_input()的區(qū)別可以參考http://www.cnblogs.com/way_testlife/archive/2011/03/29/1999283.html

自己輸一下代碼就能理解它們的差別了

圖片發(fā)自簡書App
圖片發(fā)自簡書App

input() 本質(zhì)上還是使用 raw_input() 來實現(xiàn)的,除非對 input() 有特別需要,否則一般情況下我們都是推薦使用 raw_input() 來與用戶交互。

eval()是一個很神奇的函數(shù),它可以把字符串str當成有效的表達式來求值并返回計算結(jié)果。而且它可以把字符串轉(zhuǎn)化為列表、字典或者元組。網(wǎng)上有很多解析都寫得非常詳細。在這里的用法就相當于做加減乘除那些運算。

https://www.cnblogs.com/liu-shuai/

http://blog.csdn.net/qq_29883591/article/details/53443062

這么寫是很麻煩的,每一個算式都要點執(zhí)行。于是大大又給出了一種更高端的寫法

圖片發(fā)自簡書App

這里的邏輯在這里。用一個無限的循環(huán)把接收輸入的語句“困”起來,然后就可以不停的來接收我們輸入,然后輸出計算結(jié)果了。以while 1打頭的循環(huán)將不斷運行,直到遇到break語句,這個程序中的循環(huán)不斷輸入算式,直到用戶輸入0為止。用戶輸入0后將執(zhí)行break語句,導致python跳出循環(huán)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容