Python中的變量,參數(shù)和模塊介紹
前言
簡(jiǎn)單的使用python函數(shù)之后,我們?cè)谌粘i_發(fā)中還需要經(jīng)常使用的三個(gè)地方,分別是變量、參數(shù)和模塊。其中,Python的變量類型已經(jīng)在語(yǔ)法介紹中做了簡(jiǎn)單的使用描述。在本篇文章中,會(huì)更加強(qiáng)調(diào)變量的作用域,并分別介紹參數(shù)和模塊的使用。
1 變量
首先,在python中,變量是存儲(chǔ)在內(nèi)存的值,程序在執(zhí)行創(chuàng)建變量時(shí)會(huì)在內(nèi)存中創(chuàng)建一個(gè)空間,并且根據(jù)變量的數(shù)據(jù)類型,python解析器會(huì)分配指定內(nèi)存。變量標(biāo)記或者指向一個(gè)值。
示例如下:與劇中的 color 就是一個(gè)變量名,指向字符串 blue, 代碼 color = "blue" 被 = 賦值給了變量。= 號(hào)被稱為賦值運(yùn)算符,作用是讓變量指向一個(gè)值。遇到變量時(shí),Python 將其替換為指向的值,也可以同時(shí)為多個(gè)變量賦值。
>>> color = "blue" >>> color 'blue' >>> count = 5 >>> 100 * count 500 >>> a,b,c = "hello",888,666 >>> a 'hello' >>> b 888 >>> c 666
變量的使用比較簡(jiǎn)單,同時(shí)也需要遵守以下幾個(gè)命名規(guī)則:
1. 變量名的第一個(gè)字符不能是數(shù)字,而 必須是字母或下劃線;
2. 不能將 Python 關(guān)鍵字用作變量名。例 如,if、else、while、def、or、and、 not、in 和 is 都是 Python 關(guān)鍵字;
3. 變量名的長(zhǎng)度不受限制,但其中的字符必須是字母、數(shù)字或下劃線,而不能使用空格、連字符、標(biāo)點(diǎn)符號(hào)、引號(hào)或其他字符;
4. Python 區(qū)分大小寫,因此 A、B 和 a、b 是截然不同的變量名。
舉一個(gè)錯(cuò)誤的示例:
>>> While = "nihao" >>> While 'nihao'
當(dāng)然,既然區(qū)分大小寫,我們可以將小寫的 w 改成大寫的 W,這樣就可以使用變量名了,但一般不建議這么使用。
聯(lián)系到上次所闡述的函數(shù),它對(duì)于變量所帶來(lái)的一個(gè)問(wèn)題是:作用域。所謂作用域就是指該變量在程序的哪些地方可以訪問(wèn)或者可操作,一般分為局部變量和全局變量。對(duì)比下面兩個(gè)函數(shù):
import math def example1(x, y, a, b): s = (x - a) ** 2 + (y - b) ** 2 return math.sqrt(s) def example2(x, y, a, b): w = abs(x - a) h = abs(y - b) return w * h
?全局變量 color 的值并沒(méi)有變,依然是 'blue'。問(wèn)題在于Python 將函數(shù) my_color中的變量 color視為局部變量,因此修改的并非全局變量color。這時(shí)候,就必須使用關(guān)鍵字global,對(duì)上面的代碼稍作修改,如下:這樣就把my_color() 的變量應(yīng)用到了what_color()函數(shù)中去。
2 參數(shù)
在python編程中,參數(shù)的作用主要是向函數(shù)傳遞數(shù)據(jù),且支持多種參數(shù)。當(dāng)傳遞參數(shù)時(shí),python一般使用按引用傳遞方式。就是我們?cè)趥鬟f參數(shù)時(shí),函數(shù)會(huì)使用新變量來(lái)調(diào)用原始值??聪旅娴拇a:
將 i 和 j 分別設(shè)置為10.9和3.7后的內(nèi)存狀態(tài) 剛調(diào)用 count(x,y) 后的內(nèi)存狀態(tài):x 和 y 分別指向 i 和 j 指向的值
當(dāng)調(diào)用 count(i,j) 時(shí),Python 創(chuàng)建兩個(gè)新變量——x和y,它們分別指向 i 和 j 的值,如上圖示。按排列順序進(jìn)行賦值, 因此x指向 i,因?yàn)閕是第一個(gè)實(shí)參。沒(méi)有復(fù)制實(shí)參的值,而只是給它們指定新名稱,而函數(shù)將使用這些新名稱來(lái)引用它們。
再看一個(gè)典型的示例,有些情況參數(shù)不會(huì)被函數(shù)所傳遞。該函數(shù)準(zhǔn)備把所有傳入的變量的返回值都固定為100,但實(shí)際運(yùn)行j的值并沒(méi)有任何改變。
>>> def get(i):i = 100 ... >>> j = 12 >>> get(j) >>> j 12
以上代碼可以分以下幾步執(zhí)行:
1.將12賦值給j;
2.調(diào)用函數(shù)get(j),將j的值 賦值給i,i和j的值都會(huì)指向100;
3.將100賦值給i;
4.最后,函數(shù)結(jié)束后,i被刪掉,可以發(fā)現(xiàn)在函數(shù)中并沒(méi)有訪問(wèn)變量j。
在Python使用中我們也會(huì)使用關(guān)鍵字參數(shù),主要是對(duì)輸出起到固定的拼接作用,其存在兩個(gè)特點(diǎn):
1. 清晰地指出了參數(shù)值,有助于提高程序的可讀性;
2. 關(guān)鍵字參數(shù)的順序無(wú)關(guān)緊要 。
3 模塊
在Python中,模塊就是指系列的對(duì)函數(shù)和變量得使用。其組成就是函數(shù)、變量。如果使用Python解釋器運(yùn)行,進(jìn)入退出后,你會(huì)發(fā)現(xiàn)定義的所有變量和函數(shù)都消失了,所以就有了python模塊的由來(lái)。首先,創(chuàng)建模塊需要?jiǎng)?chuàng)建一個(gè)*.py文件,在這個(gè)文件中需要包含用于完成任務(wù)的函數(shù)。例如之前的示例:求輸入不同半徑的圓的面積。
import math def round_area(x): return math.pi * x ** 2 if __name__ == "__main__": x = int(input()) area = round_area(x) print("半徑為" + str(x) +"cm的圓的面積為:"+ str(area))
模塊與常規(guī) Python 程序之間唯一的差別 是用途不同:模塊是一個(gè)由函數(shù)組成的工具 箱,用于編寫其他程序。因此,模塊通常沒(méi)有 main() 函數(shù)。 此處不好編寫模塊函數(shù)示例,舉一個(gè)python自帶模塊,math模塊。
>>> math.exp(9) 8103.083927575384
?對(duì)于自定義模塊的編寫,我們還需要注意其命名空間-一組獨(dú)特的變量名和函數(shù)名,這個(gè)在我們調(diào)用模塊包是會(huì)經(jīng)常用到,就用jupyter舉個(gè)簡(jiǎn)單的示例:第一行是引用整個(gè)math模塊,第二行僅僅表示使用math模塊中的sqrt函數(shù)。
import math 引用python標(biāo)準(zhǔn)庫(kù)的math.py模塊,math.exp()是一個(gè)包含參數(shù)9的函數(shù)。Python中的模塊搜索路徑就是:當(dāng)Python解釋器遇到import關(guān)鍵字時(shí),就會(huì)先進(jìn)行搜索所有目錄列表,如下:
#!/usr/bin/python #file_name:test.py def print_func( name): print ("Hello : ", name) return
#!/usr/bin/python # Filename: train.py # 導(dǎo)入模塊 import test # 現(xiàn)在可以調(diào)用模塊里包含的函數(shù)了 test.print_func("kaka")
到此這篇關(guān)于Python中的變量,參數(shù)和模塊介紹的文章就介紹到這了,更多相關(guān)Python變量 參數(shù)和模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo)
這篇文章主要介紹了使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Windows10+anacond+GPU+pytorch安裝詳細(xì)過(guò)程
這篇文章主要介紹了Windows10+anacond+GPU+pytorch安裝詳細(xì)過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03基于Python實(shí)現(xiàn)溫度轉(zhuǎn)換程序
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)簡(jiǎn)單的溫度轉(zhuǎn)換程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警(實(shí)例代碼)
Skywalking可以對(duì)鏈路追蹤到數(shù)據(jù)進(jìn)行告警規(guī)則配置,例如響應(yīng)時(shí)間、響應(yīng)百分比等。發(fā)送警告通過(guò)調(diào)用webhook接口完成。webhook接口用戶可以自定義。本文給大家介紹python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警,感興趣的朋友跟隨小編一起看看吧2021-12-12解決Python下json.loads()中文字符出錯(cuò)的問(wèn)題
今天小編就為大家分享一篇解決Python下json.loads()中文字符出錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python實(shí)現(xiàn)命令行通訊錄實(shí)例教程
這篇文章主要介紹怎樣編寫了一段命令行通訊錄的小程序。下面是編寫的思路以及代碼,歡迎感興趣的同學(xué)交流探討。2016-08-08Python批量創(chuàng)建迅雷任務(wù)及創(chuàng)建多個(gè)文件
其實(shí)不是真的創(chuàng)建了批量任務(wù),而是用python創(chuàng)建一個(gè)文本文件,每行一個(gè)要下載的鏈接,然后打開迅雷,復(fù)制文本文件的內(nèi)容,迅雷監(jiān)測(cè)到剪切板變化,彈出下載全部鏈接的對(duì)話框2016-02-02