Python 程式設計語言 筆記(四)__Python

來源:互聯網
上載者:User
【執行個體】三者最大值 【IPO】
輸入:三個數值
處理:三者最大演算法
輸出:列印最大值 【演算法比較】
① 通盤比較 — 將每一個值與其他所有值比較以確定最大值

三個值的情況比較簡單,如果是五值比較複雜,而且效率低
(因為運算式沒有被充分利用)
② 決策樹 — 避免冗餘比較

結構更加複雜。
③ 順序處理 — 逐個掃描每個值,保留最大者
【程式】程式9:
# program: maxn.py# 尋找一組數中的最大值def main():    n = eval(input("How many numbers are there?"))    # 將第一個值賦值給max    max = eval(input("Enter a number >>"))    # 連續與後面n-1值進行比較    for i in range(n-1):        x = eval(input("Enter a number >>"))        if x > max:            max = x    print("The largest value is", max)main()

【運行結果】
How many numbers are there? 5
Enter a number >> 9
Enter a number >> 6
Enter a number >> 3
Enter a number >> 10
Enter a number >> 20
The largest value is 20

④ 使用Python內建函數max() 3.5 基本迴圈結構 (1)for迴圈 Python可以使用for語句迴圈遍曆整個序列的值,格式如下:

for <var> in <sequence>:    <body>

在for迴圈中,迴圈變數var遍曆了隊列中的每一個值,迴圈變數var遍曆了隊列中的每一個值,迴圈語句體為每個值執行一次 例:for迴圈求平均數 IPO:
輸入:待輸入數字個數,數字
處理:平均數演算法
輸出:平均數
通用設計方案:
① 輸入數位個數n ② 將sum初始化為0 ③ 迴圈n次:
輸入數字x 將x加入sum中 ④ 將sum/n作為平均數輸出出來 程式10:

#average1.pyn = eval(input("How many numbers?"))sum = 0.0for i in range(n):    x = eval(input("Enter a number >>"))    sum = sum + xprint("\nThe average is", sum/n)

【運行結果】
How many numbers? 3
Enter a number >> 5
Enter a number >> 7
Enter a number >> 6

The average is 6.0 for迴圈的缺點:

程式開始時必須提供輸入數字總數,以提供固定迴圈次數
大規模數字則需要使用者數清楚個數
為此,Python提供了另一種迴圈模式即無限迴圈,不需要提前知道迴圈次數 (2)while迴圈 語句格式:

while <condition>    <body>

條件總是在迴圈體執行之前被判斷,這種結構又被稱為前測迴圈(當型迴圈)
如果迴圈體沒有對i初始化或迴圈體沒有累加,條件判斷一直為真,迴圈體將一直執行,即為死迴圈程式,這時通常使用Ctrl+C來終止一個程式 (3)break語句 —— 退出迴圈 例:程式11:

#TestBreak.pysum = 0number = 0while number  < 20:    number += 1    sum += number    if sum > 100:        breakprint("The number is", number)print("The sum is", sum)

【運行結果】
The number is 14
The sum is 105 (4)continue — 結束本次迴圈

即跳出迴圈體中下面尚未執行的語句,對於while迴圈,繼續求解迴圈條件;對於for迴圈,繼續遍曆迴圈列表 continue語句和break語句的區別:

continue語句只結束本次迴圈,而不終止整個迴圈的執行,而break語句則是直接結束整個迴圈流程,不再判斷迴圈條件是否成立 (5)迴圈語句中的else — 不滿足迴圈條件時執行 3.6 通用迴圈構造方法 (1)互動式迴圈

互動式迴圈是無限迴圈的一種,允許使用者通過互動的方式重複程式特定部分
(2)哨兵迴圈

執行迴圈直到遇到特定的值,迴圈語句才終止執行 設計方法: ① 設定一個哨兵值作為迴圈終止的標誌 ② 任何值都可以做哨兵,但要與實際資料有所區別

(3)檔案迴圈

面向檔案的方法是資料處理的典型應用,可以事先將資料錄入到檔案,便於編輯修改,python中採用readline()方法中的end of file迴圈模式 (4)迴圈嵌套

決策和迴圈互相嵌套可以實現複雜演算法,假設數字以逗號分隔出現在檔案的同一行上

(3)(4)整合程式如圖:
3.7 死迴圈和迴圈嵌套 (1)死迴圈 — 無法靠自身的控制中止的迴圈

死迴圈的使用:通過死迴圈可以一直檢測捕捉特定異常 (2)後測迴圈(直到型迴圈)

先接受輸入,再判斷迴圈條件是否滿足。在Python中沒有後測迴圈語句,但可以通過while和break語句間接實現,如:

(3)半路迴圈 — 迴圈判斷條件在迴圈體的中部

例:
3.8 布林運算式

條件陳述式和迴圈語句都使用布林運算式作為條件
布爾值為真(True)或假(Flase) (1)布爾操作符:and,or,not

and和or用於組合兩個布林運算式,併產生一個布爾結果

<expr> and <expr><expr> or <expr>

not運算子計算一個布林運算式的反值

not <expr>
(2)布爾操作符的優先順序:not > and > or

例:壁球比賽計分: 假設scoreA和scoreB代表兩個壁球選手的分數
規則1:只要一個選手達到了15分,本場比賽就結束
即: scoreA == 15 or scoreB == 15 在程式中構造一種迴圈條件,對遊戲結束條件取反,只要比賽還沒有結束遊戲就一直進行下去
即: while not( scoreA == 15 or scoreB == 15 ) # 比賽繼續 規則2:如果一方打了七分而另一方一分未得時,比賽也結束
即:scoreA == 15 or scoreB == 15 or (a == 7 and b == 0) or (b == 7 and a == 0) 需要一個團隊贏得至少兩分才算贏,即其中一個隊已經達到了15分,且分數差異至少為2時比賽結束(排球)
即:(a >= 15 or b >= 15) and abs(a-b)>=2 (3)布爾代數: 布林運算式遵循特定的代數定律,這些規律被稱為布爾邏輯或布爾代數

代數 布爾代數
a*0 = 0 a and false == false
a*1 = a a and true == a
a+0 = 0 a or false == a
① 任何資料和true進行or操作都是真 ② and和or操作符都符合分配率 ③ not操作符可負負抵消 ④ 德摩根定律:not放進運算式後,and和or發生變化

如:not(a or b) == (not a) and (not b)
not(a and b) == (not a) or (not b) ⑤ 布爾代數的應用 — 用德摩根定律分析和簡化運算式 (4)布林運算式作為決策 — 判斷退出迴圈條件 ① 對於數字(整數和浮點數)的零值被認為是false,任何非零值都是true ② bool類型是特殊的整數 ③ 布林運算式具有短路求值的特性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.