
10 python基础
10 python基础
隨意的風
从事10+年的技术开发,结交天下软件研发朋友,共同探讨技术、共同进步。
展开
-
Python语言学习讲解四:常见的几个坑
Python语言学习讲解四:常见的几个坑原创 2016-11-16 09:48:52 · 585 阅读 · 0 评论 -
python @property的用法详解
在接触python时最开始接触的代码,取长方形的长和宽,定义一个长方形类,然后设置长方形的长宽属性,通过实例化的方式调用长和宽,像如下代码一样。class Rectangle(object): def __init__(self): self.width =10 self.height=20r=Rectangle()print(r.width,r.height)此...原创 2019-03-29 17:00:59 · 375 阅读 · 0 评论 -
Python之hasattr()、 getattr()、 setattr() 函数详解
hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号...原创 2019-04-04 10:46:53 · 255 阅读 · 0 评论 -
Python中enumerate用法详解
enumerate的意思即为枚举,列举。一句话来说,enumerate的作用就是对可迭代的数据进行标号并将其里面的数据和标号一并打印出来。看一下enumerate的函数描述enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 sta...原创 2019-04-04 15:47:41 · 17330 阅读 · 2 评论 -
Python之list列表、tuple元组、set集合、dict字典之间的区别
Python一些内置函数1、cmp(A, B):比较可为list、tuple等的A、B,A>B为1,A=B为0,小于为-12、len(obj): 计算元素个数。3、max(obj):返回元素最大值。4、min(obj):返回元素最小值。5、reversed(obj): 对元素进行翻转6、enumerate(obj): 遍历list的元素,返回序号index及其对应...原创 2019-04-04 15:57:54 · 1006 阅读 · 0 评论 -
Python之列表List相关操作
# 列表概念:有序的可变的元素集合# 定义# 直接定义nums = [1,2,3,4,5]# 通过range函数构造,python2 和python3 版本之间的差异;# python3 用的时候才会去构造nums = range(1,101)# 列表嵌套# 注意和C语言中数组的区别,是否可以存放不同的数据类型nums = [1,2,"ab",...原创 2019-04-04 16:04:41 · 264 阅读 · 0 评论 -
python元组Tuple的遍历
现提供两种方法对元组进行遍历 1)range() #!/usr/bin/python#-*- coding:UTF-8 -*- tuple=(("apple",2.0),("grape",3.0),("watermelon",4.0),("grapefruit",5.0)) for i in range(len(tuple)) : for j...原创 2019-04-04 16:21:52 · 3683 阅读 · 0 评论 -
python之父类可以访问子类属性和方法(即使没在父类中定义的属性和方法)
# -*- encoding:utf-8 -*-class myBase(object): """docstring for myBase""" def __init__(self): super(myBase, self).__init__() def function(self): self.function_child() #在父类中调用子类的方法,在C++中不可以...原创 2019-04-04 16:22:34 · 3901 阅读 · 1 评论 -
python 查看与更换工作目录
1. 进入python控制台2.查看工作路径,需要导入os包: import os3.查看工作路径的命令: os.getcwd()4.修改工作路径的命令: os.chdir("F:\\python-test")...原创 2019-03-27 15:49:07 · 2313 阅读 · 0 评论 -
Python 环境搭建
目录Python环境搭建Python下载Python安装Unix & Linux 平台安装 Python:Window 平台安装 Python:MAC 平台安装 Python:环境变量配置在 Unix/Linux 设置环境变量在 Windows 设置环境变量Python 环境变量运行Python1、交互式解释器:2、命令行脚本...原创 2019-03-27 15:51:27 · 516 阅读 · 0 评论 -
Python之装饰器(decorator)、@functools.wraps、@staticmethod、@classmethod使用例子
装饰器1、要了解装饰器,就需要知道什么是高阶函数,高阶函数就是将函数作为参数赋值给另一个函数2、Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数3、decorator是在被装饰的函数前加@函数名的函数来修饰下面的函数#被装饰函数def now(): print(‘2015-3-3’)想要对被装饰函数添加(修饰)...原创 2019-04-10 16:27:36 · 452 阅读 · 0 评论 -
C++和Python && 和||运算符之不同点
原创 2019-04-09 16:43:22 · 743 阅读 · 0 评论 -
python之装饰器讲解***
# -*- coding: utf-8 -*-"""如果python中的一个类定义了 __call__ 方法,那么这个类它的实例就可以作为函数调用,也就是实现了 () 运算符,即可调用对象协议"""print("========================__call__-test================================")class myTest: d...原创 2019-04-09 20:23:58 · 306 阅读 · 0 评论 -
python在多继承中子类调用某个父类的同名方法之 super讲解(mro机制)***
目录2. 钻石继承遇到的难题3. 针对钻石问题各语言的解决方法3.1. C++3.2. Java3.3. Ruby3.4. Python4. super的内核:mro5. super的具体用法5.1. super(type, obj)super(Leaf, self).__init__()的意思是说:5.2. super(type, ty...原创 2019-08-08 12:01:01 · 1907 阅读 · 0 评论 -
python 中staticmethod和classmethod、实例属性、类属性
首先值得说明的是staticmethod和classmethod都是python中定义的装饰器,用的时候需要在前面加@即@staticmethod和@classmethod翻译过来staticmethod是静态方法, classmethod是类方法下面是一个简单的例子:class A(object): v1 = "I belong to class A" ...原创 2019-08-19 21:39:19 · 1210 阅读 · 0 评论 -
python sys.modules模块
sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules都将记录这些模块。字典sys.modules对于加载模块起到了缓冲的作用。当某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。字典sys.modules具有字典所拥有的一切方...原创 2019-08-15 09:40:47 · 2028 阅读 · 0 评论 -
float精度问题***不可将浮点变量用“==”或“!=”与数字比较
C/C++中float精度问题 float f = 0.00000001f; if (f == 0.00000001f) { std::cout << "不可将浮点变量用“==”或“!=”与数字比较" << endl; } else { std::cout << "应该设法转化成“>=”或“<=”此类形式" << ...原创 2019-08-20 21:37:16 · 726 阅读 · 0 评论 -
Python 之 __dict__与dir()的不同***
Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案。__dict__与dir()的区别:dir()是一个函数,返回的是list; __dict__是一个字典,键为属性名,值为属性值; dir()用来寻找一个对象的所有属性,包括__dict__中的属性,__dict__是dir()的子集;并不是所有对象都拥有__dict__...原创 2019-09-11 14:18:55 · 369 阅读 · 0 评论 -
python3读取redis数据带有‘b’的问题
#encoding=utf-8from redis import *#读取数据d1=input("您输入的数据是:")#连接r=StrictRedis(host='localhost',port=6379)#写# pipe=r.pipeline()# pipe.set('r1','hello')# pipe.set('r2','world')# pipe.execute...原创 2019-03-29 16:56:40 · 2854 阅读 · 0 评论 -
python之redis使用
安装的Python版本3.6.1redis安装的2.8安装redis模块pip install redis简单使用redis-test.pyimport redisr=redis.Redis(host='127.0.0.1',port=6609,db=0)r.set('name','baby')print(r.get('name'))print(r.dbs...原创 2019-03-25 16:43:13 · 248 阅读 · 0 评论 -
Python语言学习讲解十九: 异常信息的详细获取
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见由于近期忙着手游发布,所以这几天没有及时更新望各位学者见谅。年底了,各大公司特别是游戏行业都着手赶年底末班车,给用户一个新年的礼物。在项目中出现了一些异常日志,但是并没有记录到详细的错误信息。特别是报错在哪一个文件哪一行等信息。traceback.print_exc()跟traceback.format_exc()有什么区别呢?format_exc()返回字符串,print_exc()则直接给打印出来。即traceback.原创 2017-01-10 12:16:17 · 940 阅读 · 0 评论 -
Python语言学习讲解十五:水印工具制作
诱因原理图片水印文字水印完整代码使用方法help命令单张图片水印单张文字水印批量图片水印批量文字水印注意与拓展注意编码问题文字水印自适应拓展总结今天来分享一个自己做的实用工具,那就是为图片添加水印。最大的特点就是支持文字水印(可以为汉字,英文),也支持图片水印。既可以单张图片加水印,也可以支持批量图片加水印。转载 2016-11-28 17:34:36 · 827 阅读 · 0 评论 -
Python语言学习讲解六:增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。语法它通过{}和:来代替%。“映射”示例通过位置In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.for原创 2016-11-16 12:34:04 · 622 阅读 · 0 评论 -
Python语言学习讲解五:列表(List)操作方法详解
这篇文章主要介绍了Python中列表(List)的详解操作方法,包含创建、访问、更新、删除、其它操作等,需要的朋友可以参考下列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方原创 2016-11-16 12:31:02 · 3538 阅读 · 0 评论 -
Python语言学习讲解十六:python之描述符__set__和__get__ 等解释
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见一、方法: 首先说下python中存在的几种方法:对象方法、静态方法、类方法等,归属权分别为obj、cls、cls 其实可以从他们的参数中就可以看的出来 对象方法参数中含有self,这个类似于C++中的this指针。 静态方法使用@staticmethod来修饰,可以通过类或类的实例对象来调用而已.原创 2016-11-30 16:03:56 · 4768 阅读 · 0 评论 -
Python语言学习讲解十七:python之__gettattr__、__getattribute__和__setattr__详解
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见python语言提供了一种挂钩,使得开发者能够很方便的编写出通用代码,他们使用的不是普通实例的属性,@property方法和描述符,而是使用的是python的魔术方法__gettattr__、__getattribute__和__setattr__,他们属于动态行为。>>> c...原创 2016-12-01 15:49:45 · 2910 阅读 · 0 评论 -
Python语言学习讲解八:类型判断type与isinstance的区别
type和isinstance共同点:用于验证参数类型区别:在判断子类上。type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。原创 2016-11-21 15:24:21 · 3743 阅读 · 0 评论 -
Python语言学习讲解七:使用traceback获取详细的异常信息
1. try: 2. 1/0 3. except Exception,e: 4. print e 输出结果是integerdivision or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。下面使用traceback模块原创 2016-11-16 12:36:53 · 3275 阅读 · 0 评论 -
Python语言学习讲解十:列表推导式
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见一、用列表推导式取代map和filterpython 提供一种精炼的写法,可以根据一份列表来制作另外一份列表。这种表达式称为list comprehension(列表推导式)。eg:>>> a = [1,2,3,4,5,6]>>> squares = [x**2 for x in a]>>> squa原创 2016-11-22 14:14:04 · 751 阅读 · 0 评论 -
Python语言学习讲解二:@staticmethod和@classmethod的作用与区别
一般来说针对于类来说方法的分类:成员方法、静态方法、类方法等成员方法:使用的时候需要需要先实例化一个对象再调用方法。静态方法:使用@staticmethod修改的方法类方法:使用@classmethod修改的方法使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,...原创 2016-11-16 09:22:46 · 872 阅读 · 0 评论 -
Python语言学习讲解一:【赋值、浅拷贝与深拷贝】
工作了十来年,第一次写blog,望有写错的地方,同仁及时指点出来。下面开始探究python语言的赋值、浅拷贝、深拷贝。*****python中的原子类型的数据不存在拷贝一说,使用的都是原内存地址的引用****** Python中关于对象复制有三种类型的使用方式【赋值】、【浅拷贝】与【深拷贝】一、【赋值】原创 2016-11-15 15:24:31 · 787 阅读 · 0 评论 -
Python语言学习讲解三:详解Python中的split()函数的使用方法
函数:split()Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)os.path.split():按照路径将文件名和路径分割开原创 2016-11-16 09:44:31 · 1086 阅读 · 0 评论 -
Python语言学习讲解九:偏函数functools.partial
我们采用的是函数式编程的思想。函数式编程的思想:可以理解成绑定了一部分参数的函数。作用就是少传参数,更短,更简洁。在游戏中特别是现在的手游,运营一般都需要分析一些数据作为游戏等级的评级,比如用户留存率的程序。注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见原创 2016-11-21 15:33:57 · 936 阅读 · 0 评论 -
Python语言学习讲解十一:生成器表达式改写较大的列表推导
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见列表推导的缺点是:在列表推导过程中,对于输入序列中的每个值来说,可能都要创建仅含一项元素的全新列表。当输入的数据比较少时,不会出现问题。但如果输入数据非常多,那么可能会消耗大量内存,并导致程序崩溃。原创 2016-11-23 16:54:07 · 777 阅读 · 0 评论 -
Python语言学习讲解十二:nonlocal关键字
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见先给大家讲解下,python解释器对表达式中的变量的引用,顺序遍历各作用域。nonlocal::如果在闭包内给该变量赋值,那么修改的其实是闭包外那个作用域中的变量,它不会延伸到模块级别。global:用来便是对该变量的赋值操作,将会直接修改模块作用域里的那个变量原创 2016-11-24 14:00:33 · 754 阅读 · 0 评论 -
Python语言学习讲解十三:python之多进程和多线程
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见在讲解进程和线程之前,先来给大家梳理下进程、线程的概念。以及他们的区别于联系,内容比较多,对于新手来说需要仔细理解。对了老手来说这里可以直接略过。O(∩_∩)O哈哈~进程:计算机资源分配的基本单位。可以打开任务管理器,里面的每一个PID都代表一个进程。线程:CPU独立运行和独立调度的基本单位。原创 2016-11-25 14:58:03 · 565 阅读 · 0 评论 -
Python语言学习讲解十四:python之用纯属性取代get和set方法
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见一、从其他语言转入python的开发者,一般可能在设计类的时候,在其中填写get和set方法,用来获取和设置类的成员属性。eg:class A(object): def get_a(self): return self.a def set_a(self,sum): self.a = sum这种setter 和 getter方法用起来很简单,但是不是python语言的标准写法。对于python学习者来说,应该先从原创 2016-11-28 16:35:52 · 5932 阅读 · 0 评论 -
Python语言学习讲解十八: __new__、__init__、__call__之详解
注:每周一到周五都会进行相关Python基础知识更新,欢迎大家提宝贵的意见由于近期忙着手游发布,所以这几天没有及时更新望各位学者见谅。年底了,各大公司特别是游戏行业都着手赶年底末班车,给用户一个新年的礼物。本期写点比较基础的,类似于C++的new 构造函数等。@staticmethod # known case of __new__def __new__(cls, *more): # known special case of object.__new__ """ T.__new__(S,原创 2017-01-04 17:40:34 · 515 阅读 · 0 评论 -
Python:操作dict时避免出现KeyError的几种方法
目录第一种解决方法第二种解决方法第三种解决方法第四种解决方法第五种解决方法在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如:Python t = { 'a': '1', 'b': '2', 'c': '3', } print(t['d']) 就会出现: Key...原创 2019-09-26 16:31:48 · 670 阅读 · 0 评论