日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問 生活随笔!

        生活随笔

        當前位置: 首頁 > 编程语言 > python >内容正文

        python

        Python基础知识(第五天)

        發布時間:2025/3/21 python 31 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 Python基础知识(第五天) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

        62 .for循環結構_遍歷各種可迭代對象_range對象

        for 循環和可迭代對象遍歷

        for 循環通常用于可迭代對象的遍歷。for 循環的語法格式如下:

        ? ? ? ? ? ? ? ? ? for 變量in可迭代對象:循環體語句

        for x in (20,30,40):print(x*3)

        可迭代對象

        1.序列。包含:字符串、列表、元組

        2.字典

        3.迭代器對象(iterator)

        4.生成器函數(generator)

        5.文件對象

        d={"name":"高奇","age":18,"job":"程序員"} for x in d:print(x) for x in d.keys():print(x) for x in d.values():print(x) for x in d.items():print(x)

        range?對象

        range 對象是一個迭代器對象,用來產生指定范圍的數字序列。格式為:range(start, end [,step])生成的數值序列從 start 開始到 end 結束(不包含 end)。若沒有填寫 start,則默認從 0 開始。step 是可選的步長,默認為1。

        sum_all=0 sum_odd=0 sum_even=0 for x in range(101):sum_all +=xif x%2==1:sum_odd+=xelse:sum_even+=x print(sum_all) print(sum_odd) print(sum_even)

        63.嵌套循環

        嵌套循環

        一個循環體內可以嵌入另一個循環,一般稱為“嵌套循環”,或者“多重循環”。

        for x in range(5):for y in range(5):print(x,end="\t")print()

        64.嵌套循環練習_九九乘法表_打印表格數據

        九九乘法表

        for m in range(1,10):for n in range(1,m+1):print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")print()

        用列表和字典存儲下表信息,并打印出表中工資高于 15000 的數據

        姓名

        年齡

        薪資

        城市

        高小一

        18

        30000

        北京

        高小二

        19

        20000

        上海

        高小五

        20

        10000

        深圳

        r1= dict(name="高小一",age=18,salary=30000,city="北京") r2= dict(name="高小二",age=19,salary=20000,city="上海") r3= dict(name="高小三",age=20,salary=10000,city="深圳") tb = [r1,r2,r3]for x in tb:if x.get("salary")>15000:print(x)

        65.break語句

        break語句

        break?語句可用于while和 for?循環,用來結束整個循環。當有嵌套循環時,break語句只能跳出最近一層的循環。

        while True:a = input("請輸入一個字符(輸入 Q 或 q 結束)")if a.upper()=='Q':print("循環結束,退出")breakelse:print(a)

        66.continue語句

        continue語句

        continue?語句用于結束本次循環,繼續下一次。多個循環嵌套時,continue?也是應用于最近的一層循環。

        要求輸入員工的薪資,若薪資小于 0 則重新輸入。最后打印出錄入員工的數量和薪資明細,以及平均薪資

        empNum = 0 salarySum= 0 salarys = [] while True:s = input("請輸入員工的薪資(按 Q 或 q 結束)")if s.upper()=='Q':print("錄入完成,退出")breakif float(s)<0:continueempNum +=1salarys.append(float(s))salarySum += float(s) print("員工數{0}".format(empNum)) print("錄入薪資:",salarys) print("平均薪資{0}".format(salarySum/empNum))

        67.else語句

        while、for?循環可以附帶一個 else?語句(可選)。如果 for、while?語句沒有被 break?語句結束,則會執行 else?子句,否則不執行。語法格式如下:

        員工一共 4 人。錄入這 4 位員工的薪資。全部錄入后,打印提示“您已經全部錄入 4 名員工的薪資”。最后,打印輸出錄入的薪資和平均薪資

        salarySum= 0 salarys = [] for i in range(4):s = input("請輸入一共 4 名員工的薪資(按 Q 或 q 中途結束)")if s.upper()=='Q':print("錄入完成,退出")breakif float(s)<0:continuesalarys.append(float(s))salarySum += float(s) else:print("您已經全部錄入 4 名員工的薪資")print("錄入薪資:",salarys) print("平均薪資{0}".format(salarySum/4))

        68.循環代碼優化技巧(及其重要)

        雖然計算機越來越快,空間也越來越大,我們仍然要在性能問題上“斤斤計較”。編寫循環時,遵守下面三個原則可以大大提高運行效率,避免不必要的低效計算:

        1.盡量減少循環內部不必要的計算

        2.嵌套循環中,盡量減少內層循環的計算,盡可能向外提。

        3.局部變量查詢較快,盡量使用局部變量

        import timestart = time.time() for i in range(1000):result = []for m in range(10000):result.append(i*1000+m*100) end = time.time() print("耗時:{0}".format((end-start)))start2 = time.time() for i in range(1000):result = []c = i*1000for m in range(10000):result.append(c+m*100) end2 = time.time() print("耗時:{0}".format((end2-start2)))

        耗時:1.7897577285766602
        耗時:1.3709008693695068

        其他優化手段

        1.連接多個字符串,使用 join()而不使用+

        2.列表進行元素插入和刪除,盡量在列表尾部操作

        69.zip()并行迭代

        使用 zip()并行迭代

        我們可以通過 zip()函數對多個序列進行并行迭代,zip()函數在最短序列“用完”時就會停止。

        names = ("高淇","高老二","高老三","高老四") ages = (18,16,20,25) jobs = ("老師","程序員","公務員") for name,age,job in zip(names,ages,jobs):print("{0}--{1}--{2}".format(name,age,job)) for i in range(3):print("{0}--{1}--{2}".format(names[i],ages[i],jobs[i]))

        執行結果:

        高淇--18--老師

        高老二--16--程序員

        高老三--20--公務員

        70.推導式創建序列_列表推導式_字典推導式_集合推導

        式_生成器推導式

        推導式創建序列

        推導式是從一個或者多個迭代器快速創建序列的一種方法。它可以將循環和條件判斷結合,從而避免冗長的代碼。推導式是典型的 Python?風格,會使用它代表你已經超過Python初學者的水平。

        列表推導式

        [表達式 for item in?可迭代對象?]

        或者:{表達式 for item in?可迭代對象 if 條件判斷}

        >>> [x for x in range(1,5)] [1, 2, 3,?4]

        >>> [x*2 for x in range(1,5)] [2, 4, 6,?8]

        >>> [x*2 for x in range(1,20) if x%5==0 ] [10, 20, 30]

        >>>?[a for a in "abcdefg"] ['a', 'b', 'c', 'd', 'e', 'f', 'g']

        字典推導式

        字典的推導式生成字典對象,格式如下:

        {key_expression : value_expression for 表達式 in 可迭代對象}

        類似于列表推導式,字典推導也可以增加 if 條件判斷、多個 for 循環。

        my_text = 'i love you,i love sxt,i love gaoqi' char_count = {c:my_text.count(c) for c in my_text} print(char_count)

        集合推導式

        集合推導式生成集合,和列表推導式的語法格式類似:

        {表達式 for item in?可迭代對象?}或者:{表達式 for item in?可迭代對象 if 條件判斷}

        >>> {x for x in range(1,100) if x%9==0}

        {99, 36, 72, 9, 45, 81, 18, 54, 90, 27,?63}

        生成器推導式(生成元組)

        (x for x in range(1,100) if x%9==0)

        我們發現提示的是“一個生成器對象”。顯然,元組是沒有推導式的。一個生成器只能運行一次。第一次迭代可以得到數據,第二次迭代發現數據已經沒有了。

        >>> gnt = (x for x in range(1,100) if x%9==0)

        >>> for x in gnt:

        print(x,end=' ')

        9 18 27 36 45 54 63 72 81 90 99

        >>> for x in gnt:

        print(x,end=' ')

        >>>

        71.綜合練習_繪制不同顏色的多個同心圓_繪制棋盤

        繪制多個同心圓

        import turtle t = turtle.Pen() my_colors = ("red","green","yellow","black") t.width(4) t.speed(1) for i in range(10):t.penup()t.goto(0,-i*10)t.pendown()t.color(my_colors[i % len(my_colors)])t.circle(15 + i * 10) turtle.done()

        72.函數的基本概念_內存分析_函數的分類_定義和調用

        函數是可重用的程序代碼塊。函數的作用,不僅可以實現代碼的復用,更能實現代碼的一致性。一致性指的是,只要修改函數的代碼,則所有調用該函數的地方都能得到體現。

        在編寫函數時,函數體中的代碼寫法和我們前面講述的基本一致,只是對代碼實現了封裝,并增加了函數調用、傳遞參數、返回計算結果等內容。為了讓大家更容易理解,掌握的更深刻。我們也要深入內存底層進行分析。絕大多數語言內存底層都是高度相似的,這樣大家掌握了這些內容也便于以后學習其他語言。

        函數的基本概念

        1.一個程序由一個個任務組成;函數就是代表一個任務或者一個功能。

        2.函數是代碼復用的通用機制。

        Python?函數的分類

        1.內置函數

        我們前面使用的 str()、list()、len()等這些都是內置函數,我們可以拿來直接使用。

        2.標準庫函數

        我們可以通過 import 語句導入庫,然后使用其中定義的函數。

        3.第三方庫函數

        Python 社區也提供了很多高質量的庫。下載安裝這些庫后,也是通過 import 語句導入,然后可以使用這些第三方庫的函數。

        4.用戶自定義函數

        用戶自己定義的函數,顯然也是開發中適應用戶自身需求定義的函數。今天我們學習的 ???就是如何自定義函數。

        函數的定義和調用

        Python?中,定義函數的語法如下:

        def 函數名?([參數列表])?:

        ? ? ? '''文檔字符串'''

        ? ? ? ‘函數體/若干語句

        要點:

      1. 我們使用 def?來定義函數,然后就是一個空格和函數名稱;
      2. Python?執行 def?時,會創建一個函數對象,并綁定到函數名變量上。
      3. 參數列表
      4. 圓括號內是形式參數列表,有多個參數則使用逗號隔開
      5. 形式參數不需要聲明類型,也不需要指定函數返回值類型
      6. 無參數,也必須保留空的圓括號
      7. 實參列表必須與形參列表一一對應
      8. return?返回值
      9. 如果函數體中包含return語句,則結束函數執行并返回值;
      10. 如果函數體中不包含return語句,則返回None值。
      11. 調用函數之前,必須要先定義函數,即先調用def創建函數對象
      12. 內置函數對象會自動創建
      13. 標準庫和第三方庫函數,通過 import?導入模塊時,會執行模塊中的def語句
      14. ??

        73.形參和實參_文檔字符串_函數注釋

        形參和實參

        def printMax(a,b):if?a>b:print(a,'較大值') else:print(b,'較大值') printMax(10,20) printMax(30,5)

        上面的 printMax?函數中,在定義時寫的 printMax(a,b)。a?和 b?稱為“形式參數”, 簡稱“形參”。也就是說,形式參數是在定義函數時使用的。 形式參數的命名只要符合“標識符”命名規則即可。

        在調用函數時, 傳遞的參數稱為“ 實際參數”, 簡稱“ 實參”。上面代碼中, printMax(10,20),10 和 20 就是實際參數。

        文檔字符串(函數的注釋)

        程序的可讀性最重要,一般建議在函數體開始的部分附上函數定義說明,這就是“文檔字符 ???串”,也有人成為“函數的注釋”。我們通過三個單引號或者三個雙引號來實現,中間可以加入多行文字進行說明。

        我們調用 help(函數名.?doc?)可以打印輸出函數的文檔字符串。

        74.返回值詳解

        返回值

        return 返回值要點:

        1.如果函數體中包含return語句,則結束函數執行返回值

        2.如果函數體中不包含return語句,則返回None值。

        3.要返回多個返回值,使用列表、元組、字典、集合將多個值“存起來”即可。

        總結

        以上是生活随笔為你收集整理的Python基础知识(第五天)的全部內容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。