摘要:在循環(huán)外使用今天在練習一個題目求之內(nèi)的素數(shù)。表示從倒數(shù)第一個開始往前數(shù)如果是的話則表示從正數(shù)第一個到最后一個。同時,閉包要求外部函數(shù)的返回值是內(nèi)部函數(shù)的函數(shù)名。
18. random()的用法
#隨機整數(shù): >>> import random >>> random.randint(0,99) 21 #隨機選取0到100間的偶數(shù): >>> import random >>> random.randrange(0, 101, 2) 42 #隨機浮點數(shù): >>> import random >>> random.random() 0.85415370477785668 >>> random.uniform(1, 10) 5.4221167969800881 #隨機字符: >>> import random >>> random.choice("abcdefg%^*f") "d" #洗牌: >>> import random >>> items = [1, 2, 3, 4, 5, 6] >>> random.shuffle(items) >>> items [3, 2, 5, 6, 4, 1]
17.lambda函數(shù)
def add(a,b): x = a+b print(x) add(1,3) g = lambda a,b :a+b print(g(1,2))
16.兩個變量值互換
a,b = b,a
15. insert()函數(shù)的使用
list.insert("索引位置","要插入的內(nèi)容’) #要注意索引位置是指在對應(yīng)的位置之后,而不是插入以后充當?shù)奈恢谩?/pre>14. 在循環(huán)外使用else
今天在練習一個題目:求100之內(nèi)的素數(shù)。,我寫的代碼如下:
for i in range(1,100): for k in range(2,i): if i % k == 0: pass else: print(i)輸出的結(jié)果和我的期待大相徑庭,分析之后發(fā)現(xiàn)在if那里,每出現(xiàn)一次能整除i的情況,函數(shù)都會把i輸出一遍,從而導致了錯誤。后來查看了答案,發(fā)現(xiàn)是這么寫的:
for i in range(1,100): for k in range(2,i): if i % k == 0: break else: print(i)區(qū)別在于答案使用了break,奇怪的是else語句出現(xiàn)在了if之外,查詢資料得知:這種寫法表示如果if循環(huán)中出現(xiàn)了符合條件的情況,則直接跳出終止循環(huán),如果走完但還沒有符合條件的出現(xiàn),則執(zhí)行else的語句。參考 Python——在循環(huán)外使用else
13. 如何反向一個列表中的元素?有三種思路:
a = [1,2,3] a.reverse() #第一種方法,列表直接反向 a.sort(reverse = True) #第二種方法,使用sort方法 a[::-1] #第三種方法,也是最高級的一種寫法,使用切片。表示“從倒數(shù)第一個開始往前數(shù)” 如果是a[:]的話則表示從正數(shù)第一個到最后一個。12.如何將一個字符串全部統(tǒng)一為大寫或者小寫?
week = input("請輸入星期幾:").upper() #這樣可以將輸入的星期幾全部統(tǒng)一為大寫,方便后面做比較11.如何將一個元素都是整數(shù)的列表做全部加和處理?
直接用sum(列表名)即可:
[100.0, 50.0, 25.0, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625] print(sum(s))判斷一個字符串是否是字母、數(shù)字、空格
用isalpha()/isdigit()/isspace這些函數(shù)來實現(xiàn)。
test = input("輸入一個字符串:") letter =0 digit =0 space = 0 i = 0 for i in range(0,len(test)): if test[i].isalpha(): letter += 1 elif test[i].isdigit(): digit += 1 elif test[i].isspace(): space += 1 i += 1 print(letter,digit,space)9.int形式的數(shù)字,可以通過用str()的方式處理成字符串,從而用索引獲取到指定位置的數(shù)字。
x = 234 print(x[0]) #會報錯--TypeError: "int" object is not subscriptable s = str(x) print(s[0])這個點出現(xiàn)在「打印出所有的"水仙花數(shù)",所謂"水仙花數(shù)"是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個"水仙花數(shù)",因為153=1的三次方+5的三次方+3的三次方?!惯@道題中。
8.列表的截取
對于列表a,a[:]表示的意思是從a的第一個到最后一個元素的合集,類似的,a[1:]則表示從第二個開始到最后的元素形成的列表。
# 如果要把列表a中的元素全部復制到b,代碼如下 a = [1,2,3,4] b = [] b = a[:] print(b)7.python中 sort()函數(shù)的使用
sort()函數(shù)是用來比較一個元組中元素大小的,需要注意的是,在實踐中發(fā)現(xiàn)不能直接print(a.sort()),而只能先進行a.sort(),然后再print(a)
另外sort()有一個參數(shù)reverse=True,可以將數(shù)組實現(xiàn)從大到小的排了。a = [int(input("請輸入整數(shù)1:")),int(input("請輸入整數(shù)2:")),int(input("請輸入整數(shù)3:"))] print(a) a.sort() print(a)6.函數(shù)的閉包
類似于if的嵌套,可以理解為函數(shù)的嵌套:當內(nèi)部的函數(shù)引用了外部函數(shù)的參數(shù)的時候,我們認為就形成了閉包。同時,閉包要求外部函數(shù)的返回值是內(nèi)部函數(shù)的函數(shù)名。
好處是需要調(diào)用的參數(shù)變少,適用于有參數(shù)不變、有參數(shù)變化的情況。(比如ax+b = y 假設(shè)a/b不變,而只有x需要變化)
def func1(a): def func2(b): return a+b return func2 x = func1(5) print(x(4))5.函數(shù)作用域
如果函數(shù)外和函數(shù)內(nèi)都各自有一個重名的變量,那么函數(shù)內(nèi)的變量復制只能影響到函數(shù)內(nèi)部,而在函數(shù)外部還是由函數(shù)外部的變量主導。
但如果確實想讓函數(shù)內(nèi)部的變量賦值影響全局的話,那么可以在內(nèi)部的變量賦值前增加global var的寫法。比如:var1 = 123 def func(): global var1 var1 = 456 print(var1) func()4. 函數(shù)的可變長參數(shù)
定義一個函數(shù),默認參數(shù)都是必須的,但如果還希望增加非必須(沒有寫也不會報錯)的參數(shù)的話,可以在參數(shù)前面加「*」,比如:
def func(lenght,* height): return其中lenght是必須的,而height則是非必須的。
3.兩個函數(shù)之間的參數(shù)傳遞
如下。假設(shè)要把func2的結(jié)果傳遞給func1作為參數(shù),那么關(guān)鍵是在func2的最后面加上func1()函數(shù),這樣就可以把func2的結(jié)果直接傳遞給func1繼續(xù)運行了。
當然,在這種情況下,func1產(chǎn)生的結(jié)果也可以再回來被func2直接調(diào)用。
def func1(): return def func2(): return name func1(name) ———————————————————————————————— # 代碼實例 import re def find_item(hero): with open("sanguo.text") as f: data = f.read().strip().replace(" ","") name_num = len(re.findall(hero,data)) return name_num with open("name.text") as f: names = f.read().split("|") for name in names: name_num = find_item(name) print(" %s 出現(xiàn)的次數(shù)是 %s 次" %(name,name_num))1.用變量替換字符串的內(nèi)容:
Chinese_zodiac = "鼠牛虎兔龍蛇馬羊猴雞狗豬" for year in range(2000,2018): print("%s 年是 %s 年" %(year,Chinese_zodiac[year % 12]))學習要點:
a. 用變量替換字符串內(nèi)容需要用%s來實現(xiàn),最后跟上 %()來作為變量的來源;
b. 字符串也可以像數(shù)組那樣,用索引值來指定某一部分;
c. year % 12表示的是年份除以12得到的余數(shù);2.Python--read()和readline()以及readlines()用法區(qū)別
# 試驗材料 諸葛亮|關(guān)羽|劉備|曹操|(zhì)孫權(quán)|關(guān)羽|張飛|呂布|周瑜|趙雲(yún)|龐統(tǒng)|司馬懿|黃忠|馬超.read() 每次讀取整個文件,它通常用于將文件內(nèi)容放到一個字符串變量中
.readlines() 一次讀取整個文件(類似于 .read()
.readlines() 自動將文件內(nèi)容分析成一個行的列表,該列表可以由 Python 的 for ... in ... 結(jié)構(gòu)進行處理.
.readline() 每次只讀取一行,通常比 .readlines() 慢得多。僅當沒有足夠內(nèi)存可以一次讀取整個文件時,才應(yīng)該使用 .readline()。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44758.html
摘要:貢獻者飛龍版本最近總是有人問我,把這些資料看完一遍要用多長時間,如果你一本書一本書看的話,的確要用很長時間。為了方便大家,我就把每本書的章節(jié)拆開,再按照知識點合并,手動整理了這個知識樹。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻者:飛龍版...
摘要:學習筆記七數(shù)學形態(tài)學關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
摘要:請回復這個帖子并注明組織個人信息來申請加入。權(quán)限分配靈活,能者居之。數(shù)量超過個,在所有組織中排名前。網(wǎng)站日超過,排名的峰值為。導航歸檔社區(qū)自媒體平臺微博知乎專欄公眾號博客園簡書合作侵權(quán),請聯(lián)系請抄送一份到贊助我們 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=...
摘要:基本結(jié)構(gòu)語言中,一個頁面是由四個部分組成文檔聲明標簽對標簽對標簽對圖示文檔聲明這是一個文檔聲明,表示這是一個頁面。標簽標簽表示頁面內(nèi)容的范圍。 HTML HTML ...
摘要:主頁暫時下線社區(qū)暫時下線知識庫自媒體平臺微博知乎簡書博客園合作侵權(quán),請聯(lián)系請抄送一份到特色項目中文文檔和教程與機器學習實用指南人工智能機器學習數(shù)據(jù)科學比賽系列項目實戰(zhàn)教程文檔代碼視頻數(shù)據(jù)科學比賽收集平臺,,劍指,經(jīng)典算法實現(xiàn)系列課本課本描述 【主頁】 apachecn.org 【Github】@ApacheCN 暫時下線: 社區(qū) 暫時下線: cwiki 知識庫 自媒體平臺 ...
閱讀 877·2021-11-16 11:56
閱讀 1697·2021-11-16 11:45
閱讀 3182·2021-10-08 10:13
閱讀 4157·2021-09-22 15:27
閱讀 750·2019-08-30 11:03
閱讀 675·2019-08-30 10:56
閱讀 972·2019-08-29 15:18
閱讀 1763·2019-08-29 14:05