Python基础笔记
1. Python简介
Python是一种高级编程语言,具有简洁明了的语法和强大的功能。
特点
- 简洁易读:语法接近自然语言
- 跨平台:可在Windows、macOS、Linux上运行
- 丰富的标准库:内置大量实用模块
- 强大的社区支持:丰富的第三方库
2. 基本语法
注释
# 单行注释
"""
多行注释
可以跨多行
"""
变量和赋值
# 变量赋值
name = "张三"
age = 25
height = 1.75
is_student = True
3. 数据类型
基本数据类型
数字类型
# 整数
x = 10
y = -5
# 浮点数
pi = 3.14159
temperature = -2.5
# 复数
z = 3 + 4j
字符串
# 字符串定义
name = "Python"
description = '一种编程语言'
multiline = """
这是一个
多行字符串
"""
# 字符串操作
text = "Hello World"
print(len(text)) # 长度
print(text.upper()) # 大写
print(text.lower()) # 小写
print(text.split()) # 分割
print(text.replace("World", "Python")) # 替换
字符串格式化
name = "张三"
age = 25
# f-string(推荐)
message = f"我叫{name},今年{age}岁"
# format方法
message = "我叫{},今年{}岁".format(name, age)
message = "我叫{name},今年{age}岁".format(name=name, age=age)
# %格式化
message = "我叫%s,今年%d岁" % (name, age)
集合数据类型
列表(List)
# 创建列表
fruits = ["苹果", "香蕉", "橘子"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True]
# 列表操作
fruits.append("葡萄") # 添加元素
fruits.insert(1, "草莓") # 插入元素
fruits.remove("香蕉") # 删除元素
fruits.pop() # 删除最后一个元素
fruits.sort() # 排序
# 列表索引和切片
print(fruits[0]) # 第一个元素
print(fruits[-1]) # 最后一个元素
print(fruits[1:3]) # 切片
元组(Tuple)
# 创建元组(不可变)
coordinates = (10, 20)
colors = ("红", "绿", "蓝")
# 元组解包
x, y = coordinates
red, green, blue = colors
字典(Dictionary)
# 创建字典
person = {
"name": "张三",
"age": 25,
"city": "北京"
}
# 字典操作
print(person["name"]) # 访问值
person["email"] = "zhang@example.com" # 添加键值对
del person["age"] # 删除键值对
# 字典方法
print(person.keys()) # 获取所有键
print(person.values()) # 获取所有值
print(person.items()) # 获取键值对
集合(Set)
# 创建集合(唯一元素)
numbers = {1, 2, 3, 4, 5}
unique_letters = set("hello") # {'h', 'e', 'l', 'o'}
# 集合操作
numbers.add(6) # 添加元素
numbers.remove(1) # 删除元素
numbers.discard(10) # 安全删除(不存在也不报错)
# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # 并集
print(set1 & set2) # 交集
print(set1 - set2) # 差集
4. 控制结构
条件语句
# if语句
age = 18
if age >= 18:
print("成年人")
elif age >= 13:
print("青少年")
else:
print("儿童")
# 三元运算符
status = "成年" if age >= 18 else "未成年"
循环语句
for循环
# 遍历列表
fruits = ["苹果", "香蕉", "橘子"]
for fruit in fruits:
print(fruit)
# 遍历字典
person = {"name": "张三", "age": 25}
for key, value in person.items():
print(f"{key}: {value}")
# range函数
for i in range(5): # 0到4
print(i)
for i in range(1, 6): # 1到5
print(i)
for i in range(0, 10, 2): # 0到8,步长为2
print(i)
while循环
count = 0
while count < 5:
print(count)
count += 1
# 无限循环(需要break退出)
while True:
user_input = input("输入'quit'退出: ")
if user_input == "quit":
break
print(f"你输入了: {user_input}")
循环控制
# break和continue
for i in range(10):
if i == 3:
continue # 跳过当前迭代
if i == 7:
break # 退出循环
print(i)
5. 函数
函数定义
def greet(name):
"""问候函数"""
return f"Hello, {name}!"
# 调用函数
message = greet("张三")
print(message)
参数类型
# 默认参数
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
# 可变参数
def sum_numbers(*args):
return sum(args)
# 关键字参数
def create_person(**kwargs):
return kwargs
# 混合参数
def complex_function(required, default="default", *args, **kwargs):
print(f"必需参数: {required}")
print(f"默认参数: {default}")
print(f"可变参数: {args}")
print(f"关键字参数: {kwargs}")
# 调用示例
result = sum_numbers(1, 2, 3, 4, 5) # 15
person = create_person(name="张三", age=25, city="北京")
Lambda函数
# lambda表达式
square = lambda x: x ** 2
add = lambda x, y: x + y
# 在高阶函数中使用
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
6. 异常处理
try:
number = int(input("请输入一个数字: "))
result = 10 / number
print(f"结果: {result}")
except ValueError:
print("输入的不是有效数字")
except ZeroDivisionError:
print("除数不能为零")
except Exception as e:
print(f"发生未知错误: {e}")
else:
print("没有发生异常")
finally:
print("无论是否有异常都会执行")
7. 文件操作
# 写文件
with open("example.txt", "w", encoding="utf-8") as file:
file.write("Hello, World!\n")
file.write("这是第二行")
# 读文件
with open("example.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
# 逐行读取
with open("example.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
8. 模块和包
导入模块
# 导入整个模块
import math
print(math.pi)
# 导入特定函数
from math import sqrt, pi
print(sqrt(16))
# 给模块起别名
import datetime as dt
now = dt.datetime.now()
# 导入所有(不推荐)
from math import *
创建模块
# mymodule.py
def hello(name):
return f"Hello, {name}!"
PI = 3.14159
# 使用模块
import mymodule
print(mymodule.hello("张三"))
9. 常用内置函数
# 类型转换
int("123") # 字符串转整数
float("3.14") # 字符串转浮点数
str(123) # 数字转字符串
list("hello") # 字符串转列表
# 数学函数
abs(-5) # 绝对值
max(1, 5, 3) # 最大值
min(1, 5, 3) # 最小值
sum([1, 2, 3]) # 求和
round(3.14159, 2) # 四舍五入
# 序列函数
len([1, 2, 3]) # 长度
sorted([3, 1, 2]) # 排序
reversed([1, 2, 3]) # 反转
enumerate(["a", "b", "c"]) # 枚举
zip([1, 2], ["a", "b"]) # 打包
# 其他常用函数
type(123) # 获取类型
isinstance(123, int) # 类型检查
input("请输入: ") # 用户输入
print("输出") # 打印输出
10. 列表推导式
# 基本列表推导式
squares = [x**2 for x in range(10)]
# 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]
# 字典推导式
word_lengths = {word: len(word) for word in ["python", "java", "go"]}
# 集合推导式
unique_lengths = {len(word) for word in ["hello", "world", "python"]}
11. 实践练习
练习1:计算器
def calculator():
while True:
print("\n简单计算器")
print("1. 加法")
print("2. 减法")
print("3. 乘法")
print("4. 除法")
print("5. 退出")
choice = input("选择操作 (1-5): ")
if choice == "5":
break
if choice in ["1", "2", "3", "4"]:
try:
num1 = float(input("输入第一个数字: "))
num2 = float(input("输入第二个数字: "))
if choice == "1":
result = num1 + num2
elif choice == "2":
result = num1 - num2
elif choice == "3":
result = num1 * num2
elif choice == "4":
if num2 != 0:
result = num1 / num2
else:
print("错误:除数不能为零")
continue
print(f"结果: {result}")
except ValueError:
print("错误:请输入有效数字")
else:
print("无效选择")
练习2:学生成绩管理
def student_grades():
students = {}
while True:
print("\n学生成绩管理系统")
print("1. 添加学生")
print("2. 查看所有学生")
print("3. 查询学生成绩")
print("4. 计算平均分")
print("5. 退出")
choice = input("选择操作: ")
if choice == "1":
name = input("学生姓名: ")
try:
grade = float(input("成绩: "))
students[name] = grade
print(f"已添加学生 {name},成绩 {grade}")
except ValueError:
print("请输入有效的成绩")
elif choice == "2":
if students:
for name, grade in students.items():
print(f"{name}: {grade}")
else:
print("暂无学生记录")
elif choice == "3":
name = input("请输入学生姓名: ")
if name in students:
print(f"{name}的成绩是: {students[name]}")
else:
print("未找到该学生")
elif choice == "4":
if students:
average = sum(students.values()) / len(students)
print(f"平均分: {average:.2f}")
else:
print("暂无学生记录")
elif choice == "5":
break
else:
print("无效选择")
总结
Python基础包括:
- 基本语法和数据类型
- 控制结构(条件和循环)
- 函数定义和使用
- 异常处理
- 文件操作
- 模块导入
- 常用内置函数