python知识收集
文章目录
- 语法
- def声明函数
- class声明类
- class 子类(父类) 继承
- 数据结构
- 列表
- 列表操作
- 元组
- 元组操作
- 字典
- 遍历字典
- 集合
- 文件读写
- 读文件
- 写文件
- csv模块
- 读入
- 写入
- time模块
- 发送邮件
- 制作二维码
- 滚动广告
语法
def声明函数
class声明类
class 子类(父类) 继承
数据结构
列表
列表(也称序列)是 Python 中最基本的数据结构。
列表操作
import operator
list = ['海尔','海信','格力','美的','小米','奥克斯']print(list)
# 查询
print(list[0])
print(list[2])
print(list[-1])
print(list[-2])
print(list[1:3])
print(list[0:-3])# 增加
list.append('统帅')
print(list)
#修改
list[4] = 'vivo'
print(list)#删除
del list[-3]
print(list)#列表比较
a = [1,2]
b = [2,3]
print("operatro.eq(a,b):",operator.eq(a,b))#列表推导式
# [表达式 for 变量 in 列表]
# [out_exp_res for out_exp in input_list]
# 或者
# [表达式 for 变量 in 列表 if 条件]
# [out_exp_res for out_exp in input_list if condition]names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
new_names = [name.upper() for name in names if len(name) > 3]
print(new_names)
元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号 ( ),列表使用方括号 [ ]。
元组操作
tup = (1,2,3,4,5,6,7)print(tup[1])
print(tup[0:3])print(tup[-1])
print(tup[0:-3])# 元组中的元素值不允许修改#删除元组
del tup#元组内置函数
# len(tuple) 元组长度
tuple1 = ('刘备','关羽','张飞','周瑜')
print(len(tuple1))# max(tuple) 元组最大值
print(max(tuple1))# min(tuple) 元组最小值
print(min(tuple1))# tuple(iterable) 将可迭代的序列转换为元组
list = ['曹操','司马懿','夏侯惇']
print(tuple(list))# 元组推导式
(expression for item in Sequence )
或
(expression for item in Sequence if conditional )
字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
遍历字典
movie = {
'猫妖传':['黄轩','染谷将太'],
'无问东西':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅'],
}name = input('你想查询哪个演员?')
for i in movie:actors = movie[i]#取出字典的值if name in actors:print(name+'出演了电影'+i)for i in movie:i表示key值movie[i]表示vlaue值# 遍历字典values
for value in DictName.values():
# value的名字可以自行另取
# DictName是要遍历的字典的名称
# .values():是固定的用法# 遍历字典
for k,v in DictName.items():
#遍历字典的键值对,k对应键,v对应值
#k,v 的名字可以自己取,DictName是字典名
集合
文件读写
读文件
开——读——关
file = open('D://test.txt','r',encoding='utf-8')
fileContent = file.read()
print(fileContent)
file.close()
写文件
开——写——关
# w 写入模式会清空文件再写入,a 追加写入
file = open('D://test.txt','a',encoding='utf-8')
file.write('诸葛亮\n')
file.write('赵云\n')
file.close()# 普通写法
file1 = open('abc.txt','a')
file1.write('张无忌')
file1.close()# 使用with关键字的写法
with open('abc.txt','a') as file1:
#with open('文件地址','读写模式') as 变量名:#格式:冒号不能丢file1.write('张无忌') #格式:对文件的操作要缩进#格式:无需用close()关闭
csv模块
学习模块三问
- 模块有哪些函数可用 ->可以通过dir()函数查询
- 有哪些属性或方法可用->网上看文档或找教程
- 使用格式是什么->从文档或教程中搜集案例
读入
import csvwith open('test.csv', newline = '', encoding = 'utf-8') as f:#参数encoding = 'utf-8'防止出现乱码reader = csv.reader(f)for row in reader:print(row)print('读取完毕!')
写入
import csv
with open('test.csv','a', newline='',encoding='utf-8') as f:writer = csv.writer(f)writer.writerow(['4', '猫砂', '25', '1022', '886'])writer.writerow(['5', '猫罐头', '18', '2234', '3121'])
time模块
# 第一行:必不可少的调用模块。
import timeinput("欢迎使用“时间管理器”!请按回车继续。")while True:task_name = input('请输入任务名:')task_time = int(input('你觉得自己至少可以专注这个任务多少分钟?输入 N 分钟'))input('此次任务信息:\n我要完成的任务:%s\n我至少要专注:%d分钟\n按回车开始专注:'%(task_name,task_time))# 下面应该要有两行代码,自动记录可以计算以及可以打印的开始时间。start = time.time()start_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))print(start_time)# 这里可以加一个倒计时,实时显示还剩多少时间,可参考左侧提供的资料。代码量大概有5行。for i in range(task_time * 60,0,-1):info = '任务开始,请保持专注,还需要专注'+str(i)+'秒哦!'print(info,end="")print("\b"*(len(info)*2),end="",flush=True)time.sleep(1)print('你已经专注了{}分钟,很棒~再加把劲,完成任务!!!'.format(task_time))task_status = input('请在任务完成后按输入y:')actual_time = input('该任务实际用时为几分钟?')if task_status == 'y':# 下面应该要有两行代码,自动记录可以计算以及可以打印的结束时间。# 有了自动记录的始末时间后,记录的代码也需要随之改变。with open('timelog2.txt','a', encoding = 'utf-8') as f:f.write(task_name + ' 的预计时长为:' + str(task_time) + '分钟\n')f.write(task_name + ' 的实际时长为:' + str(actual_time) + '分钟\n')again = input('建立一个新任务请按 y, 退出时间日志记录器请按 q:')if again == 'q': breakelse:print('抱歉,你的输入有误。请重启时间记录器。')print('愿被你善待的时光,予你美好的回赠。')
发送邮件
import smtplib
import csv
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr
from email.header import Header# 邮件内容
text = '''一个人的一生只有三天,昨天,今天和明天。
昨天已经过去永不复返,我们要及时汲取昨天的经验和教训;
今天已经和我们在一起,我们要倍加珍惜,脚踏实地做事情;
明天将要到来,我们要提前规划,仰望星空!
'''
# 接收人姓名邮箱数据
data = [['wangcheng1','1622579887@qq.com'],['wangcheng','1041575391@qq.com']]#写入收件人数据
with open('D://to_addrs.csv','w',newline='') as f:writer = csv.writer(f)for row in data:writer.writerow(row)# 发信方的信息:发送邮件,授权码
from_addr = '1041575391@qq.com'
password = 'osmoycuqfgvobddd'# 收信方邮箱
to_addr = '1041575391@qq.com'#发信服务器
smtp_server = 'smtp.qq.com'# 读取收件人数据,并启动写信和发信流程
with open('D://to_addrs.csv','r') as f:reader = csv.reader(f)for row in reader:to_addrs=row[1]msg = MIMEText(text,'plain','utf-8')msg['From'] = formataddr((str(Header('冉成科技','utf-8')),'1041575391@qq.com'))msg['To'] = Header(to_addrs)msg['Subject'] = Header('测试Python发送邮件','utf-8')#开启发信服务,这里使用加密传输server = smtplib.SMTP()server.connect(smtp_server,25)server.login(from_addr,password)try:server.sendmail(from_addr,to_addrs,msg.as_string())print('恭喜,发送成功')except:print('发送是被,请重试')# 关闭服务器
server.quit()
制作二维码
from MyQR import myqr
myqr.run('https://www.baidu.com',colorized=True,save_name=r'D:\demo_png.gif',picture='she.gif',contrast=1.5)
滚动广告
# 运行前可将第8行改为 for i in range(20) 控制一下循环次数。
# 或者,可以直接运行,然后用“刷新网页”这种方法强行打断程序。import os, timedef main(): # 用函数封装,可复用性会高一些(可在其他的.py文件里调用该函数。)content = ' 风变编程,陪你一起学Python ' # 广告词可自定义。while True:os.system('clear') # 完成清屏:清屏和打印结合起来,形成滚动效果。print(content)content = content[1:] + content[0] # 这行代码相当于:将字符串中第一个元素移到了最后一个。time.sleep(0.25) # 你可以改下时间,体会“循环周期”和“滚动速度”之间的关联。if __name__ == '__main__': # 类里面学到的检测方法,在函数中其实也可以用。main()
相关文章:
python知识收集
文章目录 语法def声明函数class声明类class 子类(父类) 继承 数据结构列表列表操作 元组元组操作 字典遍历字典 集合 文件读写读文件写文件 csv模块读入写入 time模块发送邮件制作二维码滚动广告 语法 def声明函数 class声明类 class 子类(父类) 继承 数据结构 列表 列表…...
传奇996_3——使用补丁添加怪物
找素材,看素材是否是打包好的,没有的话就使用工具进行素材打包(打包好后尽量别改名),并复制进客户端,D:\chuanqinew\996M2_debug\dev\anim\monster找到模型表cfg_model_info.xls,复制表中前几行…...
「Mac畅玩鸿蒙与硬件13」鸿蒙UI组件篇3 - TextInput 组件获取用户输入
在鸿蒙应用开发中,TextInput 组件用于接收用户输入,适用于文本、密码等多种输入类型。本文详细介绍鸿蒙 TextInput 组件的使用方法,包括输入限制、样式设置、事件监听及搜索框应用,帮助你灵活处理鸿蒙应用中的用户输入。 关键词 TextInput 组件用户输入输入限制事件监听搜索…...
MCU裸机任务调度架构
第1章 方式一(平均主义) int main(int argc, char **argv){/* RTC 初始化 */bsp_RTC_Init(&rtc);/* 串口初始化 */uartInit(115200);/* LED初始化 */ledInit();while(1){// 任务1(获取传感器数据)// 任务2// 任务3} } 1.1 平均主义的缺陷 获取传感器数据可以600ms去读取一…...
【Web前端】JavaScript 对象原型与继承机制
JavaScript 是一种动态类型的编程语言,其核心特性之一就是对象和原型链。理解原型及其工作机制对于掌握 JavaScript 的继承和对象关系非常重要。 什么是原型 每个对象都有一个内部属性 [[Prototype]],这个属性指向创建该对象的构造函数的原型…...
【华为HCIP实战课程二十六】中间到中间系统协议IS-IS配置默认路由及IS-IS数据库,网络工程师
一、IS-IS路由器分类 1、L1路由器:Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系。Level-1路由器只负责维护Level-1的链路状态数据库LSDB,该LSDB包含本区域的路由信息。到本区域…...
mysql上课总结(2)(DCL的所有操作总结、命令行快速启动/关闭mysql服务)
目录 一、DCL小结(数据控制语言) 1、查询表不在当前使用的数据库,可以在表名前加数据库名。 2、系统数据库mysql 的 user 表。 3、在系统数据库mysql 的 user 表当中如何判断创建的用户是否唯一? 4、系统数据库mysql 的 user 表当…...
法律智能助手:开源NLP系统助力法律文件高效审查与检索
一、系统概述 思通数科AI平台是一款融合了自然语言处理和多标签分类技术的开源智能文档分类工具,特别适用于法律行业。平台采用深度学习的BERT模型来进行特征提取与关系抽取,实现了精准的文档分类和检索。用户可以在线训练和标注数据,使系统…...
如何使用AdsPower指纹浏览器克服爬虫技术限制,安全高效进行爬虫!
随着中国开发者日益成熟,应用质量明显提升,越来越多的开发者选择出海寻找机会扩大市场。但“应用出海”说起来容易,做起来难。其中,最大的困恼就是对海外市场缺乏了解。 很多开发者会选择使用网络爬虫(Web Crawling&a…...
四、虚拟化配置寄存器(HCR_EL2)
bit字段描述63:60TWEDELTWE延迟。当HCR_EL2.TWEDEn为1,由HCR_EL2引起的WFE*陷阱的最小延迟为2的(TWEDEL 8)次方,单位周期。59TWEDEnTWE推迟启用。让由HCR EL2.TWE引起的WFE*指令延迟陷入可配置。0:陷入的延迟是已经定义的;1&…...
我要成为算法高手-滑动窗口篇
目录 滑动窗口算法题目1:长度最小的子数组题目2:无重复字符的最长子串题目3:最大连续1的个数题目4:将x减到0的最小操作数题目5:水果成篮题目6:找到字符串中所有的字母异位词题目7:串联所有单词的子串题目8:最小覆盖子串 滑动窗口算法 滑动窗口的本质还是双指针,只不…...
jenkins搭建及流水线配置
1.安装docker curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repomv CentOS-Base-Aliyun.repo /etc/yum.repos.d/yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/…...
Vue v-on
vue : v-on:func --------------------------- data(){ return{ prop:any; } } methods:{ func(){ } } template:, v-on...
快速生成高质量提示词,Image to Prompt 更高效
抖知书老师推荐: 随着 AI 技术的不断发展,视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中,图像与文字的交互需求愈发旺盛,很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…...
SELS-SSL/TLS
一、了解公钥加密(非对称加密) 非对称加密中,用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓,而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密,数据仅能使用相应的私钥进行解密。 你可以将…...
算法:排序
排序算法 1. 简单排序1.1 直接插入排序1.2 冒泡排序1.3 简单选择排序 2. 希尔排序3. 快速排序4. 堆排序5. 归并排序 将文件的内容按照某种规则进行排列。 排序算法的稳定判定:若在待排序的一个序列中, R i R_i Ri和 R j R_j Rj的关键码相同…...
MyBatis-Plus 更新对象时如何将字段值更新为 null
MyBatis-Plus 是一个 MyBatis 的增强工具,在简化开发、提高效率方面表现非常出色。然而,在使用 MyBatis-Plus 更新对象时,默认情况下是不会将字段值更新为 null 的。这是因为 MyBatis-Plus 使用了非空字段策略(FieldStrategy&…...
Unreal5从入门到精通之如何在VR中使用3DUI
文章目录 前言创建3DUI1.新建控件蓝图2.添加控件到画布上3.新建Actor蓝图MyUIActor4.添加控件组件Widget5.设置控件类和画布大小6.创建MyUIActor实例到场景中3DUI和VR射线交互1.添加按钮的点击事件2.设置MyUIActor碰撞响应3.VRPawn添加控件交互组件4.添加手柄Trigger点击事件绑…...
ViSual studio如何安装 并使用GeographicLib
在C的 Boost.Geometry、GDAL/OGR 和 GeographicLib。这些库都可以用于计算两个经纬度点之间的地面距离。 . Boost.Geometry 描述:Boost库的一部分,提供了几何计算功能,包括计算两点之间的地面距离。 优势:轻量级、易于集成到C项…...
Java程序设计:spring boot(11)——分布式缓存 Ehcache 整合
目录 1 Spring Cache 相关注解说明 1.1 CacheConfig 1.2 Cacheable 1.3 CachePut 1.4 CacheEvict 1.5 Caching 2 环境配置 2.1 pom.xml 依赖添加 2.2 ehcahe.xml ⽂件添加 2.3 application.yml 缓存配置 2.4 启动缓存 2.5 JavaBean 对象实现序列化 3 缓存实现 3.…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
