Python 基础学习笔记
1. 变量、输入与输出
1 2 3 4 5 6 7 8
| name = "Tom" age = 20 price = 19.5 has_ticket = True
name = input("请输入姓名:") age = int(input("请输入年龄:")) print(f"{name},今年 {age} 岁")
|
= 是赋值,== 是判断相等。
input() 返回字符串;计算前用 int()、float() 转换。
str() 将数字转换成字符串。
print() 默认换行;end="" 可取消换行。
- 冒号后用缩进表示代码块,通常缩进 4 个空格。
2. 运算与条件判断
| 类型 |
常用写法 |
| 算术运算 |
+、-、*、/ |
| 取余 |
%,如 number % 2 == 0 判断偶数 |
| 比较运算 |
>、<、>=、<=、==、!= |
| 逻辑运算 |
and、or、not |
| 累加、累减 |
total += number、stock -= quantity |
1 2 3 4 5 6
| if score >= 90: print("优秀") elif score >= 60: print("及格") else: print("不及格")
|
if / elif / else:从上往下判断,只执行第一个满足条件的分支。
- 范围判断:
18 <= age <= 60。
- 多条件判断:
age >= 18 and has_ticket。
- 成绩分级默认成绩合法;需要检查范围时,先判断
0 <= score <= 100。
3. 循环
1 2 3
| total = 0 for number in range(1, 101): total += number
|
for:遍历一组数据或指定范围。
range(起点, 终点, 步长):包含起点,不包含终点。
range(1, 11) → 1~10。
range(2, 101, 2) → 2~100 的偶数。
1 2 3 4
| number = 10 while number > 0: print(number) number -= 1
|
while:条件成立就继续执行。
while True:持续循环,常用于菜单、猜数字、连续输入。
break:结束当前所在的循环。
- 嵌套循环:外层执行一次,内层执行完整一轮。
- 累加器、计数器通常在循环前初始化,循环内更新。
4. 列表 list
列表保存一组有顺序、可修改的数据,允许重复元素。
1 2 3 4 5 6 7
| numbers = [10, 20, 30, 40, 50]
numbers[0] numbers[-1] numbers[1:4] numbers[::2] numbers[::-1]
|
索引从 0 开始;切片包含起点,不包含终点。
| 操作 |
写法 |
含义 |
| 修改 |
numbers[0] = 100 |
修改指定位置 |
| 追加 |
numbers.append(60) |
添加到末尾 |
| 插入 |
numbers.insert(1, 15) |
在指定位置插入 |
| 按值删除 |
numbers.remove(20) |
删除第一个匹配值 |
| 按位置删除 |
numbers.pop(0) |
删除并返回该元素 |
| 删除末尾 |
numbers.pop() |
删除并返回最后一个元素 |
| 长度 |
len(numbers) |
元素个数 |
| 判断存在 |
20 in numbers |
返回布尔值 |
| 统计次数 |
numbers.count(20) |
出现次数 |
| 查找位置 |
numbers.index(20) |
第一次出现的索引 |
| 排序 |
numbers.sort() |
原列表升序排列 |
| 反转 |
numbers.reverse() |
原列表顺序反转 |
注意:sort()、reverse() 修改原列表,返回 None;反转不等于排序。
5. 列表处理套路
筛选:新建列表,保留符合条件的元素。
1 2 3 4
| result = [] for number in numbers: if number > 20: result.append(number)
|
同一套路也可用于删除所有指定值、筛选长单词、转换元素类型。
查找重复值,并避免重复记录:
1 2 3 4
| result = [] for number in numbers: if numbers.count(number) > 1 and number not in result: result.append(number)
|
删除所有指定元素:
1 2
| while 20 in numbers: numbers.remove(20)
|
统计:
1 2 3 4 5
| total = sum(numbers) average = total / len(numbers) largest = max(numbers) smallest = min(numbers)
|
手写最大值、最小值时,以第一个元素初始化,再遍历比较;不要随意用 0 或 100。
6. 字典 dict
字典通过“键 → 值”保存信息。同一个键只能对应一个值。
1 2 3 4 5 6 7 8 9
| student = {"name": "Tom", "age": 18, "score": 90}
student["name"] student["age"] = 19 student["city"] = "Tokyo" "name" in student student.get("email", "未填写") del student["age"] score = student.pop("score")
|
| 写法 |
用途 |
student.keys() |
获取所有键 |
student.values() |
获取所有值 |
student.items() |
获取所有键值对 |
1 2
| for key, value in student.items(): print(key, value)
|
in 判断的是键;判断值用 value in student.values()。
student[key]:键不存在会报错。
student.get(key):键不存在默认返回 None。
get() 的默认值只在键不存在时生效。
7. 列表与字典组合
1 2 3 4
| students = [ {"name": "Tom", "score": 80}, {"name": "Alice", "score": 95} ]
|
- 外层列表:保存多条记录。
- 内层字典:保存一条记录的多个字段。
students[0]["score"]:第一个学生的成绩。
查询:
1 2 3 4 5 6 7 8 9
| found = False for student in students: if student["name"] == target_name: print(student) found = True break
if not found: print("学生不存在")
|
常见任务:遍历展示、条件筛选、累计总分、统计人数、找最高分、修改库存。
菜单程序的结构:循环显示菜单 → 读取选择 → 执行功能 → 退出时 break。
8. 函数
函数将一项功能封装起来,减少重复代码。
1 2 3 4
| def add(a, b): return a + b
result = add(10, 20)
|
def:定义函数;定义后需要调用才会执行。
- 形参:定义时的
a, b;实参:调用时的 10, 20。
return:返回结果,并立即结束函数。
- 没写
return 或只写 return:返回 None。
print() 负责显示;return 让调用者拿到结果。
1 2 3 4 5
| def find_student(students, name): for student in students: if student["name"] == name: return student return None
|
函数分工:展示、查找、添加、修改、删除、统计;主循环负责选择和调用。
9. 变量作用域
1 2 3 4 5 6 7 8
| name = "Tom"
def test(): name = "Jack" print(name)
test() print(name)
|
- 局部变量通常只能在所在函数内使用。
- 同名局部变量不会自动修改全局变量。
- 函数内重新赋值全局变量,需要
global。
- 修改全局列表、字典的内容,通常不需要
global。
- 优先用参数传入数据、用返回值传出结果。
10. 默认参数与关键字参数
1 2 3 4 5 6
| def calculate_price(price, quantity=1, discount=1): return price * quantity * discount
calculate_price(100) calculate_price(100, 3) calculate_price(100, discount=0.8)
|
- 默认参数:调用时可以省略。
- 必填参数放前面,有默认值的参数放后面。
- 位置参数:按顺序对应。
- 关键字参数:按参数名对应,可以调整顺序。
- 混合调用时,普通位置参数放在关键字参数前面。
- 同一个参数不能重复传值。