Python程序设计完整复习要点(含实例)

  1. 数据类型核心特性

    • 不可变对象:字符串(如s = "Hello",无法直接修改s[0] = 'h')、元组(如(3, 9, 'h'),执行t[0] = 0会报错)、数字;可变对象:列表([1,2,3]可通过append(4)变为[1,2,3,4])、字典({'name':'Tom'}可修改['name']='Jerry')、集合({1,2}可通过add(3)变为{1,2,3}

    • 常见数据类型转换:int("123")返回123(字符串转整数)、str(123)返回"123"(数字转字符串)、float("3.14")返回3.14(字符串转浮点数)、list("abc")返回['a','b','c'](字符串转列表,按字符拆分),无double()函数

    • 列表与元组的区别:

      • 可变性:列表[1,2]可执行[1,2].append(3);元组(1,2)执行(1,2).append(3)报错

      • 语法形式:列表[1,2,3],元组(1,2,3),单个元素元组需写(5,)(而非(5)

      • 适用场景:列表存动态数据(如student_scores = [85,92,78],可随时添加新成绩);元组存固定数据(如point = (10,20),表示坐标不允许修改)

      • 成员方法:列表有sort()[3,1,2].sort()变为[1,2,3]),元组仅有count()(1,2,2,3).count(2)返回2

    • 布尔类型:仅True(真值,如1==1返回True)和False(假值,如1>2返回False)两个取值

    • 空对象区分:空字典dict(){},空集合set(),空列表[],注意{}不是空集合

    • 序列类型:列表[1,'a']、元组(1,'a')、字符串"ab"均为序列,支持[索引]和切片操作

  2. 变量与命名规则

    • 合法命名:user_name(含下划线)、_age(以下划线开头)、num123(含数字),区分大小写(Namename是两个不同变量)

    • 禁止规则:123num(以数字开头)、if(Python关键字)、a#b(含特殊字符)均非法

    • 运算符区别:x=5(赋值,将5赋给x)、x==5(比较,判断x是否等于5)、a or (b:=2)(海象运算符,在表达式中给b赋值2)

  3. 字符串操作

    • 定界符:'Hello'(单引号)、"Hello"(双引号)、'''Hello\nWorld'''(三引号,支持换行),[Hello](方括号不能作为字符串定界符)

    • 常用方法:

      • strip()"abc123".strip("c1")去除首尾的'c'和'1',返回"ab23"

      • upper()"Python".upper()返回"PYTHON"

      • count()"Hello Python! Python".count("Python")返回2

      • replace()"Python".replace("P","J")返回"Jython"

      • split()"hello world".split(" ")返回["hello","world"]

    • 字符串运算:"12"+"34"返回"1234"(拼接),"ab"*3返回"ababab"(重复),"e" in "hello"返回True(判断子串)

    • 切片操作:"hello"[1:3]返回"el"(从索引1到2),"hey"[1:]返回"ey"(从索引1到末尾),"hello"[:-1]返回"hell"(从开头到倒数第2个)

  4. 列表操作

    • 核心方法:

      • append()[1,2].append(3)变为[1,2,3](尾部添加)

      • pop()[1,2,3].pop()返回3,列表变为[1,2][1,2,3].pop(0)返回1,列表变为[2,3]

      • insert()[1,2,3].insert(0,0)变为[0,1,2,3](指定位置插入)

      • remove()[1,2,3].remove(2)变为[1,3](删除指定值)

    • 列表推导式:[x*2 for x in range(3)]遍历0,1,2,返回[0,2,4][x for x in [1,2,3,4] if x%2==0]筛选偶数,返回[2,4]

    • 列表拼接:[1,2] + [3,4]返回[1,2,3,4](生成新列表,原列表不变)

    • 索引访问:['hey', 3, '你好'][2]返回'你好'(正向索引),['hey', 3, '你好'][-1]返回'你好'(反向索引)

  5. 字典与集合操作

    • 字典核心特性:{'name':'Tom', 'age':18},键'name'不可重复(重复赋值会覆盖,如dict['name']='Jerry'),键不能是列表({[1]:2}报错),值可重复({'a':1, 'b':1}合法)

    • 字典常用方法:{'a':1, 'b':2}.keys()返回dict_keys(['a','b'])(所有键),{'a':1, 'b':2}.values()返回dict_values([1,2])(所有值)

    • 集合运算:{1,2,3} - {3,4,5}返回{1,2}(差集),{1,2} | {3,2}返回{1,2,3}(并集),{1,2} & {2,3}返回{2}(交集)

  6. 函数与lambda表达式

    • 函数定义:def add(a,b): return a+b(有返回值);def print_hello(): print("Hello")(无返回值,默认返回None

    • 函数调用:带默认参数的函数def f1(a,b=0,c=3),调用方式:

      • f1(5)a=5b=0c=3

      • f1(5,c=6)a=5b=0c=6

      • f1(b=1,c=6,a=2):参数顺序可调整

    • lambda表达式:add = lambda x,y: x+y,调用add(3,4)返回7(lambda x,y: x*y)(5,6)直接调用,返回30

    • 递归函数:斐波那契数列def fib(n): if n<=2: return n; return fib(n-1)+fib(n-2),调用fib(5)返回8(1,2,3,5,8)

    • 全局变量:x=10; def change(): global x; x=20(用global声明后,函数内可修改全局变量x)

  7. 循环与条件语句

    • 循环类型:

      • for循环:for x in "abc": print(x)依次打印abcfor i in range(5): print('*')打印5个*

      • while循环:i=1; while i<=3: print(i); i+=1打印123(需手动递增i,否则无限循环)

    • 循环控制:

      • breakfor i in range(5): if i==3: break; print(i)打印012(跳出循环)

      • continuefor i in range(5): if i==3: continue; print(i)打印0124(跳过当前次)

    • 条件结构:score=85; if score>=90: print('A') elif 80<=score<=89: print('B') else: print('C')(输出B

    • 嵌套循环:九九乘法表

      Python 复制代码
      for i in range(1,10):
          for j in range(1,i+1):
              print(f"{i}*{j}={i*j}", end=" ")
          print()
    • 三种程序结构:顺序结构(按顺序执行)、选择结构(if-elif-else)、循环结构(for/while

  8. 模块与库操作

    • 导入方式:import math(导入math库,调用math.sqrt(4));from math import sqrt(直接导入sqrt函数,调用sqrt(4));from math import *(导入所有函数,调用pow(2,3)

    • 扩展库安装:命令行执行pip install requests(安装requests库),也可使用conda install requests(Anaconda环境)

  9. 正则表达式

    • 基础匹配:\d匹配任意数字(如"a123b"中匹配123),^表示字符串开头(^abc匹配以abc开头的字符串),$表示字符串结尾(abc$匹配以abc结尾的字符串)

    • 量词含义:

      • *"a*b"匹配"b"(0次a)、"ab"(1次a)、"aab"(2次a)

      • +"a+b"匹配"ab"(1次a)、"aab"(2次a),不匹配"b"

      • ?"https?"匹配"http"(0次s)、"https"(1次s);"a.*?b"匹配"aab"中的"aab"(最短匹配)

      • {n,m}\d{11}匹配11位数字(如手机号13800138000);\d{2,4}匹配2-4位数字(如121231234

    • 原始字符串应用:

      • 正则表达式:r'[0-9].[0-9]'匹配小数(如3.1),无需写'[0-9]\.[0-9]'

      • 文件路径:r'C:\test\a.py'避免转义,无需写'C:\\test\\a.py'

    • 常用函数:re.findall(r'\d{3}', 'a12b345ccc678d90')返回['345','678'](查找所有3位数字);re.match(r'Python', 'testPython')返回None(从开头匹配,不匹配)

    • 模式示例:r'^[0-9][a-z][A-Z]$'匹配"3Az""8aB"(3位,数字+小写字母+大写字母),不匹配"2d3"(最后一位不是大写字母)

  10. 文件操作

    • open()函数参数:open('test.txt', 'r', encoding='utf-8'),其中file='test.txt'(文件路径)、mode='r'(只读模式)、encoding='utf-8'(编码格式)

    • 打开模式:

      • 文本模式:'r'(只读)、'w'(只写,覆盖已有文件)、'a'(追加,在文件末尾写入)、'x'(只写,文件已存在则报错)

      • 二进制模式:'rb'(二进制只读)、'wb'(二进制写入)、'xb'(二进制创建写入)

    • 路径表示:

      • 同级目录:'b.txt'(a.py和b.txt在同一目录)

      • 绝对路径:r'C:\test\b.txt'(Windows)、'/home/test/b.txt'(Linux)

    • 上下文管理:with open('test.txt', 'r') as f: content = f.read()(自动关闭文件,无需手动调用f.close()

  11. 迭代器与生成器

    • 迭代器特性:iter([1,2,3])生成迭代器,不能用[0]访问,需next(迭代器)取值(如it=iter([1,2]); next(it)返回1,再调用next(it)返回2);列表['hello',34,3.1]不是迭代器

    • 生成器创建:

      • 生成器函数:def gen(): yield 1; yield 2,调用gen()返回生成器对象

      • 生成器表达式:(x*3 for x in range(4))返回生成器,首次调用next()返回00*3

    • 惰性求值:gen = (x*2 for x in range(5))定义时不计算,调用list(gen)才生成[0,2,4,6,8]

    • range()函数:range(1,10)生成1-9(9个元素);range(8,5,-1)生成8,7,6(非空,bool(range(8,5,-1))返回True

  12. 运算符与表达式

    • 算术运算符:

      • //(整除):100//3=3310//3=37//2=3

      • %(取余):10%3=17%2=110%2=0

      • **(幂运算):3**2=93**1+2=52**0=1

    • 比较运算符:10 == 10.0返回True(值相等);10 is 10.0返回False(类型不同,内存地址不同);[1,2] == [1,2]返回True(值相等);[1,2] is [1,2]返回False(不同对象)

    • 求和相关:sum([18,9,35,7,22,41])返回132(列表总和);sum(map(int, str(123456)))计算1+2+3+4+5+6=21(各位数字和)

    • 特殊表达式:a=True; b=1; a or (b:=2); print(b)输出1aTrue,海象运算符不执行);a=False; a or (b:=2); print(b)输出2aFalse,执行赋值)

  13. 基础语法与标识符

    • 标识符规则:合法标识符以字母或下划线开头,可包含字母、数字、下划线,如he_llo_h123,非法标识符如123h(以数字开头)

    • 类定义:class Student: def __init__(self, name): self.name = name(用class关键字)

    • 异常处理:try: print(1/0) except ZeroDivisionError: print("除数不能为0")(捕获除零错误,程序不退出)

    • 序列索引:正向索引从0开始("hello"[0]='h'),反向索引从-1开始("hello"[-1]='o'

    • Python程序扩展名:主要有py(普通脚本)和pyw(无控制台窗口)两种

    • 八进制转换:八进制数32(前缀0o32)转换为十进制:3*8 + 2 = 26

    • 除法类型:1/2=0.5(浮点数除法),1//2=0(整数除法),print(type(1/2))输出<class 'float'>

    • 特殊语句:i=1; ++i在Python中不是自增,等同于+(+i)i仍为1(自增需用i+=1

  14. 编程实战要点

    • 列表统计:nums = [18,9,35,7,22,41]; total=sum(nums); max_num=max(nums); min_num=min(nums),输出"列表总和:132,最大值:41,最小值:7"

    • 文本处理:text = "Hello Python! Python is easy"; count=text.count("Python"); new_text=text.replace("Python","Java"),打印原文本、计数(2)、替换后文本("Hello Java! Java is easy"

    • 成绩等级判断:

      Python 复制代码
      score = int(input())
      if score >=90: grade="A"
      elif 80<=score<=89: grade="B"
      elif 60<=score<=79: grade="C"
      else: grade="D"
      print(f"成绩 {score} 的等级为:{grade}")

      输入85,输出"成绩 85 的等级为:B"

    • 满减活动计算:

      Python 复制代码
      x = int(input())
      if x <=0: print("输入错误!")
      elif x <100: cost=x
      elif x <300: cost=x-30
      elif x <500: cost=x-100
      else: cost=x-200
      print(f"您的消费金额为:{x},应付金额为:{cost}")

      输入450,输出"您的消费金额为:450,应付金额为:350"

    • 递归计算斐波那契数列:

      Python 复制代码
      n = int(input())
      def fib(n):
          if n<=2: return n
          return fib(n-1) + fib(n-2)
      print(fib(n))

      输入5,输出8(第5项为8)

    • 九九乘法表:通过嵌套for循环,内层range(1,i+1)控制列数,格式化输出每个乘法表达式,实现每行打印对应行数的乘法项

相关推荐
做萤石二次开发的哈哈2 小时前
萤石开放平台 萤石可编程设备 | 设备脚本自定义开发
开发语言·python·萤石云·萤石·萤石开放平台
liu****2 小时前
能源之星案例
人工智能·python·算法·机器学习·能源
程序员三藏2 小时前
软件测试环境搭建及测试过程
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
CCPC不拿奖不改名3 小时前
数据处理与分析:pandas基础+面试习题
开发语言·数据结构·python·面试·职场和发展·pandas
kkoral3 小时前
Python 肢体动作追踪项目(基于 MediaPipe + OpenCV)
python·opencv·meidiapipe
程序员杰哥3 小时前
2026软件测试面试宝典(含答案+文档)
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
寻星探路3 小时前
【算法进阶】滑动窗口与前缀和:从“和为 K”到“最小覆盖子串”的极限挑战
java·开发语言·c++·人工智能·python·算法·ai
木木木一3 小时前
Rust学习记录--C10 泛型,Trait,生命周期
python·学习·rust