亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python學習筆記整理3之輸入輸出、python eval函數

2020-01-04 17:54:37
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python學習筆記整理3之輸入輸出、python eval函數的相關資料,需要的朋友可以參考下
 

1. python中的變量:

python中的變量聲明不需要像C++、Java那樣指定變量數據類型(int、float等),因為python會自動地根據賦給變量的值確定其類型。如 radius = 20,area = radius * radius * 3.14159 ,python會自動的將radius看成“整型”,area看成“浮點型”。所以編程時不用再像之前那樣小心翼翼的查看數據類型有沒有出錯,挺人性化的。

2. input和print:

先貼個小的程序

# Prompt the user to enter three numbersnumber1 = eval(input("Enter the first number: "))number2 = eval(input("Enter the second number: "))number3 = eval(input("Enter the third number: "))# Compute averageaverage = (number1 + number2 + /      number3) / 3#Display resultprint("The average of ", number1, number2, number3,   "is", average)

小程序中的幾個知識點:

1)print的格式,print(itme1, item2, ..., itemk),如果print的內容過長,可以直接換行;
2)'/'符號,它是用來連接兩個行的,如果一行內容過長可以用該符號來分割;
3)input(" "),獲得輸入數據,要注意的是,python2.x版本中有兩個輸入函數input()和raw_input(),input()輸入實數時,它的值就是實數;而raw_input()不管輸入的是什么,它的值都是string,所以需要用eval()函數將值轉換為實數,eval()下面再深入學習;而在python3.x版本中只有一個輸入函數input(),它的功能就相當于python2.x中的raw_input()函數,所以編程時要特別注意版本問題,像這樣的差異還有許多。我的程序是在python3.2下解釋的,如果在python2.x下,可以去掉eval()或者將input改成raw_input,結果一樣。

3. eval()函數

上面的小程序中用到了eval()函數,功能是將string變成算術表達式來執行,比如eval("1+2")的結果是3。那么是不是它的功能就局限于此呢?
在這個基礎上,我查了python官方文檔關于eval函數的定義和解釋。官網python3.4.1文檔中關于eval的定義如下:
eval(expression, globals=None, locals=None)  --- 官方文檔中的解釋是,globals和locals參數是可選的,如果提供了globals參數,那么它必須是dictionary類型;如果提供了locals參數,那么它可以是任意的map對象。

在繼續往下之前,要先補充一點關于python命名空間的知識(引用自http://blog.sina.com.cn/s/blog_64668ff00100od2b.html),python是用命名空間來記錄變量的軌跡的,命名空間是一個dictionary,鍵是變量名,值是變量值。

在一個 Python 程序中的任何一個地方,都存在幾個可用的名字空間。每個函數都有著自已的名字空間,叫做局部名字空間,它記錄了函數的變量,包括函數的參數和局部定義的變 量。每個模塊擁有它自已的名字空間,叫做全局名字空間,它記錄了模塊的變量,包括函數、類、其它導入的模塊、模塊級的變量和常量。還有就是內置名字空間, 任何模塊均可訪問它,它存放著內置的函數和異常。

當一行代碼要使用變量 x 的值時,Python 會到所有可用的名字空間去查找變量,按照如下順序:

1)局部名字空間 - 特指當前函數或類的方法。如果函數定義了一個局部變量 x, 或一個參數 x,Python 將使用它,然后停止搜索。

2)全局名字空間 - 特指當前的模塊。如果模塊定義了一個名為 x 的變量,函數或類,Python 將使用它然后停止搜索。

3)內置名字空間 - 對每個模塊都是全局的。作為最后的嘗試,Python 將假設 x 是內置函數或變量。

其實這并不難理解,說白了,就是c++中全局變量和局部變量的意思。比如你在一個函數中用了num這個變量,它首先會查找函數里,也就是局部名字空間是否有這個變量名;如果找不到,就會到函數外也就是全局名字空間中繼續查找;如果再找不到,就會查找內置關鍵字;如果都找不到,那么就只有報NameError了。

理解了這一點,就比較容易了。python的全局名字空間存儲在一個叫globals()的dict對象中;局部名字空間存儲在一個叫locals()的dict對象中。我們可以用print (locals())來查看該函數體內的所有變量名和變量值。繼續eval()函數...

1)當后兩個參數都為空時,很好理解,就是一個string類型的算術表達式,計算出結果即可。等價于eval(expression)。

2)當locals參數為空,globals參數不為空時,先查找globals參數中是否存在變量,并計算。

3)當兩個參數都不為空時,先查找locals參數,再查找globals參數。

舉一個小例子:

#test eval() and locals()x = 1y = 1num1 = eval("x+y")print (num1)def g():   x = 2   y = 2   num3 = eval("x+y")  print (num3)    num2 = eval("x+y",globals())   # num2 = eval("x+y",globals(),locals())  print (num2)g()

num1的值不用說,是2;num3的值也很好理解,是4;num2的值呢?由于提供了globals()參數,那么首先應當找全局的x和y值,也就是都為1,那么顯而易見,num2的值也是2。如果注釋掉該句,執行下面一句呢?根據第3)點可知,結果為4。(PS:我的運行環境是python3.2)當然,也可以顯式的定義dict對象作為eval()的參數,規則是一樣的。

補充一下:locals()對象的值不能修改,globals()對象的值可以修改,寫一個小程序測試一下。

#test globals() and locals()z=0def f(): z = 1  print (locals())    locals()["z"] = 2  print (locals())  f() globals()["z"] = 2print (z)

可以得出,兩個print (locals())的結果是一樣的,說明沒有修改成功。而print (z)的值是2,說明修改成功了。另外,貌似locals()可以添加變量,感興趣的可以試一下。

