# 创建字符串
name ="Python编程"
message ='学习Python很有趣'# 字符串连接
greeting ="你好,"+ name +"!"print(greeting)# 你好,Python编程!# 字符串格式化
age =30
info =f"{name}已经{age}岁了"print(info)# Python编程已经30岁了
# 变量命名
user_name ="admin"# 推荐使用下划线命名法
count =0# 多变量赋值
x, y, z =1,2,3print(x, y, z)# 1 2 3# 交换变量值
a, b =5,10
a, b = b, a
print(a, b)# 10 5# 常量约定(Python没有真正的常量)
MAX_USERS =100# 全大写表示常量,不应被修改
# if语句
age =18if age <18:print("未成年")elif age ==18:print("刚好成年")else:print("成年人")# 条件表达式(三元运算符)
status ="成年"if age >=18else"未成年"print(status)# "成年"# 逻辑运算符if age >=18and age <=65:print("工作年龄")# 真值判断
name =""if name:# 空字符串视为Falseprint("名字已设置")
12. 循环
# for循环遍历列表
fruits =["苹果","香蕉","橙子"]for fruit in fruits:print(f"我喜欢吃{fruit}")# for循环遍历字典
user ={"name":"张三","age":25}for key in user:print(f"{key}: {user[key]}")# for循环更多方式for key, value in user.items():print(f"{key}: {value}")# range函数生成数字序列for i inrange(5):# 0到4print(i)# while循环
count =0while count <5:print(count)
count +=1
13. 循环控制
# break语句提前结束循环for i inrange(10):if i ==5:breakprint(i)# 打印0到4# continue语句跳过当前迭代for i inrange(10):if i %2==0:# 如果是偶数continueprint(i)# 只打印奇数# else子句(循环正常完成时执行)for i inrange(3):print(i)else:print("循环正常完成")
14. 列表推导式
# 基本列表推导式
numbers =[1,2,3,4,5]
squares =[n**2for n in numbers]# [1, 4, 9, 16, 25]# 带条件的列表推导式
even_squares =[n**2for n in numbers if n %2==0]# [4, 16]# 嵌套列表转为平面列表
matrix =[[1,2],[3,4],[5,6]]
flattened =[num for row in matrix for num in row]# [1, 2, 3, 4, 5, 6]
15. 字典推导式
# 创建字典
names =["apple","banana","cherry"]
fruit_dict ={name:len(name)for name in names}# {"apple": 5, "banana": 6, "cherry": 6}# 条件字典推导式
numbers =[1,2,3,4,5]
square_dict ={n: n**2for n in numbers if n %2==0}# {2: 4, 4: 16}
# 局部作用域和全局作用域
x =10# 全局变量deftest_scope():
y =20# 局部变量print(x)# 可以访问全局变量print(y)
test_scope()# print(y) # 错误!不能访问局部变量# 使用global关键字defmodify_global():global x
x =50# 修改全局变量
modify_global()print(x)# 50
20. 匿名函数
# lambda函数(一行匿名函数)
add =lambda a, b: a + b
print(add(5,3))# 8# 结合函数式编程
numbers =[1,2,3,4,5]
squared =list(map(lambda x: x**2, numbers))print(squared)# [1, 4, 9, 16, 25]# 使用lambda排序
users =[{"name":"张三","age":30},{"name":"李四","age":25},{"name":"王五","age":40}]
sorted_users =sorted(users, key=lambda user: user["age"])print([user["name"]for user in sorted_users])# ['李四', '张三', '王五']
# try-except语句try:
number =int(input("请输入一个数字: "))
result =10/ number
print(f"结果是: {result}")except ValueError:print("输入不是有效的数字")except ZeroDivisionError:print("不能除以零")except:print("发生了其他错误")finally:print("无论是否发生异常,都会执行这里的代码")
25. 抛出异常
# 使用raise抛出异常defvalidate_age(age):if age <0:raise ValueError("年龄不能为负数")if age >150:raise ValueError("年龄值不现实")return age
# 处理自定义异常try:
user_age = validate_age(-5)except ValueError as error:print(f"错误: {error}")
七、模块和包
26. 导入模块
# 导入标准库模块import math
print(math.sqrt(16))# 4.0# 导入特定函数from random import randint
print(randint(1,10))# 1到10之间的随机整数# 使用别名import datetime as dt
now = dt.datetime.now()print(now)# 导入多个函数from math import sin, cos, tan
27. 创建自定义模块
# 假设我们有文件 mymodule.py"""
这是一个示例模块
"""defgreet(name):returnf"你好,{name}!"
PI =3.14159# 在另一个文件中使用import mymodule
print(mymodule.greet("张三"))print(mymodule.PI)
28. 常用标准库
# 日期时间处理from datetime import datetime, timedelta
now = datetime.now()
yesterday = now - timedelta(days=1)print(now.strftime("%Y-%m-%d %H:%M:%S"))# 随机数import random
print(random.choice(["苹果","香蕉","橙子"]))# 随机选择一个元素print(random.sample(range(1,50),6))# 随机选择6个不重复的数字# 系统操作import os
current_dir = os.getcwd()# 获取当前工作目录
files = os.listdir(".")# 列出当前目录的文件