跳到主要内容

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基础包括:

  • 基本语法和数据类型
  • 控制结构(条件和循环)
  • 函数定义和使用
  • 异常处理
  • 文件操作
  • 模块导入
  • 常用内置函数