摘要:def use_range(): """python内置range函数""" for i in range(5, 10): print(i) class IterateRange(object): """使用迭代器模拟range函数""" def __init__(self, start, end)
阅读全文
摘要:介绍 1. 是使用一种普通函数语法定义的迭代器 2. 包含yield语句的函数都被称为生成器 3. 不使用returen返回一个值,而是每次可以生成多个值,每次一个 4. 每次使用yield生成一个值后,函数都将冻结,即在此停止执行 5. 被重新唤醒后,函数将从停止的地方开始继续执行 """ 生成器
阅读全文
摘要:一、介绍 1. 迭代意味着多次重复,如同循环(list,tuple) 2. 实现了__iter__的对象是可迭代的,而实现了方法__next__的对象是迭代器 3. 调用__next__(或next()),迭代器返回下一个值 4. 如果迭代器没有可供返回的值,触发StopIteration异常 二、
阅读全文
摘要:类的上方装饰方法,那么该方法会成为该类的方法,可以通过实例调用 """ 类的装饰器 """ def f(self): print("{}要吃东西".format(self.name)) print("0000000") def eat(cls): """ 吃东西装饰器 """ # cls.eat =
阅读全文
摘要:@wraps能保证使用过该装饰器的方法能够拥有它原本的属性,例如__name__之类的 """ 带参数的装饰器 """ from functools import wraps def log(name=None): """ 记录函数执行的日志 """ def decorator(func): # *
阅读全文
摘要:(1)实现简单的带参 """ 带参数的装饰器 """ def log(name=None): """记录函数执行的日志""" def decorator(func): def wrapper(): print("{0}.start...".format(name)) func() print("{0
阅读全文
摘要:1. 用于拓展原来函数功能的一种函数 2. 返回函数的一种函数 3. 在不用更改原函数代码的前提下给函数添加新的的功能 (1)没有装饰器时的实现 """ 不用装饰器的情况 """ def hello(): print("hello...") def test(): print("test...")
阅读全文
摘要:1. @staticmethod:静态方法 2. @classmethod:类方法 class Cat(object): tag = "猫科动物" def __init__(self, name): self.name = name # 静态方法,不需要实例化,直接类名.方法就可以调用,当然,实例化
阅读全文
摘要:1. @property:将类的方法当做属性来使用,常用于对私有变量的访问方法上 class PetCat(object): """ 宠物猫 """ def __init__(self, name, age): """ 构造方法 :param name: 猫的姓名 :param age: 猫的年龄
阅读全文
摘要:注意:若同时继承的父类中有重名的方法,那么只会调用第一个,后面一个就不会调用了,所以在设计的时候,需要避免出现这样的错误 class BaseCat(object): """ 猫科动物的基础类 """ tag = "猫科动物" def __init__(self, name): self.name
阅读全文
摘要:子类可以选择直接继承父类的方法,也可以重写父类方法 调用父类方法:super(子类名,self).父类方法 子类判断:issubclass(子类名, 父类名) class BaseCat(object): """ 猫科动物的基础类 """ tag = "猫科动物" def __init__(self
阅读全文
摘要:注意:以“__”开头的变量默认为私有变量,不能直接访问 验证实例:isinstance class Cat(object): """猫科动物类""" tag = "我是家猫" def __init__(self, name, age): """以双下划线开头的属性默认为私有变量,是无法直接对其进行操
阅读全文
摘要:1. 窗口快捷键 快捷键 描述 Ctrl+W,W 浏览器窗口 (浏览橱窗用有道的翻译是window shopping) Ctrl+W,S 解决方案管理器 (Solution) Ctrl+W,C 类视图 (Class) Ctrl+W,E 错误列表 (Error) Ctrl+W,O 输出窗口(输出Out
阅读全文
摘要:1. 打开文件/关闭文件 open:f = open('test.txt') close:f.close() 注意:此处需要做异常处理,文件不存在时会有异常 2. with open:利用它打开文件可以不需要关闭 with open('test.txt') as f: do_something(f)
阅读全文
摘要:值 描述 'r' 读取模式(默认值) 'w' 写入模式 'x' 独占写入模式 'a' 附加模式 'b' 二进制模式(与其他模式结合使用) 't' 文本模式(默认值,与其他模式结合使用) '+' 读写模式(与其他模式结合使用)
阅读全文
摘要:写在前面:lambda函数是一种表达式,创建内嵌的简单匿名函数 1. filter函数 返回一个filter对象,其中包含对其执行函数时结果为真的所有元素 filter(func, seq) def use_filter(l): """ 获取指定列表/元组中的奇数 :param l: list/tu
阅读全文
摘要:1. 独立:相互隔离,互不影响 2. 纯净:只有我一个项目用的包和依赖,好管理 3. 方便:摒弃频繁安装/卸载包和依赖
阅读全文
摘要:1. 建立在宿主环境上的独立容器 2. 具备和宿主环境相同的功能 3. 快速创建、删除,便于管理
阅读全文
摘要:一、安装虚拟环境:打开cmd,在任意一个文件夹下输入:pip install virtualenv 如果已经安装过,则会显示: 二、创建虚拟环境:进入到自定义的目录下创建:virtualenv django1.11 三、进入/退出虚拟环境:activate/deactivate 1. 进入djang
阅读全文
摘要:参数 含义 %A 星期的名称,如Monday %B 月份名,如January %m 用数字表示的月份(01-12) %d 用数字表示月份中的一天(01-31) %Y 四位的年份,如2010 %y 两位的年份,如10 %H 24小时制的小时数(00-23) %l 12小时制的小时数(01-12) %p
阅读全文
摘要:函数/变量 描述 timedelta 对日期进行加减操作时使用 date date类表示一个日期 datetime.strftime 将datetime对象格式化成字符串 datetime.strptime 将字符串按照一定的格式转换成datetime对象 time 表示一个时间类 datetime
阅读全文
摘要:函数/变量 描述 environ 包含环境变量的映射 system(command) 在shell中执行操作系统命令 sep 路径中使用的分隔符 pathsep 分隔不同路径的分隔符 linesep 行分隔符('\n','\r'或'\r\n') urandom(n) 返回n个字节的强加密随机数据 a
阅读全文
摘要:写在前面:只备份.txt文件,以下图片显示src包下的内容,其中test文件与test.py文件都不会被备份 备份文件代码: import os class FileBackup(object): """ 文本文件备份 """ def __init__(self, src, dist): """ 构
阅读全文
摘要:写在前面:以下出现包与模块的名称以及其中的方法可以参考博客:https://www.cnblogs.com/ac-chang/p/12673223.html 1. 注意是英文半角的双下划线 2. 将一个文件夹变成模块 3. 导入包实际是导入它的__init__.py 4. 一般为空,可以批量导入所需
阅读全文
摘要:写在前面:存放包的结构 alipy/tools.py下的代码 wechat_pay/tools.py下的代码 __init__.py文件皆为空 包的引用又称为:包的引入,模块导入,模块引入 1. 引入整个包:import module """全局引入""" # import random # imp
阅读全文
摘要:常用快捷键: 快捷键 说明 Ctrl + D 复制选定的区域或行 Ctrl + Y 删除选定的行 Ctrl + Alt + L 代码格式化 Ctrl + Alt + O 优化导入(去掉用不到的包导入) Ctrl + 鼠标 简介/进入代码定义 Ctrl + / 行注释,取消注释 Ctrl + 左方括号
阅读全文
摘要:hello.py """ 文档注释:hello模块 自己定义的 """ # 定义的一个常量,约定俗成:所有字母都大写 SYS_DATA = "ABCDEF" def func(): """ 定义了一个hello函数 :return:无 """ print("hello,this is func")
阅读全文
摘要:一、导入:import os 1. 新建hello.py当做自己自定义的模块 2. 新建test.py导入hello模块 3. 运行test.py 以上只是举一个简单的例子,表示自己自定义的模块,一般模块中会写方法或者类,再让其他文件调用 二、定位:当前目录 --> 内置函数 --> sys.pat
阅读全文
摘要:一、模块分类 1. Python标准模块(内置模块,标准库) 2. 第三方模块/库(pypi.org) 3. 自定义模块 二、模块的好处 1. 可维护性更强 2. 方便代码重用
阅读全文
摘要:1. cd:切换目录 2. dir:查看目录下的文件和文件夹 3. cls:清除屏幕显示的内容 4. exit:退出控制台
阅读全文
摘要:一、步骤一:配置环境变量 这个是保证在命令/终端窗口能运行python文件的前提。操作:右击“我的电脑”,选择“属性”,选择“高级系统设置”,选择“环境变量”,找到Path变量,新建,找到下载到电脑的python路径,例如我下载的路径: 将路径新建在Path变量中,这里我已经添加过了: 二、步骤二:
阅读全文
摘要:# yci助手 import random # 机构名称/电话号码字符串 phone_numbers_str = "匪警[110],火警[119],急救中心[120],道路交通事故报警[122],水上求救专用电话[12395],天气预报[12121],报时服务[12117],森林火警[12119],
阅读全文
摘要:1. 设置参数默认值 # 1. 设置参数默认值,只需在形参后添加 “ =具体值 ” 即可 def cal_exchange_rate(amt, source, target = "USD"): if source == "CNY" and target == "USD": # 货币比为:6.7516
阅读全文
摘要:1. 形参在函数的定义时需要输入的参数 2. 实际调用函数时使用的参数为实参 3. 实参与实参的数据类型需要相同 # 函数的形参与实参 def print_verse(verse_name, is_show_title): if verse_name == "悯农": if is_show_titl
阅读全文
摘要:语法:def 函数名(形参1, 形参2, ……, 形参n): 要运行的代码 return 输出的数据(返回值) # 打印诗词 def print_verse(): print("锄禾日当午,") print("汗滴禾下土。") print("谁知盘中餐,") print("粒粒皆辛苦。") # 调用
阅读全文
摘要:1. 隐藏实现功能的细节 2. 提高代码的重用度 3. 提高可读性,便于调试
阅读全文
摘要:1. 是实现具有特定功能的代码 2. Python中有很多内置函数 print():控制台打印 input():接收控制台输入 format():格式化字符串 list():创建列表 lower():字符串转小写 upper():字符串转大写 3. 开发者自定义函数
阅读全文
摘要:# 项目作业:货币兑换 注:1美元 = 6.72人民币,1人民币 = 0.13欧元 # 循环菜单项,并用service_menu记录选择的服务,为0时退出程序 while True: print("**********欢迎使用货币转换服务系统**********") print("1. 人民币转换美
阅读全文
摘要:一、列表生成式 # 1. 列表生成式,语法:[被追加的数据 循环语句 循环或者判断语句] lst2 = [i * 10 for i in range(10, 20)] print(lst2) # 输出:[100, 110, 120, 130, 140, 150, 160, 170, 180, 190
阅读全文
摘要:collage1 = {"哲学", "经济学", "法学", "教育学"} 一、遍历 for 变量名 in 集合名 for c in collage1: print(c) # 输出: # 经济学 # 教育学 # 哲学 # 法学 注意:不能按照下标来取值,因为集合无序 二、判断元素是否存在 # 判断元
阅读全文
摘要:1. ==:判断集合是否相等 2. issubset:是否为子集 3. issuperset:是否为父集 4. isdisjoint:判断是否存在相同元素,存在返回False,不存在返回True # 集合间的关系操作 s1 = {1, 2, 3, 4, 5, 6} s2 = {6, 5, 4, 3,
阅读全文
摘要:交集:intersection,intersection_update 并集:union 差集:difference,difference_update # 集合的数学运算 collage1 = {"哲学", "经济学", "法学", "教育学"} collage2 = set(["金融学", "哲
阅读全文
摘要:# 集合的创建 # 1. 使用{}创建 collage1 = {"哲学", "经济学", "法学", "教育学"} # 注意:输出的集合是无序的 print(collage1) # 输出:{'法学', '经济学', '哲学', '教育学'} # 2. 通过set()函数:从其他数据结构转换 coll
阅读全文
摘要:# 序列类型间的相互转换 l1 = ['a', 'b', 'c'] t1 = ('d', 'e', 'f') s1 = "abc123" s2 = "abc,123" r1 = range(1, 4) 1. list():转为列表 # list()函数:将其他函数转为列表 print(list(t1
阅读全文
摘要:一、遍历其他序列 # 1. 通过range遍历其他序列 str1 = "abcdefgh" for i in range(0, len(str1)): print(str1[i]) 二、斐波那契数列 # 2. 斐波那契数列(后一位为前两位数之和) # 1,1,2,3,5,8,13,…… result
阅读全文
摘要:# 创建数字序列 r1 = range(10, 20) # 10-19的整数,左闭右开 print(r1) # 输出:range(10, 20) print(type(r1)) # 输出:<class 'range'> # 数字序列的取值:正序&倒序&范围 print(r1[9]) # 输出:19
阅读全文
摘要:一、认识序列 1. 指“有序”的队列 2. 序列中的元素顺序按照添加顺序排列 3. 序列中的数据通过索引来获得 4. 是一种数据结构的总称,不是一种数据类型 二、序列包含的数据结构 1. 字符串(str) 2. 列表(List) 3. 元组(Tuple) 4. 数字序列(Range)
阅读全文
摘要:列表 元组 内容允许扩展 内容不可变 内存存储动态变化 创建后固定不变 效率较低 效率最高 运行时数据需要变更时使用 用于保存稳定不变的数据 保存天气数据、股市数据 保存国家名、元素周期表
阅读全文
摘要:一、元组的创建 # 1. 元组的创建 # 1.1 带括号(推荐) t1 = ('a','b','c',1,2,3) print(type(t1)) # 输出:<class 'tuple'> # 1.2 不带括号 t2 = 'a','b','c',1,2,3 print(type(t2)) # 输出:
阅读全文
摘要:1.“不可变”的列表 2. 元组使用小括号,列表使用方括号
阅读全文
摘要:# 记录员工的信息:工号,姓名,职位,部门,薪水 source = "7782,CLARK,MANAGER,SALES,5000$" \ "7934,MILLER,SALESMAN,SALES,3000$" \ "7369,SMITH,ANALYST,RESEARCH,2000" # 1. 根据$号
阅读全文
摘要:# 字典的常用操作 emp1 = {'name':'jack','grade':'B'} 一、为字典设置默认值 dic.setdefault([指定key] , [默认值}) # 1. 为字典设置默认值setdefault,如果某个key存在则忽略,反之则设置 emp2 = {'name':'lis
阅读全文
摘要:# 字典的写操作 employee = { 'name':'王峰', 'sex':'男', 'hiredate':'1997-2-2', 'salary':'2000', 'job':'销售', 'welfare':100 } 一、更新 # 字典的更新 employee['job'] = '运维'
阅读全文
摘要:# 字典的遍历employee = { 'name':'王峰', 'sex':'男', 'hiredate':'1997-2-2', 'salary':'2000', 'job':'销售' } 一、遍历key(for key in 字典名) for key in employee: v = empl
阅读全文
摘要:# 字典的取值employee = { 'name':'王峰', 'sex':'男', 'hiredate':'1997-2-2', 'salary':'2000', 'job':'销售' } 一、通过key值取值 # 1.通过key值取值 name = employee['name'] print
阅读全文
摘要:一、使用{}创建 # 1.使用{} dic1 = {} # 空的字典 print(type(dic1)) # 输出:<class 'dict'> dic2 = { 'name':'王峰', 'sex':'男', 'hiredate':'1997-2-2', 'salary':'2000', 'job
阅读全文
摘要:1.采用键值对的形式记录数据,key建议使用英文 2.key不允许重复,value可以重复 3.字典是可以修改的,运行时动态调整存储空间
阅读全文
摘要:# 多维列表(嵌套列表) # [[姓名,年龄,工资],[姓名,年龄,工资],[姓名,年龄,工资]] # str = "张三,30,2000" # l = str.split(",") # print(l) # 输出:['张三', '30', '2000'] emp_list = [] while T
阅读全文
摘要:# 其他常用方法 persons = ["张三","赵六","李四","王五","赵六","钱七","孙八"] 1. list.count([指定元素]):返回指定元素出现的次数 # 获取指定元素出现次数 cnt = persons.count("赵六") print(cnt) # 输出:2 2.
阅读全文
摘要:# 列表的写操作 persons = ["张三","李四","王五","赵六","钱七","孙八"] 一、增 # 列表的追加 persons.append("杨九") print(persons) # 输出:['张三', '李四', '王五', '赵六', '钱七', '孙八', '杨九'] # 列
阅读全文
摘要:# 列表的反转与排序 persons = ["张三","李四","王五","赵六","钱七","孙八"] numbers = [23,25,22,10,18,6] # 反转列表 persons.reverse() print(persons) # 输出:['孙八', '钱七', '赵六', '王五'
阅读全文
摘要:# 遍历列表 persons = ["张三","李四","王五","赵六","钱七","孙八"] # for循环遍历列表 # for 迭代变量 in 可迭代对象 i = 0 # 获取列表长度:len(str) length = len(persons) for p in persons: if p
阅读全文
摘要:# 列表的取值 list1 = ["张三","李四","王五","赵六","钱七","孙八"] print(list1) # 输出:['张三', '李四', '王五', '赵六', '钱七', '孙八'] # 输出:赵六 print(list1[3]) print(list1[-3]) # 范围取值
阅读全文
摘要:# 列表的创建 # 变量名 = [元素1,元素2,……] list1 = ['a','b','c',1,2,3,3,4] print(list1) # 输出:['a', 'b', 'c', 1, 2, 3, 3, 4] # 空列表是很有用的,可以不断的往里面加数据 list2 = [] print(
阅读全文
摘要:1.列表中的数据按顺序排列 2.列表有正序和倒序两种索引 (1)正序下标从0开始 (2)倒序下标从-1开始 3.可以存储任意类型,且允许重复
阅读全文