程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

讓python飛:形象理解python 全局變量、局部變量、內部函數、外部函數、ascii碼、內置函數

編輯:Python


Day06凱爾特與佛印闖雙蛇洞
秦始皇得知有一兵馬俑逃脫,立即派出大內高手凱爾特前去捉拿。凱爾特一路追蹤到熊山寺,但寺門緊閉,遂從後門入寺。
凱爾特悄悄溜到後山,見到高台周圍有許多獅子蠢蠢欲睡。高台上有一七彩球懸在正中央上空。凱爾特走南闖北,識得此球。七彩球本命萬能球,裡面的東西,可以號令所有沒有球的石獅子
(全局變量:理解:1).作用域比較大,定義在.py文件中,函數外 2).可以被文件中任何一個函數所使用)。凱爾特知道其威力,於是飛起將七彩球偷走。石獅們察覺七彩球被盜走,紛紛醒來。有的獅子有自己的球,可以不用聽七彩球的號令(局部變量:理解:2).作用域比較小,函數的形參或者函數體中 3).只能被當前的這個函數所使用,出了此函數,外部夠不著它),但為了拯救沒有球的獅子,他們想了個方法,造出了一個地球儀一樣的球,它可以在獅子體內改變七彩球裡的內容(在局部位置修改全局變量的值:先使用global關鍵字定位到需要修改的全局變量,然後在使用全局變量 = 值操作進行修改。代碼如下:
global a
a = 30)。這項艱巨的任務就交到了大小獅手上。小獅子像小袋鼠一樣藏在大獅子的肚皮上。大獅子愉快地接受了地球儀,小獅子想玩地球儀,大獅子不給,小獅子就想玩一下小球球,但是,大獅子不讓。於是小獅子調皮就做了一個上面有個錯誤大叉的黑白球。這個球能修改大獅子嘴裡的球裡的東西(在內部函數中修改外部函數中局部變量的值:先使用nonlocal關鍵字定位到需要修改的局變變量,然後使用局部變量 = 值操作進行修改
代碼如下:
nonlocal b
b = 100)。大獅子知道後想嚇唬一下小獅子,想拿出小獅子嘴裡的東西,結果發現並不能拿出來(外部函數不能使用內部函數的內容 注意:和作用域有關),而小獅子卻可以輕而易舉的拿到大獅子嘴裡的球裡的東西(1).內部函數可以隨意使用外部函數的內容注意:和作用域有關)。
凱爾特一看獅子有了地球球,感到不妙。於是,他拿出兩件隨身攜帶的寶物給獅子,向它們求和。這兩件寶物分別是自行車和叉子。自行車能讓歐洲人變身為阿拉伯人(ord(str):傳入字符數據,返回整數值(ascii碼值)),叉子能讓阿拉伯人變身為歐洲人(chr(num):傳入整數數據(ascii碼值),返回字符數據)。獅子們覺得凱爾特還挺有誠意,所以就原諒了他(ascii碼。字符編碼(字符集)。字符數據 <–> ascii碼表 <–> 二進制數據。只需要記住3個分界點:
1).‘0’ --> 48
2).‘A’ --> 65
3).‘a’ --> 97)。
獅子們把凱爾特引薦給佛印。佛印熱情接待了這個客人,還帶他參觀了自己剛剛發明的列表制造器(1.列表生成式:作用:執行完畢之後會返回給程序一個列表對象,在不破壞原本復雜需求的同時,更加便捷的得到一個列表對象(代碼更加簡短); 它屬於python語法糖的一種),它有三個主要部件(格式:[expr for ver1,[ver2],… in 序列對象(range、str、list、tuple、dict…) if …]),最左邊是一個出口,出口有個模型器,用來存放你想要的表的樣式(expr),然後是一個小轉籠(for ver1,[ver2],… in),小轉籠右邊是各式各樣的容器,裡面存放著零部件(序列對象(range、str、list、tuple、dict…)),零部件一件一件的通過左邊的計件器,然後再進入模型器。容器右邊還有個過濾器,用來過濾掉用不到的零件(if …)。凱爾特看到後連連驚歎
佛印師傅哈哈一笑!看到小獅子手中的自行車和叉子,就問凱爾特此物從何而來?凱爾特告訴佛印師傅,這兩件寶物是他從雙蛇洞中取出來的(python內置函數),那個洞在熊山的山腳下。洞裡還有很多寶物。佛印師傅聽到後,喜出望外,遂讓他帶路去雙蛇洞一探究竟。
來到雙蛇洞,剛一進去是個小洞,牆壁上畫著很多阿拉伯人(數值型內置函數),小洞裡擺著很多寶物,有一把剪刀,用來修剪阿拉伯人頭發的(round(num1,num2):四捨五入)。有一把秤用來稱阿拉伯人體重(abs(num):絕對值 特點:不管正數還是負數的絕對值都是其正數的形式,0還是0);有一把量身高的儀器,能得到最高身高和最低身高(max(seq)、min(seq):得到seq對象的最大、最小值)。洞的右邊有一個六角扳手,能把十塊石頭轉換為十六個(hex(num):將十進制數據num轉換為十六進制返回(數據類型:str));還有一個大八角,能把十個石頭變成8個(oct(num):將十進制數據num轉換為八進制返回(數據類型:str)),還有一個鏡子,能把十個石頭變成兩個(bin(num):將十進制數據num轉換為二進制返回(數據類型:str))。洞頂上有個手榴彈,他能炸出若干個本體(pow(x,y):計算x的y次方返回),還有個戒指,這個戒指能一分為二,把夫妻兩人變到一個牛肉丸串上(divmod(x,y):返回一個元祖對象,有兩個元素;第一個元素記錄了x除以y後的商,第二個元素記錄了x除以y後的余數)。
繼續向前走裡面有個較大的洞,洞內有一個碩大的七彩魔方,魔方的正面有九個整齊排列的盒子,盒子上是一個魔術師的圖案。上中的盒子上畫的個帽子,可以返回一個浴池中的小鴨子(random():返回一個[0,1)之間的隨機浮點值),中央盒子上畫了個制服,返回一個水上士兵(uniform(a,b):返回[a,b]之間的一個隨機浮點值 a,b兩個變量大小隨意 --> 1).(5,10) 2).(10,5))。下中的盒子上畫了個褲子,返回一個工人(randint(a,b):返回[a,b]之間的一個隨機整數),下左右盒子上各畫了一只皮鞋,能返回好幾個小工兵(randrange([start],end,[step]):返回[start,end)的范圍之間的一個隨機整數,考慮步長)。中左的盒子上畫了個手套,能隨機抓取某個東西(choice(seq):隨機獲取seq中的某個元素返回)。中右的玻璃櫃台,裡面能放一個大表(sample(seq,num):從seq對象中隨機獲取num個元素,以列表的形式返回)。上右的盒子上畫了個拐杖,它能把列表敲碎(shuffle(lt):將list對象lt中的元素打亂 【注意】只能接受list對象)。

