python函数

全网最详细的Python学习笔记,值得收藏

邮差的信 提交于 2020-03-28 12:25:36
我总结了python已下点: 面向对象 类和对象的创建 属相相关 方法相关 元类 内置的特殊属性 内置的特殊方法 PS注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新教程项目,还可以跟老司机交流讨教! 类和对象的创建 类 # 经典类 没有继承 object的类 # 新式类 继承了 object的类 class Money: # 2.x中默认是经典类,3.x中是新式类 pass class Money(object): # 兼容的一种写法 pass # Money既是类的__name__属性名,又是一个引用该类的变量 print(Money.__name__) # Money xxx = Money print(xxx.__name__) # Money 对象 one = Money() print(one) # <__main__.Money object at 0x000001555E9534A8> print(one.__class__) # <class '__main__.Money'> 属性相关 对象属性 class Person: pass p = Person() # 给 p对象增加属性,

python基础学习笔记——模块

一个人想着一个人 提交于 2020-03-28 02:49:39
自定义模块 我们今天来学习一下自定义模块(也就是私人订制),我们要自定义模块,首先就要知道什么是模块啊 一个函数封装一个功能,比如现在有一个软件,不可能将所有程序都写入一个文件,所以咱们应该分文件,组织结构要好,代码不冗余,所以要分文件,但是分文件,分了5个文件,每个文件里面可能都有相同的功能(函数),怎么办?所以将这些相同的功能封装到一个文件中. 模块就是文件,存放一堆函数,谁用谁拿。怎么拿? 比如:我要策马奔腾共享人世繁华,应该怎么样?我应该骑马,你也要去浪,你是不是也要骑马。 模块是一系列常用功能的集合体,一个py文件就是一个模块 为什么要使用模块? 1、从文件级别组织程序,更方便管理 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用 2、拿来主义,提升开发效率 同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率,避免重复造轮子。 ps: 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python meet.py方式去执行,此时meet

python模块

感情迁移 提交于 2020-03-28 02:48:46
一 模块介绍 1、什么是模块? 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。 常见的场景:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用。 在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别:    1 使用python编写的.py文件   2 已被编译为共享库或DLL的C或C++扩展   3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)   4 使用C编写并链接到python解释器的内置模块 2、为何要使用模块? 1、从文件级别组织程序,更方便管理 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用 2、拿来主义,提升开发效率 同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率 ps: 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test

Python 的AES加密与解密

不想你离开。 提交于 2020-03-28 02:46:38
AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows 下使用AES时要安装的是pycryptodome 模块 pip install pycryptodome python 在 Linux 下使用AES时要安装的是pycrypto模块 pip install pycrypto CBC加密需要一个十六位的key(密钥)和一个十六位iv(偏移量) ECB加密不需要iv AES CBC 加密的python实现 1 from Crypto.Cipher import AES 2 from binascii import b2a_hex, a2b_hex 3 4 5 # 如果text不足16位的倍数就用空格补足为16位 6 def add_to_16(text): 7 if len(text.encode('utf-8')) % 16: 8 add = 16 - (len(text.encode('utf-8')) % 16) 9 else: 10 add = 0 11 text = text + ('\0' * add) 12 return text.encode('utf-8') 13 14 15 # 加密函数 16 def encrypt(text)

常用模块之 time,datetime,random,os,sys

徘徊边缘 提交于 2020-03-28 02:34:35
time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。1970年之前的日期无法以此表示,太遥远的日期也不行,UNIX和Windows只支持到2038年,时间戳最适合做日期运算。 格式化的时间字符串(Format String):按照指定格式输出日期字符串 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时) import time #我们先以当前时间为准,让大家快速认识三种形式的时间 print(time.time()) # 时间戳:1487130156.419527 print(time.strftime("%Y-%m-%d %X")) #格式化的时间字符串:'2017-02-15 11:40:53' print(time.localtime()) #本地时区的struct_time print(time.gmtime()) #UTC时区的struct_time 三种形式的时间实例 """ python中时间日期格式化符号: ----------------------------

Python_常见内置函数

天涯浪子 提交于 2020-03-28 00:32:21
1. 方法 注:class(类)是具有相同的属性和方法的对象的集合。 2. 例子 (1)数据/集合类型 str(object=''); str(object=b'', encoding='utf-8', errors='strict') int(x, base=10) float(x=0) complex(real=0, imag=0) 1 >>> str(123) 2 '123' 3 >>> str(['a', 'b', 'c']) 4 "['a', 'b', 'c']" 5 >>> str(123).join(['a', 'b', 'c']) 6 'a123b123c' 7 >>> int('123') 8 123 9 >>> float('123') 10 123.0 11 >>> (0.75).as_integer_ratio() 12 (3, 4) 13 >>> (1.0).is_integer() 14 True 15 >>> complex(1, 2) 16 (1+2j) 17 >>> complex(1, 2).conjugate() 18 (1-2j) 注:str方法,详情见 https://www.cnblogs.com/shz-blog/p/12426630.html range(stop), range(start, stop[, step]) tuple

