当前位置: 首页 > news >正文

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​的关键码相同&#xf…...

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.…...

豆包,攻克数字是个什么工具?《GKData-挖掘数据的无限可能》(数据爬虫采集工具)

豆包,攻克数字是个什么工具? “攻克数字” 指的是 “攻克数字(GKData)” 这样一款工具。是一款针对网页、APP中数据自动解析转表存入数据库的软件,为数据工作者而生。它是一个不会编程也能用的可视化数据解析为标准二…...

说一说QWidget

目录 关于QWidget 作为界面组件时,你需要有印象的 1. 控制属性 2. 组件状态与交互属性 3. 外观和样式属性 4. 布局与子组件管理属性 5. 图标和光标属性 6. 大小策略属性 作为单独的窗体的属性 写Qt快两年了,也写过一些规模偏大的软件&#xff0c…...

Web3.0技术入门

Web3.0技术入门是一个涉及多个方面和领域的复杂过程,以下是一些关键的步骤和要点,帮助您初步了解并掌握Web3.0技术。 一、了解Web3.0的基本概念 Web3.0也被称为下一代互联网,它是对当前互联网(Web2.0)的演进和升级。…...

spygalss cdc 检测的bug(二)

当allow_qualifier_merge设置为strict的时候,sg是要检查门的极性的。 如果qualifier和src经过与门汇聚,在同另一个src1信号或门汇聚,sg是报unsync的。 假设当qualifier为0时,0&&src||src1src1,src1无法被gat…...

集合论(ZFC)之 选择公理(Axiom of Choice)注解

直观感受(Intuition) 集合论(ZFC)中的 "C" 指的是选择公理(Axiom of Choice)中的"choice"。简单来说,对于任一非空集合 S,那么存在一个函数 f,选择出…...

JS:字符串操作

目录 1、 字符串分割 1、 字符串分割 var str "123,456,789"; console.log(str.split(,)); // ["123", "456", "789"]...

.NET 一款二进制文件转换Shellcode的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…...

【CSS】——基础入门常见操作

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:CSS引入 二:CSS对元素进行美化 1:style修饰 2:选…...

LuaJIT源码分析(五)词法分析

LuaJIT源码分析(五)词法分析 lua虽然是脚本语言,但在执行时,还是先将脚本编译成字节码,然后再由虚拟机解释执行。在编译脚本时,首先需要对源代码进行词法分析,把源代码分解为token流。lua的toke…...

005 匿名信

005 匿名信 题目描述 电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字剪下来,剪拼成一封匿名信。现在有一名举报人,希望借鉴这种方式,使用英文报刊完成举报操…...

如何找百度做网站/seo排名哪家公司好

JPA进阶二级缓存 1.主键的分类 1.自然主键:没有实际意义的主键 2.代理主键 主键的特征:非空且唯一的 GeneratedValue 默认为auto 主键的生成策略:jap标准的策略有四种 auto table sequence identity auto:自动选择一个…...

网站建设与维护 教学大纲/百度搜索 手机

Python版本管理:pyenv和pyenv-virtualenv Scrapy爬虫入门教程一 安装和基本使用 Scrapy爬虫入门教程二 官方提供Demo Scrapy爬虫入门教程三 命令行工具介绍和示例 Scrapy爬虫入门教程四 Spider(爬虫) Scrapy爬虫入门教程五 Selectors&#xf…...

在线设计网站哪个好/网站排名推广

最近在做一个项目的时候错了一个相当奇怪的问题: 代码是我从svn上直接checkout出来的,数据库是从别人的机器上直接dump出来的。环境配置妥当以后,就是在我的机器上不能正常下订单。刚开始不明白,为什么同样的代码,同样…...

单页面网站怎么做的/百度seo公司一路火

Dynamics CRM 4中提供了一些列标准的报表,但是缺少个性化。有个客户需要定制一个自己的报价单报表,其中要包含自己的Logo等自定义信息。这就需要VS设计自定义报表。报表设计好并在VS中预览正常,但是部署到CRM中,打开报表时却出错。…...

房产网站关键词优化/软件培训机构排名

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路 1,用递归,将问题转换为f(n)f(n-1)f(n-2); 2,用迭代,原理类似 代码实现 /*…...

wordpress主题怎么设置/千锋教育培训机构怎么样

int dep[N<<1];//记录欧拉序列每个位置的深度 int fin[N];//树中每个点第一次访问时的idx int p[N<<1];//欧拉序列 int dp[N<<1][20];//ST表 int cnt;//idx //p[]、dep[]以及dp的第一维记得开点数两倍。 //因为这三个数组的操作对象都是欧拉序列&#xff0c;…...