-
常规变量类型
系统自动检测类型
a = 1 #integer b = "abc" #string c = True #boolean
-
各类型数组初始化
a = [0] * 10 #整数组,长度10,初始为0 b = [""] * 10 #字符串数组 c = [None] * 10 #空数组(常用于 Class)
-
二维数组初始化
#创建row行col列的二维数组 arr = [[0 for _ in range(col)] for _ in range(rol)] brr = [["" for _ in range(col)] for _ in range(rol)] crr = [[None for _ in range(col)] for _ in range(rol)]
-
日期
from datetime import date #非标准库,因此需要导入 d = date(2025, 3, 1) #创建日期对象,如date(2025, 3, 1) print(d.year, d.month, d.day) #date三个属性:year, month, day
-
全局变量声明
global Animals #声明全局数组 Animals = [""] * 10 #存储10个动物名称的数组,必须与第一行分开写
-
全局变量函数调用
def function(): global Animals #若要调用并操作要写这一行 pass
-
类型注释(CIE要求)
QueueArray = [] #array of string HeadPointer = 0 #integer
-
类型检测
·使用type()函数
a = 1 b = "" type(a) is int #判断a是否为int type(b) is not str #判断b是否不为str
-
常规操作
a, b = b, a #交换 a is b #是否同一地址 a = int(a) #转换为 int b = str(b) #转换为 str
运算符:
加法:+
减法:-
乘法:*
除法:/
整除://
求余:%
求幂:**
-
字符串
len(s) #长度 s += "a" #追加 "a" in s #判断是否包含 s.find("a") #找索引,不存在返回 -1 s.index("a") #找索引,不存在报错 s[1:3], s[1:], s[:3] #切片 f"my name is {name}" #f-string 格式化 s.strip() #去除首尾空白 s.casefold() #忽略大小写,也可以统一用lower() s.lower() #返回全小写
-
数组
arr.append(x) #追加 del arr[2] #删除某位置 a in arr #是否存在 arr[i] = a #修改
-
for 循环
for i in range(num): #循环num次 pass for i in range(start, end): #循环end-start次,包start不包end pass for i in range(start, end, step): #执行循环,从start至end,步长为step(P4不常考) pass
嵌套:
for Row in range(1, 3): #行范围 for Col in range(1, 9): #列范围 pass
-
while 循环
while condition: #只要condition成立 pass
注:Python无do后置条件循环 ·死循环用法(用于暂时写不出具体条件)
while True: pass if condition: break
-
基本定义
def function(parameter): #依旧自动检测参数类型,类型与操作不匹配会报错 return 1
-
函数嵌套
def a(x): def b(y): pass return b(x)
-
主函数写法 方法1:直接写 方法2:
def main(): pass if __name__ == "__main__": #函数结束后在末尾加上这两行 main()
-
定义与构造函数
class Name: #类名 def __init__(self, aa, bb, cc): #构造器 self.a = aa #公有属性 self.__b = bb #私有属性前面加__ self.__c = cc def funa(): #定义其他函数,但必须加self传参,无其他传参也得加 pass def geta(self): #常见getter return self.a def seta(self, x): #常见setter self.a = x
-
继承
class Names(Name): #括号内为继承的父类 def __init__(self, a, b): super().__init__(a) #调用父类构造器 self.b = b
-
重写方法
class A: def f(self): pass class B(A): #直接写,系统直接覆盖 def f(self): pass
-
对象数组
CharacterArray = [None] * 5 CharacterArray[0] = Character("Victory")
-
读取文件
def ReadData(): try: with open("Data.txt", "r") as f: #读取文件名,r为只读模式,w为写模式,with后自动关闭文件 DataArray = f.read().splitlines() #按行读取,执行一次读取一行 Data = f.readline().strip() #读一行并去掉空白首尾 return DataArray except IOError: print("文件未找到") return []
-
逐行读取 若不知道有多少行/一次要读多行:
file = open('D:\Sunny\计算机\Python语法考点.txt', "r", encoding="utf-8") #若文件不在源代码同级文件夹内需要写出完整路径 while True: s = file.readline() if not s: break print(s.strip()) file.close()
函数主体示例
def recursion(a):
if base:
return 1
return recursion(a - 1)
例:二分查找
def BinarySearch(arr, low, high, target):
if high >= low:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
return BinarySearch(arr, low, mid - 1, target)
else:
return BinarySearch(arr, mid + 1, high, target)
return -1
-
捕获异常
try: #常规操作 Answer = Num1 / (Num2 - 6) except ZeroDivisionError: #异常1 print("除数不能为零") except Exception as e: #异常2 print(f"错误: {e}")
-
手动抛出
raise TypeError
-
队列实现
Queue = [""] * 50 #存储50个字符串 HeadPointer, TailPointer = -1, 0 #队首指针(初始-1)队尾指针(初始0) def Enqueue(item): #入队函数 global TailPointer, HeadPointer if TailPointer >= len(Queue): return -1 #队列已满 Queue[TailPointer] = item TailPointer += 1 if HeadPointer == -1: #首次入队 HeadPointer = 0 return 1
-
随机数生成
import random ArrayData[x][y] = random.randint(1, 100) #生成1-100的随机整数
-
冒泡排序
def BubbleSort(ArrayData): n = len(ArrayData) for i in range(n-1): for j in range(0, n-i-1): if ArrayData[j] > ArrayData[j+1]: ArrayData[j], ArrayData[j+1] = ArrayData[j+1], ArrayData[j] return ArrayData