python 名称修饰,描述符,@classmethod、@staticmethd、@propert

我是研究僧i 提交于 2020-03-27 23:14:35
名称修饰 java和C#等其他高级语言中都有private关键字来修饰一个属性或字段是私有的,但是python中并没有private,而是有个与它接近的概念旧式名称修饰。每当在一个属性前面加上__前缀,解释器就会立刻将其重命名: 直接访问会抛异常 利用dir函数查看内部属性 python内部会把__前缀的属性重命名为【_类名+属性名】;因此在python中如果一个属性不是共有的就约定使用双下划线__为前缀,它不会调用任何名称修饰的算法,只是说名这个属性是该类的私有属性。 幸运的是python中还有其他机制类构建类的私有和共有代码,即使用描述符和property这些POP设计的关键特性 什么是描述符 python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问。这些方法有 get (), set (), 和 delete ()。如果这些方法中的任何一个被定义在一个对象中,这个对象就是一个描述符 它是一个类,定义了另一个类的访问方式,即一个类可以将属性管理托管给另一个类 描述符协议 描述符类基于3个特殊方法,这3个方法组成了描述符协议 set (self,obj,type=none)设置属性时调用,也称为setter get (self,obj,value) 读取属性时调用,也称为getter delete (self,obj)

python学习之偏函数partial

天涯浪子 提交于 2020-03-27 23:08:56
partial 一共有三个部分: (1)第一部分也就是第一个参数,是一个函数,这个函数可以是你定义的,也可以是Python内置函数 (2)第二部分是一个可变参数,*args, (3)第三部分是一个关键字参数 **args, partial函数的作用就是:将所作用的函数作为partial()函数的第一个参数, 原函数的各个参数依次作为partial()函数的后续参数,原函数有关键字参数的一定要带上关键字, 没有的话,按原有参数顺序进行补充。 Python版本3.6 from functools import partial def sum_add(*args1): def decorator(func): def my_sum(*args2): my_s=0 for n in args1: my_s+=n return func(*args2)+my_s return my_sum return decorator@sum_add(10,20)def test_sum(*args): value=0 for i in args: value+=i return valueprint(test_sum(1,2,3,4,5))#########################以上通过带参数装饰器,获得1+2+3+4+5+10+20 列子def sum(*args): s=0 for n

学习Python装饰器,看这一篇文章就够了

一世执手 提交于 2020-03-27 21:39:54
讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。 谈装饰器前,还要先要明白一件事,Python 中的函数和 Java、C++不太一样,Python 中的函数可以像普通变量一样当做参数传递给另外一个函数,例如: 先来看一个简单例子,虽然实际代码可能比这复杂很多: 说到这里。顺便提醒下大家不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新教程项目,还可以跟老司机交流讨教! 现在有一个新的需求,希望可以记录下函数的执行日志,于是在代码中添加日志代码: 简单装饰器 @ 语法糖 *args、**kwargs可能有人问,如果我的业务逻辑函数 foo 需要参数怎么办?比如: 我们可以在定义 wrapper 函数的时候指定参数: 比如: 这时,你就可以把 wrapper 函数指定关键字函数: 带参数的装饰器 @use_logging(level="warn")等价于@decorator 类装饰器 functools.wraps 例子: 装饰器顺序一个函数还可以同时定义多个装饰器,比如: 总结:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心

python中main函数的用法

落爺英雄遲暮 提交于 2020-03-27 20:58:04
什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。 main函数的作用? __ name__ == '__ main__'是Python的main函数入口。并非说,加入这句才能使用python xxx.py来执行,而是说,这里可以判断,当前是否是直接被python直接调用执行。 main为什么只有文件当作执行程序的时候才会被执行呢? 这是由于两方面原因,一方面,main函数是所有执行程序的入口;另一方面,python的解释器是顺序执行脚本的并且不会调用任何不属于程序本身的代码和函数,需要补充说明的一点是,如果是被作为一个模块或库import到程序中,则会直接成为代码的一部分。 参考代码: 文件:main_function.py import datetime print('Hello World!') print('Time is ', datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S %A')) def main(): print('this message is from main function') if __name__ == '__main__': main() 执行结果: ➜ main git:(master) ✗ py main