![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
Eniac-W
这个作者很懒,什么都没留下…
展开
-
装饰器
一 闭包:函数作参数,返回值,嵌套函数(https://www.runoob.com/w3cnote/python-func-decorators.html)装饰器import functools定义一个装饰器logdef log(func): # 函数做参数 @functools.wraps(func) def wrapper(*args, **kwargs): # 定义嵌套函数 print('call %s():' % func.__name__)原创 2021-03-24 13:05:54 · 462 阅读 · 0 评论 -
文件(二)open()read()readline()readlines()write()writelines()close() flush()remove()tell()seek()with-as
一、open()file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])file:表示要创建的文件对象。file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。 如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可; 否则,此参数需要指定打开文件所在的完整路径。 mode:可选参数,用于指定文件的打开模式。如果不写,则默认以只读(r)模式打开文件,原创 2020-11-14 23:57:55 · 703 阅读 · 0 评论 -
文件(一)文件路径os.path.join()、os.getcwd()、os.chdir()、路径存在判断、文件文件夹判断、绝对路径相对路径转换
一、文件路径文件夹名称和文件名Windows 和OS X 不区分大小写,Linux 区分大小写Windows 路径使用反斜杠\作为分隔符 OS X 和 Linux 路径使用正斜杠/作为分隔符如果想要程序运行在所有操作系统上,在编写 Python 脚本时,就必须处理这两种情况。os.path.join() 函数可以实现如果将单个文件和路径上的文件夹名称的字符串传递给它,os.path.join() 就会返回一个文件路径的字符串,包含正确的路径分隔符。>>> impor原创 2020-11-14 20:53:01 · 6954 阅读 · 0 评论 -
异常处理(一)try-except,try-except-else,try-except-finally,raise,sys.exe_info(),traceback
异常类型含义SyntaxError语法错误AssertionErrorassert 后的条件为假时,程序停止运行抛出异常AttributeError当试图访问的对象属性不存在时抛出的异常IndexError索引超出序列范围会引发此异常KeyError字典中查找一个不存在的关键字时引发此异常NameError尝试访问一个未声明的变量时,引发此异常TypeError不同类型数据之间的无效操作ZeroDivisionError除法运算中...原创 2020-11-14 19:57:15 · 297 阅读 · 0 评论 -
类(四)C++、Java、Python中属性、构造方法初始化顺序、父类子类构造方法调用顺序、初始化参数列表
一、C++1、不存在继承时候类的实例化顺序:先声明/初始化类中变量,再执行构造函数变量的声明/初始化顺序又按照先静态再非静态无论创建几个对象, 该类的静态成员只构建一次, 所以静态成员的构造函数只调用1次class MyClass{ public MyClass(int a) //3. 然后才是执行构造函数 { val = a; } public int val = 20; //1. 首先声明int型变量val并赋值20 public int i = 10; //2. 其次声明in原创 2020-11-14 17:03:23 · 549 阅读 · 0 评论 -
类(三)MetaClass元类和 type函数的两种用法:查看对象类型、动态创建类
一、typetype(obj) type(name, bases, dict)以上这 2 种语法格式,各参数的含义及功能分别是:第一种语法格式用来查看某个变量(类对象)的具体类型,obj 表示某个变量或者类对象。第二种语法格式用来创建类name 表示类的名称;bases 表示一个元组,其中存储的是该类的父类;dict 表示一个字典,用于表示类内定义的属性或者方法。#查看 3.4 的类型print(type(3.4))#查看类对象的类型class CLanguage: p原创 2020-11-13 14:56:47 · 135 阅读 · 0 评论 -
类(二)继承(父类方法重载/重写)、多态、封装
Python 类的三大特性 :封装、继承、多态一、继承Python 是多继承机制(和 C++ 一样),即一个子类可以同时拥有多个直接父类子类继承父类时在定义子类时,将父类(可以是多个)放在子类之后的圆括号里即可继承是相对子类来说的,即子类继承自父类;派生是相对父类来说的,即父类派生出子类。class 类名(父类1, 父类2, ...): 类定义部分**如果没有显式指定继承哪个类,默认继承 object 类(object 类是 Python 中所有类的父类,即要么是直接父类,要么是间接原创 2020-11-12 20:49:29 · 619 阅读 · 0 评论 -
类(一)属性和方法: 实例属性、类属性、局部属性,实例方法self、类方法cls、静态方法 ,重载、重写、覆盖辨析
类中用 @classmethod 修饰的方法为类方法;用 @staticmethod 修饰的方法为静态方法;不用任何修改的方法为实例方法。方法与函数的最大的区别就是方法必须通过类或者类的实例对象来调用 不可以单独调用而函数可以单独调用类初始化方法/构造方法__init__(self)在类的实例对象创建时就会执行初始化方法 初始化方法没有返回值 或者return None初始化方法中self.variableName=value 表明实例初始化时就具有了variableName属性并且属性的值为v原创 2020-11-12 17:27:25 · 2433 阅读 · 1 评论 -
函数(五) 函数式编程 lambda、map、filter
一、lambda表达式lambda 表达式又称匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用 lambda 表达式来代替语法格式是:name = lambda [参数列表] : 表达式...原创 2020-11-12 15:36:32 · 219 阅读 · 1 评论 -
函数(三)作用域之变量作用域、函数嵌套中局部函数作用域、默认值参数作用域
一、非嵌套函数下全局变量与局部变量的使用x=200>>> def f2():... print(x)...>>> f2()200x=200>>> def f2():... x=100... print(x)...>>> f2()100在函数体外定义的变量,一定是全局变量,例如:add = "http://c.biancheng.net/shell/"def text():原创 2020-11-12 01:39:25 · 1293 阅读 · 2 评论 -
函数(二)函数返回值之返回多个返回值、返回条件运算表达式的值、返回函数对象、返回None
一、函数返回多个值如果程序需要有多个返回值,既可将多个值包装成列表之后返回,也可直接返回多个值,如果 Python 函数直接返回多个值,Python 会自动将多个返回值封装成元组,在函数调用时则可以直接使用元组或者序列解包来接收该函数的返回值def sun_adn_avg(list): sum = 0 count = 0 for e in list: if isinstance(e, int) or isinstance(e, float):原创 2020-11-11 22:42:05 · 2446 阅读 · 1 评论 -
函数(一)参数传递之位置参数/关键字参数/默认参数/可变长度参数/序列解包/函数参数,函数添加函数说明文档
一、参数传递机制根据实际参数的类型不同,参数传递方式可分为 2 种:值传递和引用(地址)传递1、值传递:适用于实参类型为不可变类型(字符串、数字、元组);2、引用/地址传递:适用于实参类型为可变类型(列表,字典);def demo(obj) : obj += obj print("形参值为:",obj)print("-------值传递-----")a = "C语言中文网"print("a的值为:",a)demo(a)print("实参值为:",a)print("----原创 2020-11-11 20:11:09 · 3473 阅读 · 0 评论 -
循环(三)循环跳出 break、continue,循环中增加else
Python 提供了 2 种强制离开当前循环体的办法:使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。只用 break 语句,可以完全终止当前循环。一、breakbreak 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。若要使用break同时跳出内层和外层循环最简单的方法就是借用一个 bool 类型的变量。在跳出内循环时更改 flag 的值,原创 2020-11-10 17:25:35 · 6934 阅读 · 0 评论 -
循环(二)for循环应用:列表解析、字典解析
列表解析式是将一个列表(实际上适用于任何 可迭代对象(iterable) )转换成另一个列表的工具。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。...原创 2020-11-10 16:39:21 · 4757 阅读 · 1 评论 -
循环(一)流程控制if-elif-else、while、for,pass、assert语句,range()/zip()/enumerate()函数
python语句后面没有分号一、 if - elif - else语句Python 是一门非常独特的编程语言,通过缩进来识别代码块,具有相同缩进量的若干行代码属于同一个代码块, 因此不要胡乱缩进,代码块一定要有缩进,没有缩进的不是代码块。另外,同一个代码块的缩进量要相同,缩进量不同的不属于同一个代码块。建议缩进 1 个 Tab 键的位置,或者缩进 4 个空格;它们两者其实是等价的,很多编辑器都可以将 Tab 键设置为 4 个空格,比如,IDLE 中默认 Tab 键就是 4 个空格。在其他语言中(如原创 2020-11-10 16:24:10 · 341 阅读 · 0 评论 -
python内置对象类型(五)序列之set集合
集合的相关定义Python 中的集合和数学中的集合概念一样(无序性、不重复性),用来保存不重复的元素,即集合中的元素都是唯一的、互不相同的、但是不要求集合中的元素类型都一样,从形式上看,和字典类似,Python 集合会将所有元素放在一对大括号 {} 中相邻元素之间用“,”分隔,从内容上看,同一集合中,只能存储不可变的数据类型,包括整形、浮点型、布尔型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则 Python 解释器会抛出 TypeError 错误 ,但是可以把列表 集合这些可变对象的元原创 2020-10-31 22:37:09 · 483 阅读 · 1 评论 -
python内置对象类型(四)序列之dict字典,深拷贝与浅拷贝辨析
字典的相关定义Python 字典是一种无序的、可变的序列,元素以“键值对(key-value)”形式存储而列表(list)和元组(tuple)都是有序的序列(这里的有序不是说他们的元素大小是有序排列的的,而是说它们的元素在内存是连续挨着存放的,通常将索引值为0的元素称为第一个元素。)字典类型是 Python 中唯一的映射类型一、字典的创建键必须不同,但是不同的键的值可以一样键只能是整数、字符串或者元组这些唯一和不可变的类型,因此列表不能做键值可以是 Python 支持的任意数据类型和自定义类原创 2020-10-31 18:10:15 · 662 阅读 · 0 评论 -
python内置对象类型(三)序列之tuple元组、元组与列表的比较
rtyui原创 2020-10-31 15:46:31 · 264 阅读 · 0 评论 -
python内置对象类型(二)序列之list列表及列表与str字符串的比较
一、列表的定义和基本操作区别于C++的 list <T>(链表容器) 是一个长度可变的、由 T 类型元素组成的序列,它以双向链表的形式组织元素python里面列表list实际是一个序列 因此上一节中序列的所有相关操作都适用于列表如“+拼接,*重复,len()求长度,in判断元素,索引和切片”传送门:序列的相关操作 https://blog.csdn.net/Wjf7496/article/details/109342788二、列表list的元素特点元素可以是任何python的内原创 2020-10-30 16:42:05 · 1565 阅读 · 0 评论 -
python内置对象类型(一) 整数 浮点数和字符串
python的内置对象类型不用声明直接用如求两个力的合力一、整数int和浮点数floattype(Object) 求某个对象Object的类型 int(3.14)=3,float(3)=3.0 浮点数和整数转换id(Object) 求某个对象的内存地址**help(Object)**查看某个对象的帮助文档 函数也是对象**dir(module)**查看某个模块的内置函数 查看之前先import moduea*b乘法a**b幂次运算a^ba / b 除法 结果就是多少 不会取整a原创 2020-10-30 14:48:11 · 1413 阅读 · 0 评论