以上內容是小編給大家分享的Python學習筆記整理3之輸入輸出、python eval函數的全部敘述,希望大家喜歡。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日本在线视频中文字字幕| 狠狠综合久久av一区二区小说| 成人黄色在线观看| 亚洲福利在线观看| 中文字幕亚洲一区二区三区五十路| www.日韩视频| 一区二区在线视频播放| 欧美性猛交xxxx乱大交| 黄网站色欧美视频| 欧美日韩国产成人在线| 91精品国产自产在线观看永久| 久久深夜福利免费观看| 69视频在线免费观看| 最近2019年日本中文免费字幕| 中文字幕少妇一区二区三区| 欧美大片大片在线播放| 91国产视频在线| 亚洲成人教育av| 亚洲国产精品人人爽夜夜爽| 岛国av在线不卡| 亚洲天堂免费在线| 一区二区欧美激情| 久久久久久噜噜噜久久久精品| 久久天天躁狠狠躁夜夜爽蜜月| 欧日韩在线观看| 国产精品你懂得| 97**国产露脸精品国产| 国产成人亚洲精品| 51精品国产黑色丝袜高跟鞋| 亚洲成人精品久久| 一区二区三区四区精品| 国产精品丝袜一区二区三区| 日韩美女福利视频| 国产自产女人91一区在线观看| 国产精品成av人在线视午夜片| 日韩精品视频在线| 成人午夜在线观看| 狠狠躁夜夜躁人人躁婷婷91| 中文字幕一区日韩电影| 亚洲欧洲中文天堂| 亚洲自拍偷拍色片视频| 欧美成年人视频网站| 国产精品一区二区三区久久| 国产亚洲精品高潮| 日韩av大片免费看| 欧美午夜电影在线| 欧美成人高清视频| 国产91精品不卡视频| 国产日韩换脸av一区在线观看| 狠狠色狠狠色综合日日小说| 成人综合国产精品| 国产欧美一区二区三区在线| 欧美另类69精品久久久久9999| 日韩av在线网页| 久久久久www| 日本精品视频在线| 在线观看精品国产视频| 精品国产美女在线| 精品成人69xx.xyz| 亚洲人成电影网| 91九色国产社区在线观看| 不用播放器成人网| 国产精品极品美女粉嫩高清在线| 精品久久久国产| 成人午夜在线观看| 日韩av影片在线观看| 九九九久久久久久| 亚洲成人网在线观看| 精品国产乱码久久久久久虫虫漫画| 深夜福利亚洲导航| 国产亚洲精品久久久久久| 欧美又大粗又爽又黄大片视频| 97视频在线播放| 这里只有精品丝袜| 欧美亚洲成人xxx| 日本午夜在线亚洲.国产| 日韩激情视频在线播放| 欧美日韩成人在线播放| 国产乱肥老妇国产一区二| 日韩欧美在线视频免费观看| 国产精品久久久久9999| 日韩av男人的天堂| 色多多国产成人永久免费网站| 韩国三级电影久久久久久| 91极品视频在线| 亚洲欧美一区二区三区四区| 亚洲欧美国产va在线影院| 欧美美最猛性xxxxxx| 久久人体大胆视频| 欧美日韩在线观看视频| 狠狠干狠狠久久| 国产剧情久久久久久| 日韩视频在线观看免费| 91久久久久久久久| 久久中文字幕国产| 国产精品观看在线亚洲人成网| 国产精品麻豆va在线播放| 国产精品久久久久久久久影视| www.欧美三级电影.com| 亚洲成色777777女色窝| 久久噜噜噜精品国产亚洲综合| 亚洲男人av在线| 欧美精品免费看| 精品欧美aⅴ在线网站| 国产91成人在在线播放| 久久精品国产99国产精品澳门| 亚洲精品国产精品自产a区红杏吧| 国产欧美日韩综合精品| 欧美第一黄网免费网站| 成人免费视频在线观看超级碰| 45www国产精品网站| 久久亚洲精品网站| 精品动漫一区二区三区| 日本精品一区二区三区在线| 亚洲午夜女主播在线直播| 777777777亚洲妇女| 亚洲免费一级电影| 亚洲色图在线观看| 伊人青青综合网站| 成人a免费视频| 国内伊人久久久久久网站视频| 欧美午夜美女看片| 亚洲一区二区三区乱码aⅴ| 国产精品va在线播放我和闺蜜| 久久久视频在线| 国产91久久婷婷一区二区| 456亚洲影院| 91高清视频免费观看| 在线看福利67194| 国产成人精品一区二区在线| 国产成人97精品免费看片| 欧美日本高清一区| 91禁国产网站| 欧美视频免费在线观看| 91免费的视频在线播放| 91精品国产99| 国产精品极品美女在线观看免费| 欧美黑人一级爽快片淫片高清| 91精品啪在线观看麻豆免费| 国产91久久婷婷一区二区| 国产日韩专区在线| 亚洲视频777| 91成人国产在线观看| 欧美亚洲一级片| 久久99青青精品免费观看| 国产一区二区三区在线| 日韩av电影手机在线| 国产性猛交xxxx免费看久久| 中文字幕欧美视频在线| 久久人人爽国产| 国产精品久久久久久久久免费看| 国产在线精品一区免费香蕉| 91豆花精品一区| 国产成人拍精品视频午夜网站| 国产美女久久精品| 黄色91在线观看| 欧美日韩中文在线| 精品色蜜蜜精品视频在线观看| 日韩精品极品在线观看| 欧美理论电影在线播放| 97久久精品人人澡人人爽缅北| 国产精品com| 国产精品美女免费看| 亚洲美女性生活视频|