繼續往裡面走是第三個洞,洞裡有棵蘋果樹。洞頂畫了個車輪(pi:圓周率)和鵝(e: 自然數)。樹干上有一只蝸牛,在向上爬(ceil(num):向上取整)。還有只蝴蝶,在向下飛(floor(num):向下取整)。蘋果樹頂上有個中間開了一個口子的方蓋子(sqrt(num):開平方根)。蘋果樹左邊掛了個半圓形的弓(radians(obj):將角度轉為弧度),蘋果樹右邊從上到下插著九支箭(degrees(obj):將弧度轉為角度)!
繼續往裡走是個更加空曠的大溶洞。洞中有個非常大的黃色的紙符懸在半空中。紙符上方懸有一個大喇叭(join()函數:語法: ‘sep’.join(seq)參數說明
sep:分隔符。可以為空
seq:要連接的元素序列、字符串、元組、字典
上面的語法即:以sep作為分隔符,將seq所有的元素合並成一個新的字符串
返回值:返回一個以分隔符sep連接各個元素後生成的字符串),他就是一個字符隊列生成器。紙符側邊正前方掛著各種各樣分層排列的寶物。凱爾特驚歎於眼前的鬼斧神工的景象,回頭發現佛印不見了。
凱爾特感到一絲慌張,開始尋找佛印
。(3-4-2-4-5-2-7)
這時,紙符上已經零星出現了大喇叭造出來的一小排兵馬俑。最下面的一排有三個寶物。最左邊是一把刀,右邊也是一把刀,中間是兩把刀。凱爾特分別試了下,左邊的刀一拉,就會把最左邊的兵馬俑給砍掉(lstrip():去除字符串左側匹配到的字符數據,返回一個新串),拉一下右邊的刀,就會把最右邊的兵馬俑砍掉(rstrip():去除字符串右側匹配到的字符數據,返回一個新串),拉一下中間的雙刀,最兩邊的兵馬俑都會被砍掉(strip(): 去除字符串左、右兩側匹配到的字符數據,返回一個新串)。此一排開關的作用是將剛造出來的隊列進行修減。
凱爾特心想這一排開關並能不讓他找到佛印。所以他繼續向上看第二列寶物。他拉了第二層一層最左邊的一個寶物,寶物畫有所有人靠左站,右邊是許多只雞的形象(ljust(width,format):將str數據顯示在左側,如果長度/尺寸不滿width,那麼右側補format),這時所有的兵馬俑都排列到左邊,右邊空白的地方出現了3只雞,雞和兵馬俑加一起一共是10只。凱爾特又拉了一下右邊的開關(rjust(width,format):將str數據顯示在右側,如果長度/尺寸不滿width,那麼左側補format),所有的兵馬俑都排列到了右邊,左邊補了3只雞。中間還有個畫有兵馬俑抱團,兩邊都是雞的寶物(center(width,format):將str數據顯示在中間,如果長度/尺寸不滿width,那麼左右側補format),凱爾特拉了一下,兵馬俑都在中間排列,兩邊都是雞。還有個兵馬俑都排列到右邊,左邊都是蛋的寶物,凱爾特試了一下,果然,兵馬俑都排列到了右邊,左邊補充了雞蛋(zfill(width):將str數據顯示在右側,如果長度/尺寸不滿width,那麼左側補0)。這一排開關的作用是將大喇叭造修減好的兵馬俑要進行補充排隊!
這一排寶物也不行。繼續往上看,有兩個寶物,左邊的寶物 上畫了個電鋸,電鋸上綁了張紙,紙上畫了個大表,表大表上方有個畫板,你可以在畫板畫上一個兵馬俑的形象,它就能從隊列中那個兵馬俑的位置進行切割,然後把切割後剩下的兵馬俑放到一只大表上(split(format):將str以format格式進行切割,返回一個列表對象;默認空參數的split()可以切割的內容:’ '、\n、\t)。如果你什麼都不畫,它就默認切割小魚(:),小精靈(‘’),門神(\n),雷神(\t)。右邊還有一個較大的電鋸,它的紙上的表上面只畫了一個門神(\n)。第三排的開關是將那些不聽話的隊列分到一張列表上,然後用電鋸將隊列切開,重新排列
第四列有四個寶物,第一個是個鼠標(index),他能指出你想要找的東西的位置,如果找不到,鼠標會變紅,並發出警笛聲(index(s):返回字符串s在原串中對應的下標/索引,如果存在多個相同的數據,返回第一個匹配成功的;如果都沒有匹配成功,會報錯)。第二個寶物是個磚夾(count),他能算出你想找的東西在隊列中出現的次數(count(s):返回字符串s在原串中出現的次數,如果一次都沒有出現,不會報錯,返回0)。第三個、第四個寶物都是望遠鏡,左邊的望遠鏡(find)能找到你想還要的東西第一次出現的所處位置(find(format):查找字符串中首次出現的format的位置),右邊的望遠鏡(rfind)能找到你所想找的東西最後一次出現的位置。如果望遠鏡找不到,它們不會變紅,只會告訴你飛了(-1)(rfind(format):查找字符串中最後一次出現的format的位置,如果找不到則返回-1)。這一列是便於對隊列進行查找管理,找出刺頭,辦他。
第五列有五個寶物,第一個是個俄羅斯大套娃(upper),它能讓所有的小俄羅斯人變大人(upper():將字符串數據變為全大寫)。第二個是個俄羅斯小套娃(lower),它能讓所有的大俄羅斯人變小(lower():將字符串數據變為全小寫)。第三個是普京頭像,它能讓一個隊列的第一個人變大,其余都變小(capitalize():將字符串數據首字母大寫,其余字母小寫)。第四個是個駱駝標志(title),它能讓所有小分隊的第一個人變大,其余人變小(title():將字符串數據首字母大寫,其余字母小寫 備注:如果存在多個單詞,每個單詞首字母都要考慮)。第五個是個沙漏(swapcase),它能讓大人變小,小人變大(swapcase():將字符串中大寫變為小寫,小寫變為大寫)。這一列開關是將隊列進行改造啊!
第六排有兩個寶物,分別是魚頭和魚尾。魚頭(startswith)能告訴你隊列排頭的是不是你想要的(startswith(format):判斷字符串是否以format開頭)。魚尾(endswith)能告訴你隊列末尾是不是你想要的(endswith(): 判斷字符串是否以format結尾)。這倆標志是看改造後的隊伍是不是自己的人。
第七排,也就是最高的一排有七個寶物。這些都是判斷的寶物。第一個是耶路撒冷阿克薩清真寺,寺頂有個天主教的塔鐘(isalnum():判斷字符串的內容是否都是英文、數字字符;如果是,返回True;反之,返回False)。這個寶物能告訴你隊列裡的成員是不是都是歐洲人和阿拉伯人。第二個寶物是個在哭的天主教少女(isalpha),她能告訴你隊列裡成員是不是都是歐洲人(isalpha(): 判斷字符串的內容是否都是英文字符;如果是,返回True;反之,返回False)。第三個寶物是雙手套(isdecimal),它能檢查成員是不是都是有十塊石頭組成的阿拉伯人(isdecimal():判斷字符串的內容是否只包含十進制字符;如果是,返回True;反之,返回False)。第四個寶物是個探測器(isdigit),它能告訴你隊列是不是都是阿拉伯人(isdigit(): 判斷字符串的內容是否都是數字字符;如果是,返回True;反之,返回False)。第五個寶物是個在哭的小俄羅斯套娃(islower),它能告訴你隊列是不是都是小俄羅斯人(islower(): 判斷字符串中英文字符是否全小寫;如果是,返回True;反之,返回False 【注意】數字、其它字符不影響)。第六個寶物是個在哭的大俄羅斯套娃(isupper),它能告訴你隊列裡是不是都是大俄羅斯人(isupper(): 判斷字符串中英文字符是否全大寫;如果是,返回True;反之,返回False 【注意】數字、其它字符不影響)。第七個寶物是個在哭的駱駝(istitle),它能告訴你隊列裡的小隊第一個人是不是大人(istitle(): 判斷字符串內容中的英文子串(多組)的首字母是否大寫)。最頂上一排是要來個大檢查


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved