目录
学习视频笔记
遍历列表及索引
描述
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
Python 2.3. 以上版本可用,2.6 添加 start 参数。
语法
以下是 enumerate() 方法的语法:
enumerate(sequence, [start=0])
参数
sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置的值。
返回值
返回 enumerate(枚举) 对象
# 遍历列表
a=[3,2,5,6,8]
for x in a:
print(x)
b = ["Python","人工智能","大数据"]
for index,name in enumerate(b):
print(index,name)
# 遍历元组
c=("Python","人工智能","大数据")
for index,name in enumerate(c):
print(index,name)
遍历字典:
x={
"李立宗" :18,
"刘能" :88,
"赵四":99,
"tony" :100
}
for a,b in x.items():
print(a,b)
for c in x.keys():
print(c)
for d in x.values():
print(d)
如果是方法,那他一定对应着某一对象。
如果是个函数,拿函数的参数就是对象。
遍历字符串:
s="PYTHON"
for x in s:
print(x,end=" ")#引号里是连接符,引号里没东西就是直接打印了
构造一个列表,其由正数、负数、零构成。
将其中的正数输出。
标准模块
import os
print(os.getcwd()) #打印当前文件目录
import sys
print(sys.argv) #是一个包含命令行参数的列表,把当前文件的名字告诉系统。
print(sys.platform) #当前的系统平台 如:win32
print(sys.path) #包含了一个Python 解释器自动查找所需模块的路径的列表。
标准模块2 random
import random
print(random.randrange(1,20,7)) #1,8,15
#生成随机数
print(random.randint(1,100)) #[1,100]范围,而不是[1, 100 )
import random
print(random.random()) #0~1之间的随机数
print(random.uniform(9,10)) # 指定范围的随机数
标准模块3 re
正则表达式中给我们提供了方括号,方括号其实就是“或”的意思,里面的只要有一个符合就可以:
分割完之后,用来分隔的符号在结果中没有了。
句点 . 和句号。不一样
推荐一本书:
pip命令 导入第三方模块opencv
Windows命令行里运行,这样才行:
呜呜呜,看来以后用pip命令都得加py -m
了
安装opencv的包:
py -m pip install --user opencv-python
级联分类器
参考资料:https://blog.csdn.net/qq_46110834/article/details/111187060
自定义模块
便利了模块化的思想
__name__ == __main__
map和reduce函数
map主要用来数值运算,reduce主要用来逻辑运算和递归
迭代器
next()
是逐个往下进行,不能往回走
右边是简化版。 注意!生成器要用小括号!
生成器中存的是公式,就像位图和矢量图的区别那样。
生成器基本不占用时间,只占用很小的空间
高级模式: 闭包
闭包特点:(懒函数)
1.函数里有函数
2.内函数用到外函数的变量
3.外函数的返回值是内函数
“学习曲线”
高级模式:装饰器
改进一下:
再改进:
类
这样也行:
继承、封装和多态
一个新函数:isinstance()
访问类内部的私有成员,是非常非常*10000不建议这么做的
文件基础
.read() #括号里可以制定读取多少个字符
.readline() #读取一行,但是会带有换行符
#print()也自带换行符
这样读出来的是个列表。使用for循环 就可以读了
格式化!!!
过程是这样的:
from datetime import datetime
file="file. txt"
with open(file,"r") as f:
for line in f.readlines( ):
myData,price=line.split(",") #按照逗号进行分割,然后分成这俩变量
# print (myData ) 这里作测试用
# print(price)
dt=datetime.strptime(myData,"%Y/%m/%d") #讲前边的myData变成日期变量的格式,引号里边是原myData的格式
print("时间是:",str(dt.date()),": 销售额是:" +str(price))
# file="lilizong.txt"
# with open(file,mode="w",encoding="utf-8") as f:
# f.write("李立宗666")
file="lilizong2.txt"
with open(file,"r+") as f:#r+,打开文件,在开头部分开始写,完成替换功能。
f.write("22222")
file="lilizong2. txt"
with open(file,"w+") as f:
#模式: w+,表示:打开原有文件,删除原有内容,从头开始写
f.write("3333")
实现复制功能:
x=open("file.txt","r")
y=open("lilizong3.txt","w")
y.writelines(x.readlines())
x.close()
y.close()
格式控制:
from datetime import datetime
file="lilizong4.txt"
with open(file,"w") as f:
dt=datetime.strptime("2020/6/28","%Y/%m/%d")
result=str("time: "+str(dt.date()))
f.write(result)
数据库的操作
咱们说的(代码里的)游标就类似于这种的:
嵌入操作:
.commit() # 提交数据
查询数据:
ORM基础
MVC思想
实体、视图、控制器
案例:
(上图的创建数据库的语句写错了,注意是create)
Base那一句是导入一个基类。
类math对应的表名就是“math”。这样python里的类就和数据库里的表建立了联系。
Column就是列,就是属性、字段,这样属性值也建立了联系。
engine是连接方式,也算是连接数据库的另一种写法。ORM连接
将值加到表里,最后别忘了提交:
查询:
推荐书籍:《MySQL必知必会》
成绩管理项目
上图会报错的,以下面的图为准。
调试
在循环里打断点的情况:
异常处理方式
单元测试
注意看函数名
课程的结构
Git
输入q退出某些界面
自动化电子表格处理
把文件加载进来:
——————————————————————————————————
如果是这样取的话取出来是这样:
按行合并: