黔南布依族苗族自治州网站建设_网站建设公司_MySQL_seo优化
2025/12/21 10:45:28 网站建设 项目流程

python复习

一.类型转换

# 自动向上转换
x = 10 + 5.5     # int + float → float
y = True + 1     # bool + int → int (True=1) 当bool类型与int类型进行计算时会自动将True转化为1(int型),False转为0(int)

强制类型转换

强制类型转换int()     # 转换为整数
float()   # 转换为浮点数
str()     # 转换为字符串
bool()    # 转换为布尔值
list()    # 转换为列表
tuple()   # 转换为元组
dict()    # 转换为字典
set()     # 转换为集合int("10")        # 10
int("10.5")      # ValueError
float("10.5")    # 10.5
#解释:0转换成False,没元素如""或[]转换成False,有元素转换成True如:[0]
bool(0)          # False
bool("")         # False
bool([])         # False
bool([0])        # True

二.字符串

s1 = '单引号'
s2 = "双引号"
s3 = '''三引号可以
跨越多行'''
s4 = r"原始字符串\n不转义"
#经常用r" "

切片

s = "Python"
# 正向索引:0 1 2 3 4 5
# 反向索引:-6 -5 -4 -3 -2 -1
print(s[::-1]) # 'nohtyP' 反转

字符串常用方法:

 

# 查找与替换
s.find('子串')     # 返回索引,不存在返回-1
s.index('子串')    # 返回索引,不存在报错
s.replace('旧','新') # 替换
s.count('子串')    # 统计出现次数# 分割与连接
s.split('分隔符')   # 分割为列表
'分隔符'.join(列表)  # 连接为字符串# 大小写转换
#并不改变s,但是可以输出s.upper()  等
s.upper()          # 转大写
s.lower()          # 转小写
s.title()          # 每个的单词首字母大写# 去除空白
s.strip()          # 去除两端空白
s.lstrip()         # 去除左端空白
s.rstrip()         # 去除右端空白# 判断
s.startswith('前缀')
s.endswith('后缀')
s.isalpha()        # 是否全字母
s.isdigit()        # 是否全数字
s.isalnum()        # 是否字母或数字

字符串里的join与split方法

#split
#指定最大分割数
s = "1,2,3,4,5"
result = s.split(",", 2)  # 最多分割2次
print(result)  # 输出:['1', '2', '3,4,5']result = s.split(",", 0)  # 分割0次,返回原字符串的列表
print(result)  # 输出:['1,2,3,4,5']#join
lst = ["apple", "banana", "orange"]
# 用逗号+空格连接
result = ", ".join(lst)
print(result)  # 输出:apple, banana, orange# 用空字符串连接(无分隔符)
result = "".join(lst)
print(result)  # 输出:applebananaorange

 

在python里的f" "与r" "不一样

f" "表示格式化字符串,动态嵌入

r" "常用与地址因为可以用于抑制转义字符

一、f"" (f-string):专门用于字符串格式化

1. 核心作用

Python 3.6+ 引入的特性,是目前最简洁、高效的字符串格式化方式,支持直接在字符串中嵌入变量、表达式、函数调用,甚至格式规范(如保留小数、对齐等)。

2. 语法与示例

python
 
运行
 
 
 
 
# 1. 嵌入变量
name = "Alice"
age = 25
s = f"Hello, {name}! You are {age} years old."
print(s)  # 输出:Hello, Alice! You are 25 years old.# 2. 嵌入表达式(直接计算)
s = f"1+2={1+2}, age+5={age+5}"
print(s)  # 输出:1+2=3, age+5=30# 3. 格式规范(保留小数、对齐、进制等)
pi = 3.1415926
s = f"PI: {pi:.2f}"  # 保留2位小数
print(s)  # 输出:PI: 3.14num = 10
s = f"二进制:{num:b}, 十六进制:{num:x}"  # 进制转换
print(s)  # 输出:二进制:1010, 十六进制:a# 4. 调用函数
def double(x):return x * 2s = f"Double of {age} is {double(age)}"
print(s)  # 输出:Double of 25 is 50
 

3. 核心特点

  • 动态性:直接解析 {} 内的变量 / 表达式,无需手动拼接;
  • 高效性:比传统的 % 格式化、str.format() 更快;
  • 可读性:语法直观,代码简洁。

