AL计算机中P4卷需要用到的python代码要点

由于P2考试使用的是伪代码,很多同学找到P4时对python代码不熟悉,因此我特地总结了P4卷需要用到的python代码要点。

1.全局变量

示例global DataStored

global关键字用于声明一个全局变量,使其在函数内外都可以访问和修改。

·global不能在global同一行赋值

·global在各个函数里如果需要用到,则每个函数都要global一遍

2.输入处理

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

input()函数用于获取用户输入,返回的是字符串类型。如果需要进行数值运算,需要使用int()将其转换为整数。

输入时做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循环用于遍历序列或范围。range(start, stop)用于生成一系列数值。

·while循环

owhile Valid == False:

owhile循环在条件为True时不断执行,直到条件变为False

虽然break可以中途退出循环,但是在P4考试中最好不要用,纵观所有的markscheme,都没有用到break语句

4.函数

·定义函数

defInitialise():globalDataStoredglobalNumberItems

使用def关键字定义函数,后跟函数名和括号。函数中的代码在调用时执行。

·返回值:

o return MidValue

o解释:return语句用于返回函数的值。切记和print语句区分开!!!

比如以下真题里,很多人以为return 就是print,实际这道题既要求print,也要求return.

AL计算机中P4卷需要用到的python代码要点

5.条件判断(if-else)

ifNumberItems >0andNumberItems <21:

Valid =True

解释if语句根据条件是否为真来执行相应的代码。可以使用else语句处理条件不成立时的情况。

6.列表

DataStored=[]

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

·解释:列表是可变的序列,用于存储多个元素。.append()方法将元素添加到列表的末尾。

往数组里添加内容什么时候用append ,什么时候采用数组+下标的方式

场景1:动态扩展列表(优先用append()

p4没有要求初始化,我们就不初始化,不初始化怎么定义数组呢,

比如: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)

·类定义:(代码往左拉可以看到备注)

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关键字定义,__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): """判断是否为常绿树种""" returnself.__Evergreen # Setter方法群(含数据校验) def SetHeightGrowth(self, HGrowth): """设置年生长高度(必须>=0)""" ifHGrowth >=0: self.__HeightGrowth = HGrowth else: raise ValueError("年生长高度不能为负数") def SetMaxHeight(self, MaxH): """设置最大生长高度(必须>0)""" ifMaxH >0: self.__MaxHeight = MaxH else: raise ValueError("最大高度必须大于0米")

8.异常处理

try:

File =open("Trees.txt")

exceptIOError:

print("Invalid file")

·解释try用于执行可能引发异常的代码,except用于捕获并处理异常。

如果你不知道太多的exception可以这样写

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

9.冒泡排序(Bubble Sort)

以下为非efficient 的排序:

AL计算机中P4卷需要用到的python代码要点

·解释:冒泡排序算法通过不断比较和交换相邻元素,逐步将最大(或最小)元素冒泡到列表的一端,从而完成排序。

10.搜索(二分查找)

def binary_search(data_to_find:int)->int: first=0 last=len(data_stored)-1 # 修正原始代码的索引越界风险 # 主循环(保持左闭右闭区间) whilefirst<=last: mid=(first+last)//2 # 防溢出写法: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 # 搜索空间耗尽未找到

·解释:二分查找通过反复将搜索区间一分为二来查找元素,直到找到目标元素或确定其不存在。

11.文件读取

File =open(FileName,'r')

For line in file:

DataRead =line.strip()

File.close()

·解释open()函数用于打开文件,'r'表示只读模式,.read()方法读取文件的全部内容,.strip()去掉前后的空白字符。

12.文件读取

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

strip():去除首尾空格、换行符、制表符等更多知识点在P4视频录播课里:扫描二维码可以查看目录。

【竞赛报名/项目咨询+微信:mollywei007】

下一篇

2025年AMC8放榜 2026年AMC8备考全攻略来袭!

你也可能喜欢

  • 暂无相关文章!

评论已经被关闭。

插入图片
返回顶部