Python基础
1.PythonScript头
编码,时间,作者,文件名,项目名
# _*_ coding : utf-8_*_
# @Time : ${DATE} ${TIME}
# @author : author_name
# @File : ${NAME}
# @Project : ${PROJECT_NAME}
2. 注释
python
# 单行注释
"""
多行注释
"""
'''
多行注释
'''
3.变量定义
python
变量名 = 变量值
4.变量的类型
python
"""
# 变量的类型
# Numbers(数字)
int
long
float
complex(复数) 爬虫不用
# 布尔类型
true,false
# String(字符串)
# List(列表)
# Tuple(元组)
# Dictionary(字典)
"""
注:布尔型 a = True或False 第一个字母大写
python
# 列表
list = [1,2]
# 元组
list1 = (1,2)
# 字典
dir = {
"a":1,
"b":"你好"
}
5.查看变量的类型
变量没有类型,数据才有类型
python
print(type(list_example))
6.类型转换
python
# 类型转化
x = ""
int(x)
float(x)
str(x)
bool(x)
7.运算符
python
# 运算符
"""
= 赋值
+
-
*
/ 整除
// 取整除
% 取余
** 指数
()
"""
python
# 赋值运算符
a = b = 3 # a=3 b=3
a,b,c = 1,2,3 # a=1,b=2,c=3
1复合运算符
python
# 1. 加法赋值 +=
x = 10
x += 5 # 等价于 x = x + 5
print("x += 5 结果:", x) # 输出:15
# 2. 减法赋值 -=
x = 10
x -= 3 # 等价于 x = x - 3
print("x -= 3 结果:", x) # 输出:7
# 3. 乘法赋值 *=
x = 10
x *= 4 # 等价于 x = x * 4
print("x *= 4 结果:", x) # 输出:40
# 4. 除法赋值 /=
x = 10
x /= 3 # 等价于 x = x / 3
print("x /= 3 结果:", x) # 输出:3.3333333333333335(浮点数)
# 5. 整除赋值 //=
x = 10
x //= 3 # 等价于 x = x // 3
print("x //= 3 结果:", x) # 输出:3(向下取整)
# 6. 取模赋值 %=
x = 10
x %= 3 # 等价于 x = x % 3
print("x %= 3 结果:", x) # 输出:1(余数)
# 7. 幂运算赋值 **=
x = 10
x **= 2 # 等价于 x = x ** 2
print("x **= 2 结果:", x) # 输出:100(10的平方)
2比较运算符
python
# 定义测试变量
a = 20
b = 20
c = 15
d = [1, 2, 3]
e = [1, 2, 3]
# 1. 相等性判断(== 和 !=)
print("a == b:", a == b) # 输出:True(值相等)
print("a == c:", a == c) # 输出:False(值不相等)
print("a != c:", a != c) # 输出:True(值不相等)
print("d == e:", d == e) # 输出:True(列表值相等)
# 2. 大小关系判断(>、<、>=、<=)
print("a > c:", a > c) # 输出:True
print("a < c:", a < c) # 输出:False
print("a >= b:", a >= b) # 输出:True(值相等,大于等于成立)
print("c <= b:", c <= b) # 输出:True
# 3. 同一性判断(is 和 is not)
print("a is b:", a is b) # 输出:True(小整数池优化,引用同一对象)
print("d is e:", d is e) # 输出:False(列表是可变对象,创建了两个不同内存对象)
print("d is not e:", d is not e) # 输出:True
3逻辑运算符
python
# 定义布尔测试变量
a = True
b = False
c = True
# 1. 逻辑与 and
print("a and b:", a and b) # 输出:False(一假即假)
print("a and c:", a and c) # 输出:True(全真才真)
# 2. 逻辑或 or
print("a or b:", a or b) # 输出:True(一真即真)
print("b or b:", b or b) # 输出:False(全假才假)
# 3. 逻辑非 not(单目运算符,仅作用于一个操作数)
print("not a:", not a) # 输出:False(取反)
print("not b:", not b) # 输出:True(取反)
8. for循环
python
str = "helllo"
for i in str:
print(i)
1.range()函数
python
range(5) #结束值5,0开始 0,1,2,3,4
range(1,5)#开始值1,5结束 1,2,3,4
range(1,5,2) #1开始,5结束,2步长 1,3
9.字符串高级
1.len()函数
返回长度
python
list1 = [1,2,3,4,5]
print(len(list1))
2.find()
查找元素第一次出现的下标
python
# 返回字符第一次出现的位置
index = str1.find("cf")
3.startswith() endswith()
判断是否以某个字符开始或者结尾
python
# 返回字符第一次,最后出现的位置
bol = str1.startswith("3") #True
bol1 = str1.endswith("a") #True
4,count()
字符出现的次数
python
# 返回出现的次数
c = str1.count("3") #2
5.replace()
python
# 替换元素,返回替换后的数据
str2 = str1.replace("3","1") #2
print(str2)
6.split()
python
# 切割元素,返回切割后的数据
str2 = str1.split("d")
# ['3211234cf', 'aw', 'a', 'as', 'awe', 'wa']
7.upper() lower()
转大写,转小写
python
str2 = str1.upper()
8,strip()
去前后的空格
python
str1 = " Djw ".strip()
9.join()
字符串拼接
python
str1 = "hello"
print(str1.join("a")) #a
str2 = "a"
print(str2.join(str1)) #haealalao
10.列表高级
1.添加
1.append 追加
python
ex_list = [1,2,3,4,5]
ex_list.append("a") #末尾追加 [1, 2, 3, 4, 5, 'a']
2.insert 插入
python
ex_list = [1,2,3,4,5]
ex_list.insert(1,"d") #将d插入到1下标的位置 [1, 'd', 2, 3, 4, 5]
3.extend 合并
python
ex_list = [1,2,3,4,5]
ex_list.extend(["a","b","c"]) # 与列表合并 [1, 2, 3, 4, 5, 'a', 'b', 'c']
2.修改
1.根据下标更改
ex_list = ["Beijing","Shanghai","Shijiazhuang"]
# T通过列表的下标修改
ex_list[0] = "hello"
print(ex_list)
3.删除
1.delete
根据列表下标删除
ex_list = ["Beijing","Shanghai","Shijiazhuang"]
# delete 根据下标删除元素
del ex_list[0]
2.pop
删除列表的最后一个元素
ex_list = ["Beijing","Shanghai","Shijiazhuang"]
# 删除最后一个元素
ex_list.pop()
3.remove
根据元素的值进行删除
ex_list = ["Beijing","Shanghai","Shijiazhuang"]
# 根据元素的值删除
ex_list.remove("Beijing")
11.元组高级
元组和列表的区别是元组的元素是不可修改,所以没有修改,删除,添加方法
但是可以转列表进行操作,再转回元组 list() tuple()
1.定义元组
如果只定义一个元组数据,需要在数据后加, 否则为整型int
ex_y = (1,)
print(type(ex_y))
2.查询-->根据下标查询
ex_y = (1,2,3)
print(ex_y[1])
12.切片
截取对象的一部分的操作叫切片, 适用于字符串、列表,元组
ex_list = ["Beijing","Shanghai","Shijiazhuang"]
ex_str ="Hello World"
ex_y = (1,2,3,4)
print(ex_str[0:4]) #Hell 左闭右开 0-3下标的数据
print(ex_str[1:]) #从1到末尾 ello World
print(ex_str[:4]) #从0到4 Hell
print(ex_list[0:6:2]) #从下标0-6 但是步长是2 ['Beijing', 'Shijiazhuang']
13.字典的高级
1.查询
1.字典["key值"]
2.person.get("name")
区别: 字典["key值"]的方式如果访问不存在的key值会报错,而get()方法会返回None,不报错
2.修改
1.字典["key"] = 新值
person['name'] = "李四"
3.添加
1.字典["不存在字典的key"] = 值
person = {
"name":"张三",
"age":13
}
# 添加
person["sex"] = "女"
print(person)
4.删除
1.del
删除指定的元素
del person['name']
删除整个字典,打印会报错,因为字典会不存在
person = {
"name":"张三",
"age":13
}
del person
print(person) NameError: name 'person' is not defined
2.clear
清空,但是字典还在,数据没了
person.clear()
5.遍历
person = {
"name":"张三",
"age":13
}
# key遍历
for key in person:
print(key,person[key])
# 值遍历
for value in person.values():
print(value)
#同时遍历
for key,value in person.items():
print(key,value)
14.函数
1.定义和调用
def f1():
print("hello")
f1()
2.函数的参数
def sum(a,b):
print(a+b)
sum(b=100,a =200) #不推荐
sum(100,200)
3.返回值
def sum(a,b):
return a+b
print(sum(100,200))
15.文件
1.文件的打开、关闭
获取当前文件所在位置的绝对路径的上一级目录的data文件夹下的test.txt文件的位置
import os
test_path = os.path.abspath('../')+"\\data\\test.txt"
test_path,只写文件名默认从当前文件夹下找,没有创建。
open(test_path,"w",encoding="utf-8")
2.文件的读写
# 文件的打开、关闭
fw = open(test_path,"w",encoding="utf-8")
# 写数据
fw.write("hello")
fw.close()
fr = open(test_path,"r",encoding="utf-8")
print(fr.read(3)) #按字节读,写size是读多少字节,不写则是读全部
print(fr.readline()) #按行读
print(fr.readlines()) #读出来放到列表中
fr.close()
3.文件的序列化和反序列化
python
# 序列化 对象-->字符串
ex_list = ["hello","learn","icon"]
json_ex_list = json.dumps(ex_list)
with open(test_path, 'w') as f:
f.write(json_ex_list)
# json.dump(ex_list, f) # 合并序列化和write方法
f.close()
# 反序列化 字符串--> 对象
with open(test_path, 'r') as f:
result = json.loads(f.read())
# result1 = json.load(f) #合并反序列化与read方法
print(result)
print(type(result)) # list
16.异常
python
try:
with open("test.txt", 'r') as f:
print(f.read())
f.close()
except FileNotFoundError:
print("文件没找到哦啊")
------2026.1.18