C4笔记 (只记了我知识盲区)

C4笔记 (只记了我知识盲区),第1张

目录
  • 学习视频笔记
    • 遍历列表及索引
    • 构造一个列表,其由正数、负数、零构成。
    • 标准模块
    • 标准模块2 random
    • 标准模块3 re
    • pip命令 导入第三方模块opencv
    • 自定义模块
    • map和reduce函数
    • 迭代器
    • 高级模式: 闭包
    • 高级模式:装饰器
    • 继承、封装和多态
    • 文件基础
    • 数据库的 *** 作![在这里插入图片描述](http://www.kaotop.com/file/tupian/20220516/f034f613895a4fb491eabaf7b7815e74.png)
      • ORM基础
      • 成绩管理项目
    • 调试
    • 异常处理方式
      • 单元测试
    • 课程的结构
  • Git

学习视频笔记 遍历列表及索引

描述
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退出某些界面

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/922795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存