1、python基础语法

Python基础语法

参考:豆包-跟着ai学习

  • 本章学习知识点

    • 注释(单行 #、多行 """""")、代码缩进规则(4 个空格)

    • 变量与命名规范(字母 / 数字 / 下划线,不能以数字开头,PEP8 规范)

    • 核心数据类型:

      • 基本类型:字符串(str)、整数(int)、浮点数(float)、布尔值(bool)
      • 容器类型:列表(list)、元组(tuple)、字典(dict)、集合(set)
      • 运算符:算术运算(+/-/*//%/**)、比较运算(==/!=/is)、逻辑运算(and/or/not)、赋值运算(+=/-=)

一、注释

注释是对代码的解释说明,不会被 Python 解释器执行,目的是让自己或他人看懂代码。

  1. 单行注释(最常用)

    • 语法:用 # 开头,# 后面的内容为注释

    • 位置:可单独占一行,或跟在代码后面(需间隔 2 个空格)

      python 复制代码
      # 这是单独一行的单行注释:定义用户姓名
      name = "小明"  # 这是行尾注释:变量存储用户姓名(代码与注释间隔2空格)
      age = 20  	  # 存储用户年龄,整数类型
  2. 多行注释(代码块说明)

    • 语法:用 3 对双引号 """ 注释内容 """ 包裹

    • 适用场景:注释多行代码、函数 / 类的功能说明(文档字符串)

      python 复制代码
      """
      这是多行注释的第一行
      第二行:用于说明下面的代码功能
      功能:计算两个数的和并打印结果
      """
      a = 10
      b = 20
      print(a + b)  # 输出 30
      
      # 文档字符串(特殊的多行注释,可通过 help() 查看)
      def add(x, y):
          """
          两数相加函数(文档字符串)
          :param x: 第一个加数
          :param y: 第二个加数
          :return: 两个数的和
          """
          return x + y
      
      help(add)  # 运行后会显示上面的文档字符串, 会直接输出整个函数
  3. 注释规范(PEP8 要求)

    • 单行注释尽量简洁,避免冗余
    • 行尾注释仅用于说明关键代码,不滥用
    • 复杂代码块必须加注释,说明 "为什么这么写"(而非 "写了什么")

二、代码缩进

Python 不像其他语言(如 Java、C)用 {} 划分代码块,而是用 缩进 来标识代码层级,缩进错误会直接导致语法错误。

  1. 缩进规则

    • 标准缩进:4 个空格(Python 官方推荐,IDE 中按 Tab 键可自动转换)

    • 同一层级的代码必须保持相同缩进(否则报错)

    • 不同层级的代码缩进不同(如 if 条件下的代码比 if 本身多 4 空格)

      bash 复制代码
      # 正确示例:if 语句的代码块缩进 4 空格
      name = "小红"
      if name == "小红":
          print("姓名匹配")  # 缩进 4 空格(与 if 同一层级的子代码)
          print("欢迎使用")  # 同一层级,保持 4 空格缩进
      else:
          print("姓名不匹配")  # else 与 if 同一层级,子代码仍缩进 4 空格
          
      # 示例2 
      if name == "小红":
          print("姓名匹配")  # 缩进 4 空格(与 if 同一层级的子代码)
      else:
        print("姓名不匹配")  # 只要不是同一个处理段内的 缩进不同也能执行,最好保持一致
      
      # 错误示例:缩进不一致
      if name == "小红":
          print("正确缩进")
        print("错误缩进")  # 缩进变成 2 空格,会报 SyntaxError
  2. 常见缩进场景

    • 条件语句:if-elif-else 的子代码

    • 循环语句:for/while 的子代码

    • 函数 / 类:def/class 定义后的子代码

      python 复制代码
      # 循环语句缩进
      for i in range(3):
          print(i)  # 缩进 4 空格,循环体内的代码
          if i == 1:
              print("这是第二个数")  # 嵌套缩进(再加 4 空格,共 8 空格)
      
      # 函数定义缩进
      def say_hello():
          print("Hello")  # 函数体内缩进 4 空格
          print("Python")
  3. 易错点提示

    1. 不要混合使用空格和 Tab 缩进(IDE 可能显示正常,但运行时会报错)
    2. 缩进层级要清晰,嵌套越多,缩进越多(建议嵌套不超过 3 层,否则代码可读性差)
    3. VS Code 中可开启 "显示空格" 功能(设置 → 搜索 "显示空格"),避免缩进错误

三、变量与命名规范

变量是指代一块内存地址的 "标签",用于存储数据(如数字、字符串),后续可通过变量名调用数据。

3.1、变量定义与赋值

  • 语法:变量名 = 值= 是赋值运算符,不是 "等于")

  • 特点:Python 是动态类型语言,无需声明变量类型,赋值时自动确定类型

    python 复制代码
    # 定义不同类型的变量
    name = "小李"  # 字符串类型变量
    age = 25  # 整数类型变量
    height = 1.75  # 浮点数类型变量
    is_student = True  # 布尔值类型变量
    
    # 变量重新赋值(类型可改变)
    age = 26  # 从 25 改为 26(同一变量名可存储不同值)
    is_student = False  # 从 True 改为 False(类型不变)
    height = "175cm"  # 从浮点数改为字符串(类型可改变)
    
    # 多变量同时赋值
    a, b, c = 10, 20, 30  # a=10,b=20,c=30
    x = y = 5  # x=5,y=5(同一值赋值给多个变量)

3.2、命名规范

  1. 必须遵守的规则

    1. 变量名只能包含:字母(a-z/A-Z)、数字(0-9)、下划线(_)

    2. 不能以数字开头(如 123name 非法)

    3. 不能使用 Python 关键字(如 ifforclass 等,见下方列表)

    4. 大小写敏感(nameName 是两个不同变量)

      python 复制代码
      # 合法变量名
      user_name = "张三"
      age18 = 18
      student_id = 1001
      _name = "匿名用户"
      
      # 非法变量名(运行会报错)
      # 1name = "错误"  # 以数字开头
      # user-name = "错误"  # 包含减号(只能用下划线)
      # if = 5  # 使用关键字 if
  2. Python 关键字列表(不可用作变量名)

    python 复制代码
    # 查看所有关键字
    import keyword
    print(keyword.kwlist)
    ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
  3. 推荐遵循的规范(PEP8 标准)

    1. 下划线命名法(变量 / 函数推荐):小写字母 + 下划线,如 user_nameorder_total

    2. 全大写(常量推荐):如 MAX_AGE = 120DB_HOST = "localhost"(语法无强制,仅规范)

    3. 见名知意:变量名要体现存储的数据含义,如 age 存储年龄,user_list 存储用户列表

    4. 避免单字母变量(除了临时变量如 ij 用于循环)

      python 复制代码
      # 推荐命名
      user_age = 30  # 见名知意,下划线命名
      product_price = 99.9  # 清晰表达"商品价格"
      MAX_RETRY = 3  # 全大写表示常量(最大重试次数)
      
      # 不推荐命名
      a = 30  # 不知道存储的是什么
      u_n = "李四"  # 缩写不清晰
      ProductPrice = 99.9  # 驼峰体(Python 中变量不推荐)

四、核心数据类型

Python 有 8 种核心数据类型,我们先掌握最常用的 4 种基本类型 + 4 种容器类型,覆盖 90% 基础开发场景。

4.1、基本类型(存储单一值)

字符串(str)、整数(int)、浮点数(float)、布尔值(bool)

  1. 字符串(str): 文本数据

    • 定义:用单引号 ' '、双引号 " " 或三引号 """ """ 包裹的文本

    • 特点:不可修改(修改需创建新字符串)

    • 常用操作:拼接(+)、重复(*)、获取长度(len()

      python 复制代码
      # 定义字符串
      s1 = '单引号字符串'
      s2 = "双引号字符串"
      s3 = """三引号字符串(支持多行)
      第一行
      第二行"""
      
      # 常用操作
      print(s1 + s2)  	# 拼接:单引号字符串双引号字符串
      print(s1 * 2)  		# 重复:单引号字符串单引号字符串
      print(len(s2))  	# 长度:6(统计字符个数)
      
      # 字符串索引(获取单个字符,从 0 开始)
      print(s1[0])  # 输出 '单'(第 1 个字符)
      print(s1[-1])  # 输出 '串'(最后 1 个字符)
      
      # 注意:字符串不可修改(以下代码报错)
      # s1[0] = '双'  # TypeError: 'str' object does not support item assignment
  2. 整数(int): 整数数字

    • 定义:没有小数部分的数字(正整数、负整数、0)

    • 范围:无大小限制(可存储极大的整数)

    • 常用操作:算术运算(加减乘除等)

      python 复制代码
      # 定义整数
      num1 = 10  # 正整数
      num2 = -5  # 负整数
      num3 = 0  # 零
      num4 = 999999999999999999  # 极大整数(Python 支持)
      
      # 常用操作
      print(num1 + num2)  # 加法:5
      print(num1 * num3)  # 乘法:0
      print(num1 **2)  # 幂运算:100(10的2次方)
      print(10 // 3)  # 取整除:3(向下取整)
  3. 浮点数(float): 小数数字

    • 定义:带有小数部分的数字(注意:浮点数可能有精度误差)

    • 常用场景:身高、体重、价格等需要小数的场景

      python 复制代码
      # 定义浮点数
      f1 = 1.23
      f2 = 3.14159
      f3 = -0.5
      
      print(f1+f2)        # 4.371589999999999
      print(f1-f2)        # -1.91159
      print(f2*2)         # 6.28318
      
      # 注意:浮点数精度误差(避免直接比较浮点数是否相等)
      print(0.1+0.2)      # 0.30000000000000004
      # 正确比较方式:判断差值是否小于极小值
      print(abs(0.1 + 0.2 - 0.3) < 1e-9)  # 输出 True
  4. 布尔值(bool): 逻辑判断

    • 定义:只有两个值:True(真)和 False(假)

    • 适用场景:条件判断(if 语句、循环条件等)

    • 转换规则:0、空字符串、空容器 → False;非 0、非空 → True

      python 复制代码
      # 定义布尔值
      b1 = True
      b2 = False
      
      # 逻辑运算
      print(b1 and b2)  # 与运算:False(都真才真)
      print(b1 or b2)   # 或运算:True(一真就真)
      print(not b1)     # 非运算:False(取反)
      
      # 类型转换(bool() 函数)
      print(bool(0))      # False(0 → 假)
      print(bool(10))     # True(非 0 → 真)
      print(bool(""))     # False(空字符串 → 假)
      print(bool("abc"))  # True(非空字符串 → 真)
      print(bool([]))     # False(空列表 → 假)

4.2、容器类型(存储多个值)

列表(list),元组(tuple),字典(dict),集合(set)

  1. 列表(list):有序、可修改的集合

    • 定义:用 [] 包裹,元素用逗号分隔,元素类型可不同

    • 特点:有序(元素位置固定)、可修改(增删改元素)

    • 常用操作:索引、切片、添加、删除

      python 复制代码
      # 定义列表
      list1 = [1, 2, 3, 4]  # 整数列表
      list2 = ["a", "b", "c"]  # 字符串列表
      list3 = [1, "hello", True, 3.14]  # 混合类型列表
      list4 = []  # 空列表
      
      # 常用操作
      # 1. 索引获取元素(从 0 开始)
      print(list1[0])  # 输出 1
      print(list2[-1])  # 输出 'c'(最后一个元素)
      
      # 2. 切片获取子列表(左闭右开)
      print(list1[1:3])  # 输出 [2,3](第 2 到第 3 个元素)
      print(list1[:2])   # 输出 [1,2](从开头到第 2 个元素)
      print(list1[2:])   # 输出 [3,4](从第 3 个元素到结尾)
      
      # 3. 修改元素(列表可修改)
      list1[0] = 100
      print(list1)  # 输出 [100, 2, 3, 4]
      
      # 4. 添加元素
      list1.append(5)  # 末尾添加:[100,2,3,4,5]
      list1.insert(2, 200)  # 索引 2 处添加:[100,2,200,3,4,5]
      
      # 5. 删除元素
      list1.remove(3)  # 删除值为 3 的元素:[100,2,200,4,5]
      del list1[1]     # 下标从0开始,删除索引 1 的元素:[100,200,4,5]
      
      # 6. 其他操作
      print(len(list1))  # 长度:4
      print(sorted(list1))  # 排序:[4, 100, 200, 5](返回新列表)
  2. 元组(tuple):有序、不可修改的集合

    • 定义:用 () 包裹,元素用逗号分隔(单个元素需加逗号,如 (1,)

    • 特点:有序、不可修改(创建后不能增删改元素)、比列表更节省内存

    • 适用场景:存储固定不变的数据(如坐标、配置项)

      python 复制代码
      # 定义元组
      t1 = (1, 2, 3)  					# 普通元组
      t2 = ("a", "b")  					# 字符串元组
      t3 = (1, "hello", 3.14)  			# 混合类型
      t4 = (5,)  							# 单个元素的元组(必须加逗号,否则是整数 5)
      t5 = ()  							# 空元组
      
      # 常用操作(与列表类似,但不能修改)
      print(t1[0])  	 					# 索引获取:1
      print(t1[1:3])  					# 切片:(2,3)
      print(len(t2))  					# 长度:2
      
      # 注意:元组不可修改(以下代码报错)
      # t1[0] = 100  # TypeError: 'tuple' object does not support item assignment
      # t1.append(4)  # AttributeError: 'tuple' object has no attribute 'append'
      
      # 元组的应用场景:函数返回多值
      def get_user():
          return "小明", 20  			  # 本质是返回元组 (("小明", 20))
      
      name, age = get_user()  			# 解包元组:name="小明",age=20
      print(name, age)  					# 输出 小明 20
  3. 字典(dict):键值对的无序集合

    • 定义:用 {} 包裹,元素是 key: value 键值对,键唯一且不可变

    • 特点:无序(Python 3.7+ 实际有序)、通过键快速查找值(效率高)

    • 键的要求:必须是不可变类型(字符串、整数、元组),不能是列表、字典

      python 复制代码
      # 定义字典
      dict1 = {"name": "小红", "age": 22, "is_student": True}  # 常用格式
      dict2 = {}  # 空字典
      dict3 = dict(name="小李", age=25)  # 用 dict() 函数创建
      
      # 常用操作
      # 1. 通过键获取值(两种方式)
      print(dict1["name"])  				# 输出 '小红'(键不存在会报错)
      print(dict1.get("age"))  			# 输出 22(键不存在返回 None,推荐使用)
      print(dict1.get("gender", "女"))    # 键不存在返回默认值 '女'
      
      # 2. 添加/修改键值对(键存在则修改,不存在则添加)
      dict1["gender"] = "女"  # 添加:{"name":"小红", "age":22, "is_student":True, "gender":"女"}
      dict1["age"] = 23  					# 修改:age 从 22 改为 23
      
      # 3. 删除键值对
      del dict1["is_student"]  			# 删除键为 is_student 的元素
      dict1.pop("gender")  				# 弹出键为 gender 的元素(返回值)
      
      # 4. 遍历字典
      for key in dict1:
          print(key, dict1[key])  		# 遍历键,输出  name 小红  age 23
      
      for key, value in dict1.items():
          print(key, value)  # 遍历键值对(推荐)
      
      # 5. 其他操作
      print(len(dict1))  # 长度:2(键值对个数)
      print(dict1.keys())  # 所有键:dict_keys(['name', 'age'])
      print(dict1.values())  # 所有值:dict_values(['小红', 23])
  4. 集合(set):无序、无重复的集合

    • 定义:用 {} 包裹(空集合不能用 {},需用 set()),元素用逗号分隔

    • 特点:无序、无重复元素、支持集合运算(交集、并集、差集)

    • 适用场景:去重、数据对比(如两个列表的共同元素)

      python 复制代码
      # 定义集合
      set1 = {1, 2, 3, 4}  # 普通集合
      set2 = {3, 4, 5, 6}  # 普通集合
      set3 = set([1, 2, 2, 3])  # 列表转集合(自动去重)→ {1,2,3}
      set4 = set()  # 空集合(不能用 {},{} 是空字典)
      
      # 常用操作
      # 1. 去重(集合自动去重)
      list_with_duplicate = [1, 2, 2, 3, 3, 3]
      set_without_duplicate = set(list_with_duplicate)
      print(set_without_duplicate)  # 输出 {1,2,3}
      list_without_duplicate = list(set_without_duplicate)  # 集合转列表
      
      # 2. 集合运算
      print(set1 & set2)  # 交集:{3,4}(两个集合都有的元素)
      print(set1 | set2)  # 并集:{1,2,3,4,5,6}(两个集合所有元素,去重)
      print(set1 - set2)  # 差集:{1,2}(set1 有但 set2 没有的元素)
      print(set1 ^ set2)  # 对称差集:{1,2,5,6}(两个集合互不相同的元素)
      
      # 3. 添加/删除元素
      set1.add(5)  # 添加元素:{1,2,3,4,5}
      set1.remove(5)  # 删除元素(元素不存在报错)
      set1.discard(6)  # 删除元素(元素不存在不报错,推荐)
      
      # 4. 注意:集合无序,不能通过索引获取元素(以下代码报错)
      # print(set1[0])  # TypeError: 'set' object is not subscriptable

4.3、类型转换(常用函数)

  • 不同类型之间可通过内置函数转换,解决数据类型不匹配问题:

    函数 功能 示例
    str(x) 转换为字符串 str(123) → "123"
    int(x) 转换为整数(字符串需是纯数字) int("123") → 123int(3.9) → 3
    float(x) 转换为浮点数 float("3.14") → 3.14float(10) → 10.0
    bool(x) 转换为布尔值 bool(0) → Falsebool("abc") → True
    list(x) 转换为列表 list((1,2,3)) → [1,2,3]list("abc") → ["a","b","c"]
    tuple(x) 转换为元组 tuple([1,2,3]) → (1,2,3)
    set(x) 转换为集合(去重) set([1,2,2,3]) → {1,2,3}
    dict(x) 转换为字典(需是键值对序列) dict([("name","小明"), ("age",20)]) → {"name":"小明", "age":20}
  • 示例

    python 复制代码
    # 实战示例:用户输入转换
    age_input = input("请输入年龄:")  # input() 返回字符串
    age = int(age_input)  # 转换为整数
    print(age + 1)  # 可正常进行算术运算
    
    # 列表转集合去重
    scores = [90, 85, 90, 78, 85]
    unique_scores = list(set(scores))
    print(unique_scores)  # 输出 [90,85,78](顺序不确定)

五、运算符

Python 支持 4 类常用运算符:算术运算、比较运算、逻辑运算、赋值运算。

  1. 算术运算符(数值计算)

    • 参数

      运算符 描述 示例(a=10,b=3)
      + 加法 a + b = 13
      - 减法 a - b = 7
      * 乘法(字符串可重复) a * b = 30"a"*3 = "aaa"
      / 除法(返回浮点数) a / b = 3.333...
      % 取模(求余数) a % b = 1(10 除以 3 余 1)
      ** 幂运算(x 的 y 次方) a**b = 1000(10 的 3 次方)
      // 取整除(向下取整) a // b = 3-10//3 = -4
    • 示例

      python 复制代码
      a = 10
      b = 3
      
      print(a + b)  # 13
      print(a / b)  # 3.3333333333333335
      print(a % b)  # 1(常用于判断奇偶:num%2 == 0 是偶数)
      print(a **2)  # 100(平方)
      print(b **3)  # 27(立方)
      print(10 // 3)  # 3
      print(-10 // 3)  # -4(向下取整,不是 -3)
      
      # 字符串特殊用法:* 重复
      print("Python" * 3)  # 输出 "PythonPythonPython"
  2. 比较运算符(逻辑判断)

    • 用于比较两个值的大小或相等性,返回布尔值(True/False):

      运算符 描述 示例(a=10,b=3)
      == 等于(比较值是否相等) a == b → False10 == 10 → True
      != 不等于 a != b → True
      > 大于 a > b → True
      < 小于 a < b → False
      >= 大于等于 a >= 10 → True
      <= 小于等于 b <= 2 → False
      is 身份判断(比较内存地址) a is b → Falsec=10a is c → True(小整数缓存)
      is not 身份不相等 a is not b → True
    • 示例

      python 复制代码
      a = 10
      b = 3
      c = 10
      d = "10"
      
      print(a == b)  # False
      print(a == c)  # True(值相等)
      print(a == d)  # False(类型不同,值也不同)
      print(a is c)  # True(a 和 c 指向同一内存地址,小整数缓存)
      print(a is d)  # False(类型不同,内存地址不同)
      
      # 字符串比较(按字符编码顺序)
      print("apple" < "banana")  # True('a' 的编码小于 'b')
      
      # 列表比较(按元素顺序逐一比较)
      print([1,2,3] < [1,2,4])  # True(前两个元素相等,第三个 3 < 4)
  3. 逻辑运算符(组合判断)

    • 用于组合多个布尔值,返回布尔值,支持 "短路特性"(优化效率):

      运算符 描述 短路特性(左值决定结果时,不计算右值) 示例(a=10,b=3)
      and 逻辑与(都真才真) 左为 False 时,直接返回 False (a>b) and (a<20) → True
      or 逻辑或(一真就真) 左为 True 时,直接返回 True (a<b) or (a>5) → True
      not 逻辑非(取反) 无短路特性 not (a>b) → False
    • 示例

      python 复制代码
      a = 10
      b = 3
      
      # and 示例:两个条件都满足才为真
      print(a > 5 and b < 5)  # True(10>5 且 3<5)
      print(a > 15 and b < 5)  # False(10>15 为假,短路,不计算后面)
      
      # or 示例:满足一个条件就为真
      print(a > 15 or b < 5)  # True(3<5 为真,短路,不计算前面)
      print(a < 5 or b > 5)  # False(两个条件都为假)
      
      # not 示例:取反
      print(not (a > b))  # False(a>b 为真,取反为假)
      print(not "")  # True(空字符串为假,取反为真)
      
      # 复杂组合(优先级:not > and > or)
      print(not a > 15 and b < 5 or a < 5)  # True(先算 not,再算 and,最后算 or)
  4. 赋值运算符(简化赋值)

    • 参数

      运算符 等价写法 示例(a=10)
      = 基础赋值 a = 10
      += a = a + x a += 5 → 15
      -= a = a - x a -= 3 → 7
      *= a = a * x a *= 2 → 20
      /= a = a / x a /= 4 → 2.5
      %= a = a % x a %= 3 → 1
      **= a = a **x a**= 2 → 100
      //= a = a //x a//= 3 → 3
    • 示例

      python 复制代码
      a = 10
      
      a += 5  # 等价于 a = a +5 → 15
      print(a)  # 15
      
      a *= 2  # 等价于 a = a *2 → 30
      print(a)  # 30
      
      a //= 3  # 等价于 a = a //3 → 10
      print(a)  # 10
      
      # 字符串也支持 +=
      s = "Hello"
      s += " Python"
      print(s)  # 输出 "Hello Python"

六、综合实战:用户信息管理小脚本

  • 示例

    python 复制代码
    """
    用户信息管理脚本
    功能:添加用户、查询用户、显示所有用户
    技术点:变量、列表、字典、条件判断、循环、输入输出、注释
    """
    
    # 定义存储用户信息的列表(容器:列表存储字典)
    users = []
    
    # 循环显示菜单
    while True:
        print("\n===== 用户信息管理系统 =====")
        print("1. 添加用户")
        print("2. 查询用户")
        print("3. 显示所有用户")
        print("5. 删除用户")
        print("6. 退出系统")
        
        # 获取用户选择(输入转换为整数)
        choice = input("请输入操作编号(1-4):")
        if not choice.isdigit():  # 判断输入是否为数字
            print("输入错误!请输入 1-4 之间的数字。")
            continue
        choice = int(choice)
        
        # 1. 添加用户
        if choice == 1:
            name = input("请输入用户名:")
            age_input = input("请输入年龄:")
            # 验证年龄是否为整数
            if not age_input.isdigit():
                print("年龄输入错误!请输入整数。")
                continue
            age = int(age_input)
            gender = input("请输入性别:")
            
            # 创建用户字典,添加到列表
            user = {"name": name, "age": age, "gender": gender}
            users.append(user)
            print(f"用户 {name} 添加成功!")
        
        # 2. 查询用户
        elif choice == 2:
            query_name = input("请输入要查询的用户名:")
            found = False  # 标记是否找到用户
            for user in users:
                if user["name"] == query_name:
                    print(f"\n找到用户:")
                    print(f"姓名:{user['name']}")
                    print(f"年龄:{user['age']}")
                    print(f"性别:{user['gender']}")
                    found = True
                    break
            if not found:
                print(f"未找到用户 {query_name}")
        
        # 3. 显示所有用户
        elif choice == 3:
            if not users:  # 判断列表是否为空
                print("暂无用户信息!")
                continue
            print("\n所有用户信息:")
            for idx, user in enumerate(users, start=1):  # 枚举,索引从 1 开始
                print(f"\n用户 {idx}:")
                print(f"姓名:{user['name']}")
                print(f"年龄:{user['age']}")
                print(f"性别:{user['gender']}")
        
        # 4. 退出系统
        elif choice == 4:
            print("感谢使用,再见!")
            break
    
        # 5. 删除用户
        elif choice == 5:
            delete_name = input("请输入要删除的用户名:")
            found = False  # 标记是否找到用户
            for user in users:
                if user["name"] == delete_name:
                    users.remove(user)
                    print(f"用户 {delete_name} 删除成功!")
                    found = True
                    break
            if not found:
                print(f"未找到用户 {delete_name}")
        
        # 输入其他数字
        else:
            print("输入错误!请输入 1-4 之间的数字。")
  • 练习

    python 复制代码
    # 1、使用while循环输入 1 2 3 4 5 6 8 9 10
    # 2、求1-100的所有数的和
    # 3、输出 1-100 内的所有奇数
    # 4、输出 1-100 内的所有偶数
    # 5、求1-2+3-4+5 ... 99的所有数的和
    # 6、用户登陆(三次机会重试)
    # 7、九九乘法表
  • 实战目标

    • 运行脚本,体验所有功能(添加、查询、显示、退出)
    • 分析代码中用到的基础语法(注释、缩进、变量、数据类型、运算符、条件 / 循环)
    • 尝试修改脚本:添加 "删除用户" 功能(提示:遍历列表找到用户,用 remove() 删除)

七、常见易错点总结

  1. 缩进错误:同一层级代码缩进不一致,或混合空格和 Tab
  2. 字符串不可修改:尝试通过索引修改字符串会报错
  3. 字典键错误:通过 dict["key"] 获取不存在的键会报错,推荐用 dict.get("key")
  4. 浮点数精度:避免直接比较浮点数是否相等,用差值判断
  5. 集合无序:不能通过索引获取集合元素,遍历顺序不确定
  6. 变量命名:关键字、数字开头、特殊字符会导致语法错误
  7. 输入类型:input() 返回字符串,需手动转换为整数 / 浮点数才能进行数值运算

按照本手册逐节学习,结合实战代码练习,就能扎实掌握 Python 基础语法,为后续进阶(函数、模块、面向对象)打下坚实基础!

相关推荐
强化学习与机器人控制仿真2 小时前
RSL-RL:开源人形机器人强化学习控制研究库
开发语言·人工智能·stm32·神经网络·机器人·强化学习·模仿学习
百***48072 小时前
【Golang】slice切片
开发语言·算法·golang
q***92512 小时前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang
仟濹2 小时前
【Java 基础】面向对象 - 继承
java·开发语言
ituff2 小时前
微软认证考试又免费了
后端·python·flask
郝学胜-神的一滴2 小时前
Linux命名管道:创建与原理详解
linux·运维·服务器·开发语言·c++·程序人生·个人开发
2501_941623323 小时前
C++高性能网络服务器与epoll实战分享:大规模并发连接处理与事件驱动优化经验
开发语言·php
晚风(●•σ )3 小时前
C++语言程序设计——11 C语言风格输入/输出函数
c语言·开发语言·c++
likuolei3 小时前
XML 元素 vs. 属性
xml·java·开发语言