Python基础语法
Python以其简洁清晰的语法著称,强制使用缩进来划分代码块,这使得代码具有极佳的可读性。在编写Python代码时,我们通常遵循PEP 8编码规范。Python 3默认使用UTF-8编码,可以直接处理中文等Unicode字符。注释分为单行注释(使用#)和多行注释(使用'''或""")。
变量在Python中无需声明类型,直接赋值即可创建。变量名由字母、数字和下划线组成,且不能以数字开头。Python中的关键字(如if, for, def, class等)具有特殊含义,不能用作变量名。
Python的核心数据类型包括:
● 数字:分为整数(int)和浮点数(float)。
● 字符串(str):用单引号或双引号包裹的文本。
● 布尔值(bool):只有True和False两个值,常用于条件判断。
运算符用于执行各种操作,主要包括:
● 算术运算符:+, -, *, /(除法), //(整除), %(取模), **(幂运算)。
● 比较运算符:==, !=, >, <, >=, <=,返回布尔值。
● 逻辑运算符:and, or, not。
变量与运算符实例
name = "数据分析师" # 字符串变量
experience_years = 3 # 整数变量
is_active = True # 布尔变量
算术运算
total_experience = experience_years + 2
print(f"总经验: {total_experience}")
比较与逻辑运算
if experience_years > 2 and is_active:
print("这是一位经验丰富的活跃分析师。")
流程控制
流程控制决定了代码的执行顺序,让程序能够根据条件做出决策或重复执行任务。
条件语句
if-elif-else结构用于条件判断。程序会从上到下依次检查条件,一旦某个条件为真,就执行对应的代码块,并跳过后续所有分支。
循环
● for循环:用于遍历序列(如列表、字符串、range对象)中的每一个元素。
● while循环:只要给定的条件为True,就会一直重复执行代码块。
跳转语句
● break:立即终止整个循环。
● continue:跳过当前循环的剩余语句,直接进入下一次循环。
实训案例:猜数字游戏
import random
target_number = random.randint(1, 100)
guess = 0
print("我已经想好了一个1到100之间的数字,来猜猜看吧!")
while guess != target_number:
try:
guess = int(input("请输入你的猜测: "))
if guess < target_number:
print("太小了!")
elif guess > target_number:
print("太大了!")
else:
print("恭喜你,猜对了!")
except ValueError:
print("请输入一个有效的整数!")
字符串
字符串是不可变的字符序列。Python提供了多种强大的字符串处理方法。
字符串格式化
● f-string (推荐):在字符串前加f或F,在{}中直接写入变量或表达式,如f"姓名: {name}"。
● format()方法:使用{}作为占位符,然后调用.format()方法传入值,如"姓名: {}".format(name)。
常见操作
● 索引与切片:通过[index]访问单个字符,通过[start🔚step]获取子字符串。负数索引表示从末尾开始计数。
● 常用方法:
○ s.upper() / s.lower(): 转换大小写。
○ s.strip(): 移除首尾空白字符。
○ s.find(sub): 查找子字符串sub的位置。
○ s.replace(old, new): 替换字符串。
○ s.split(sep): 按分隔符sep分割字符串为列表。
实训:文本分析
text = " Python is powerful. Python is easy to learn. "
1. 清理文本
clean_text = text.strip().lower()
2. 统计单词数量
words = clean_text.split()
print(f"单词总数: {len(words)}")
3. 统计特定单词频率
target_word = "python"
count = clean_text.count(target_word)
print(f"单词 '{target_word}' 出现了 {count} 次")
4. 替换文本
new_text = clean_text.replace("powerful", "awesome")
print(f"替换后: {new_text}")
组合数据
组合数据类型用于在一个变量中存储多个值。
列表 (List)
有序、可变的集合。使用[]创建。支持增删改查、切片等操作。
fruits = ["apple", "banana"]
fruits.append("orange") # 添加元素
元组 (Tuple)
有序、不可变的集合。使用()创建。一旦创建,其内容不能修改。常用于存储不应改变的数据,如坐标(x, y)。
集合 (Set)
无序、不重复元素的集合。使用{}或set()创建。常用于去重和集合运算(如交集、并集)。
字典 (Dictionary)
存储键值对(key-value pair)的集合。使用{}创建。键(key)必须是唯一的且不可变(如字符串、数字、元组),值(value)可以是任意类型。
user = {"name": "Alice", "age": 25}
print(user["name"]) # 通过键访问值
实训:学生成绩管理
使用字典存储学生姓名和成绩
students_scores = {
"张三": 85,
"李四": 92,
"王五": 78
}
添加新学生
students_scores["赵六"] = 88
计算平均分
scores = students_scores.values()
average_score = sum(scores) / len(scores)
print(f"班级平均分: {average_score:.2f}")
查找最高分学生
top_student = max(students_scores, key=students_scores.get)
print(f"最高分学生是: {top_student}, 成绩: {students_scores[top_student]}")
函数
函数是一段组织好的、可重复使用的代码,用于实现单一功能。
函数调用与定义
使用def关键字定义函数,然后通过函数名加()来调用。
参数传递
● 位置参数:按参数定义的顺序传递。
● 关键字参数:通过key=value的形式传递,顺序无关。
● 默认参数:为参数指定默认值,调用时可省略。
返回值
函数使用return语句返回结果。如果没有return或return后无值,则默认返回None。
作用域
● 局部变量:在函数内部定义的变量,只在函数内有效。
● 全局变量:在函数外部定义的变量,在整个程序中有效。
特殊形式的函数
● Lambda函数:一种简洁的匿名函数,适用于简单的、一次性的操作。例如:add = lambda x, y: x + y。
实训案例:数据清洗函数
def clean_and_convert_data(raw_data_list):
"""
接收一个包含原始字符串数据的列表,
清洗并转换为浮点数列表。
"""
cleaned_data = []
for data in raw_data_list:
去除空格和'′符号cleanvalue=data.strip().replace("'符号 clean_value = data.strip().replace("′符号cleanvalue=data.strip().replace("", "")
try:
转换为浮点数
numeric_value = float(clean_value)
cleaned_data.append(numeric_value)
except ValueError:
print(f"无法转换数据: {data}")
return cleaned_data
raw_prices = [" 12.50 ", "25.00", "invalid", " $7.99 "]
prices = clean_and_convert_data(raw_prices)
print(f"清洗后的价格: {prices}")
文件与数据格式化
程序运行时的数据是临时的,文件操作可以将数据持久化存储。
文件基础操作
使用内置的open()函数打开文件,推荐使用with语句,它会在操作完成后自动关闭文件。
● 模式:'r' (读取), 'w' (写入,会覆盖), 'a' (追加), 'x' (创建)。
文件与目录管理
os和shutil模块提供了强大的文件和目录管理功能。
● os.path.exists(path): 检查路径是否存在。
● os.makedirs(path): 创建多级目录。
● os.remove(path): 删除文件。
数据维度与格式化
● 一维数据:如CSV文件,可以使用列表存储,通过split()和join()进行简单的格式化。
● 二维数据:如Excel表格,可以使用列表的列表表示。
● JSON格式:一种轻量级的数据交换格式,非常适合存储和传输结构化数据。Python的json模块可以轻松地将字典等数据结构序列化为JSON字符串(json.dumps())或写入文件(json.dump()),也可以从JSON字符串或文件中解析出Python对象(json.loads()和json.load())。
实训案例:用户信息存取
import json
import os
user_data = {
"username": "data_wizard",
"preferences": {
"theme": "dark",
"notifications": True
},
"scores": [95, 88, 92]
}
filename = "user_profile.json"
写入JSON文件
with open(filename, 'w', encoding='utf-8') as f:
json.dump(user_data, f, indent=4, ensure_ascii=False)
print(f"用户信息已保存到 {filename}")
从JSON文件读取
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as f:
loaded_data = json.load(f)
print(f"从文件读取的数据: {loaded_data}")
print(f"用户名: {loaded_data['username']}")