AL計算機中P4卷需要用到的python代碼要點

由於(yu) P2考試使用的是偽(wei) 代碼,很多同學找到P4時對python代碼不熟悉,因此我特地總結了P4卷需要用到的python代碼要點。

1.全局變量

示例global DataStored

global關(guan) 鍵字用於(yu) 聲明一個(ge) 全局變量,使其在函數內(nei) 外都可以訪問和修改。

·global不能在global同一行賦值

·global在各個(ge) 函數裏如果需要用到,則每個(ge) 函數都要global一遍

2.輸入處理

NumberItems = int(input("How many numbers will you enter?"))

input()函數用於(yu) 獲取用戶輸入,返回的是字符串類型。如果需要進行數值運算,需要使用int()將其轉換為(wei) 整數。

輸入時做validation的辦法:

要求輸入的是1-100中間的數字,如果輸錯,則需要重新輸入

num=int(input("input a number between 1-100"))whilenum>100ornum<0: num=int(input("input a number between 1-100"))

3.循環

·for循環

ofor Count in range(0, NumberItems):

ofor循環用於(yu) 遍曆序列或範圍。range(start, stop)用於(yu) 生成一係列數值。

·while循環

owhile Valid == False:

owhile循環在條件為(wei) True時不斷執行,直到條件變為(wei) False

雖然break可以中途退出循環,但是在P4考試中最好不要用,縱觀所有的markscheme,都沒有用到break語句

4.函數

·定義(yi) 函數

defInitialise():globalDataStoredglobalNumberItems

使用def關(guan) 鍵字定義(yi) 函數,後跟函數名和括號。函數中的代碼在調用時執行。

·返回值:

o return MidValue

o解釋:return語句用於(yu) 返回函數的值。切記和print語句區分開!!!

比如以下真題裏,很多人以為(wei) return 就是print,實際這道題既要求print,也要求return.

AL計算機中P4卷需要用到的python代碼要點

5.條件判斷(if-else)

ifNumberItems >0andNumberItems <21:

Valid =True

解釋if語句根據條件是否為(wei) 真來執行相應的代碼。可以使用else語句處理條件不成立時的情況。

6.列表

DataStored=[]

·DataStored.append(int(input("Enter number")))

·解釋:列表是可變的序列,用於(yu) 存儲(chu) 多個(ge) 元素。.append()方法將元素添加到列表的末尾。

往數組裏添加內(nei) 容什麽(me) 時候用append ,什麽(me) 時候采用數組+下標的方式

場景1:動態擴展列表(優(you) 先用append()

p4沒有要求初始化,我們(men) 就不初始化,不初始化怎麽(me) 定義(yi) 數組呢,

比如:results = [],如果要往數組裏添加元素,如下所示:

results=[]#integerof5elementsforiinrange(5): results.append(i**2) # 動態追加元素# 輸出:[0,1,4,9,16]

場景2:修改已有元素(必須用下標)

data= [10,20,30,40]data=300# 修改索引2的元素# 輸出:[10, 20, 300, 40]

7.類(Class)

·類定義(yi) :(代碼往左拉可以看到備注)

classTree: def __init__(self, Name, HGrowth, MaxH, MaxW, PEvergreen): self.__TreeName = Name # 樹木名稱(私有屬性) self.__HeightGrowth = HGrowth # 年生長高度(cm) self.__MaxHeight = MaxH # 最大生長高度(m) self.__MaxWidth = MaxW # 最大樹冠寬度(m) self.__Evergreen = PEvergreen # 是否常綠(布爾值)

類使用class關(guan) 鍵字定義(yi) ,__init__方法是類的構造函數,用來在創建對象時初始化實例變量。實例變量通過self訪問。

·獲取器(Getter)和設置器(Setter)方法

classTree: def __init__(self, Name, HGrowth, MaxH, MaxW, PEvergreen): self.__TreeName = Name self.__HeightGrowth = HGrowth self.__MaxHeight = MaxH self.__MaxWidth = MaxW self.__Evergreen = PEvergreen # Getter方法群 def GetTreeName(self): """獲取樹木品種名稱""" returnself.__TreeName def GetHeightGrowth(self): """獲取年生長高度(cm)""" returnself.__HeightGrowth def GetMaxHeight(self): """獲取理論最大高度(m)""" returnself.__MaxHeight def GetMaxWidth(self): """獲取理論最大樹冠寬度(m)""" returnself.__MaxWidth def IsEvergreen(self): """判斷是否為(wei) 常綠樹種""" returnself.__Evergreen # Setter方法群(含數據校驗) def SetHeightGrowth(self, HGrowth): """設置年生長高度(必須>=0)""" ifHGrowth >=0: self.__HeightGrowth = HGrowth else: raise ValueError("年生長高度不能為(wei) 負數") def SetMaxHeight(self, MaxH): """設置最大生長高度(必須>0)""" ifMaxH >0: self.__MaxHeight = MaxH else: raise ValueError("最大高度必須大於(yu) 0米")

8.異常處理

try:

File =open("Trees.txt")

exceptIOError:

print("Invalid file")

·解釋try用於(yu) 執行可能引發異常的代碼,except用於(yu) 捕獲並處理異常。

如果你不知道太多的exception可以這樣寫(xie)

defdivision(firstNumber, secondNumber):try: myAnswer = firstNumber // secondNumber print('Answer ', myAnswer)except: print('Divide by zero')division(12,3)division(10,0)

9.冒泡排序(Bubble Sort)

以下為(wei) 非efficient 的排序:

AL計算機中P4卷需要用到的python代碼要點

·解釋:冒泡排序算法通過不斷比較和交換相鄰元素,逐步將最大(或最小)元素冒泡到列表的一端,從(cong) 而完成排序。

10.搜索(二分查找)

def binary_search(data_to_find:int)->int: first=0 last=len(data_stored)-1 # 修正原始代碼的索引越界風險 # 主循環(保持左閉右閉區間) whilefirst<=last: mid=(first+last)//2 # 防溢出寫(xie) 法:first+(last-first)//2 # 三路比較邏輯 if data_stored[mid]==data_to_find: returnmid # 精確命中 elif data_stored[mid]>data_to_find: last=mid-1 # 收縮右邊界 else: first=mid+1 # 收縮左邊界 return-1 # 搜索空間耗盡未找到

·解釋:二分查找通過反複將搜索區間一分為(wei) 二來查找元素,直到找到目標元素或確定其不存在。

11.文件讀取

File =open(FileName,'r')

For line in file:

DataRead =line.strip()

File.close()

·解釋open()函數用於(yu) 打開文件,'r'表示隻讀模式,.read()方法讀取文件的全部內(nei) 容,.strip()去掉前後的空白字符。

12.文件讀取

File =open(FileName,'r')For line in file: DataRead = line.strip()File.close()

strip():去除首尾空格、換行符、製表符等更多知識點在P4視頻錄播課裏:掃描二維碼可以查看目錄。

【競賽報名/項目谘詢+微信:mollywei007】

下一篇

2025年AMC8放榜 2026年AMC8備考全攻略來襲!

你也可能喜歡

  • 暫無相關文章!

評論已經被關(guan) 閉。

插入圖片
返回頂部