二、r"" (raw 字符串):抑制转义字符

1. 核心作用

让字符串中的转义字符(\n\t\\ 等)失效\ 仅作为普通字符处理。它不涉及格式化,仅解决 “转义干扰” 问题。

2. 语法与示例

python
 
运行
 
# 1. 路径(避免 \t、\n 等转义)
# 普通字符串:\t 会被解析为制表符,导致路径错误
path1 = "C:\user\temp\test.txt"
print(path1)  # 输出:C:\user	emp\test.txt(\t变成制表符)# raw字符串:\ 仅作为普通字符,路径正确
path2 = r"C:\user\temp\test.txt"
print(path2)  # 输出:C:\user\temp\test.txt# 2. 正则表达式(正则中 \d、\w 等需要 \ 作为普通字符)
import re
# 普通字符串:\d 会被解析为转义字符(无效),需写 \\d
pattern1 = "\d+"  # 错误:\d 不是合法转义,Python会警告
# raw字符串:直接写 \d 即可,无需转义
pattern2 = r"\d+"  # 正确:匹配数字
print(re.findall(pattern2, "abc123def456"))  # 输出:['123', '456']# 3. 注意:raw字符串结尾不能是单个 \(会报错)
# 错误:r"C:\user\"  # SyntaxError: EOL while scanning string literal
# 正确:要么加空格,要么用 \\ 结尾
path3 = r"C:\user\ "[:-1]  # 去掉末尾空格
path4 = "C:\\user\\"       # 普通字符串用双 \\
 

3. 核心特点

  • 静态性:仅处理转义,不解析任何变量 / 表达式;
  • 适用场景:文件路径、正则表达式、需要保留原生 \ 的字符串。

 


列表:

(1)列表的基本操作

lst = [1, 2, 3, 4, 5]# 增
lst.append(6)            # 末尾添加->[1, 2, 3, 4, 5, 6]
lst.insert(2, 2.5)       # 指定位置插入[1, 2, 2.5, 3, 4, 5, 6]
lst.extend([7, 8])       # 扩展列表,末尾添加两个元素7和8-->[1, 2, 2.5, 3, 4, 5, 6, 7,8 ]# 删
lst.remove(3)            # 删除第一个匹配值
lst.pop()                # 删除末尾元素并返回
lst.pop(2)               # 删除指定位置元素
del lst[0]               # 删除指定位置元素
lst.clear()              # 清空列表# 改
lst[0] = 0               # 修改指定位置# 查
x = lst[0]               # 索引访问
index = lst.index(2)     # 查找元素索引
count = lst.count(2)     # 统计元素出现次数# 其他
lst.copy()               # 浅拷贝
lst.reverse()            # 反转列表(原地)
lst.sort()               # 排序(原地)
sorted(lst)              # 返回新排序列表

列表推导式

image

返回

[

[0,0,0],

[0,0,0],

[0,0,0]

]


字典

d1 = {}                    # 空字典
d2 = {'a': 1, 'b': 2}      # 直接创建
d3 = dict(a=1, b=2)        # dict函数
d4 = dict([('a',1),('b',2)]) # 键值对列表
d5 = dict.fromkeys(['a','b'], 0)  # 相同默认值
d6 = {x: x**2 for x in range(5)}  # 字典推导式
#空字典用{}而空集合需要用set()

(1)字典遍历

d = {'a': 1, 'b': 2, 'c': 3}# 遍历键
for i in d:print(i, d[i])# 遍历键值对
for key, value in d.items():print(key, value)"""
对于in 字典名会遍历字典里所有键
对于in 字典名.items()会遍历所有字典的key,value"""

(2)

from collections import defaultdictd = defaultdict(int)      # 默认值为0,值的类型是int。
d['a'] += 1               # 不需要先判断键是否存在
print(d)
d2 = defaultdict(list)    # 默认值为[],值的类型是list
d2['key'].append(1)
print(d2)

image

(3)

d = {1: 'a', 2: 'b', 3: 'c'}
print(d.get(4, 'd'))#查询get方法,查不到返回d,如果有key为4的返回对应value
print(2 in d)
print(list(d.keys()))

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询