![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python编程基础
catch_dreamer
这个作者很懒,什么都没留下…
展开
-
python中使用“*”号创建多维数组的坑
1. 现象首先是一维数组的情况:arr1 = [0]*3arr[2]=3print(arr1)结果如下,可以看到,在一维数组的情况下是没有问题的,结果符合预期。而在多维数组的情况下所示,先创建一个多维数组(这里以二维数组为例),代码如下:arr2=[[1]*2]*3arr2[0][0]=3print(arr2)结果如下:可以看到,结果明显与预期不符,代码操作的意图是将第0行第0列的元素值改为3,而结果却是将第0列的所有元素值都改为了3。2. 原因出现这种情况的原因是由pyt转载 2020-11-20 13:31:41 · 174 阅读 · 0 评论 -
python的多线程及线程间的通信方式
1. 概述原创 2020-11-04 22:56:15 · 5136 阅读 · 0 评论 -
对于python中__name__的理解
在python中,经常会见到以下形式的代码:if __name__== "__main__": 具体要执行的代码块以上这段代码的具体含义如下:上述语句中,__name__是python每个模块或者说.py文件的内置变量,其用来保存所在文件或模块的名字,并且当其所在模块被作为程序的入口或者说主模块运行时,给他当中的__name__变量赋值“__main__”,而当模块被导入其他模块使用时,那么被导入的模块当中的__name__变量就被赋值为此模块的名字,而非main...原创 2020-10-22 15:24:48 · 278 阅读 · 0 评论 -
python中模块的导入和发布以及安装方法
1、模块的导入方法导入模块或者函数的方法有以下几种,具体格式如下: import 包1.包2. ... .模块名 from 包1.包2. ... .模块名 import 函数名/类名 from 包1.包2. ... .包n import 模块名2、发布自己编写的python模块在需要发布的模块的公共目录(及这些模块的共有父级目录)新建setup.py文件然后从distutils.core包中导入setup函数,然后调用setup函数,写入相关参数即可,具体如下: from distu原创 2020-10-11 22:46:37 · 267 阅读 · 0 评论 -
二叉树的前中后序及层次遍历(python)实现(包含递归非递归)
递归实现二叉树的前中后序遍历二叉树的前序遍历# 此方法会将遍历的结果保存在result列表中def preorderTraversal(node:TreeNode,result:list): if node is None: return result.append(node.val) if node.left is not None: preorderTraversal(node.left,result) if node.right is not None: preorderTr原创 2020-09-23 18:21:14 · 373 阅读 · 0 评论 -
二十七、用pymysql操作数据库中的数据简介
1、查询数据一次查询一条记录——fetchone()fetchone()函数: 若数据库中已无记录,则返回None实例:conn = pymysql.connect( host='localhost', user='root', database='mysq', password='pa...原创 2019-11-08 20:18:43 · 257 阅读 · 0 评论 -
二十六、python中利用pymysql连接数据库
首先,打开命令行,输入pip install pymysql安装pymysql模块,然后直接在文件里面导入该模块即可。下面介绍连接过程。1、导入相应模块import pymysql2、创建连接conn = pymysql.connect( #conn指的是连接名,这里可以随便起名,只要符合Python的命名规范即可。 host='localhost', #数据库服务器所...原创 2019-11-08 20:17:18 · 208 阅读 · 0 评论 -
二十五、python中封装和反射及魔法函数
1、封装封装是面向对象的三大特性之一,其本质就是将某些属性或者方法封装到类里面,不让外部直接进行调用。设置类中属性或者方法为私有属性或方法基本语法: __属性名和def __方法名()实例:class Person: def __init__(self,name,password): self.name = name self.__password...原创 2019-11-07 21:21:20 · 117 阅读 · 0 评论 -
二十四、python的面向对象编程简介
类的定义方法基本语法:class 类名[(父类)]: 属性块 #这里可以定义类中的一些属性,定义方法为:属性名=属性值 def __init__(self[,参数]) #构造函数 函数体 def 方法名(self[,参数]): #可以定义类所属的其它方法 方法体实例: 定义Person类class Person: def __init__(self,name,age,he...原创 2019-11-07 21:20:07 · 136 阅读 · 0 评论 -
二十三、python中的各种推导式
列表推导式#列表解析egg_list = []for i in range(10):egg_list.append(‘鸡蛋%s’%i)#简化方法egg_list = [‘鸡蛋%s’%i for i in range(11)]#print(egg_list)#列表推导式#格式列表名 = [’%s’%i for i in range(10)]...原创 2019-11-06 09:53:08 · 137 阅读 · 0 评论 -
二十二、生成器函数
生成器函数进阶原创 2019-11-06 09:51:42 · 136 阅读 · 0 评论 -
二十一、迭代器
首先,先看一个方法:dir(数据类型)这个方法可以查看指定数据类型下所有的方法,比如dir([])就表示返回列表的所有方法。当用上述方法查看某个数据类型拥有的方法时,会发现有很多的带双下划线的方法,我们把这些方法叫作双下方法,一般这类方法不直接调用。判断一个数据类型是否是可迭代的1、首先,用dir(数据类型)方法查看该类型有没有__iter__()方法,如果有,就是可迭代的,如果没有,就不是...原创 2019-11-05 17:20:34 · 95 阅读 · 0 评论 -
二十、生成器
生成器的简介1、生成器的本质仍然为迭代器2、生成器实现的方案有两种,分别为:生成器函数生成器表达式3、生成器的特点:生成器只会记录当前位置与下一个位置生成器函数生成器函数的特点和定义:1、生成器函数执行之后会得到一个生成器作为返回值2、只要含有yield关键字的函数都是生成器函数,且yield不可以和return共用3、yield关键字需要写在函数内部,与return不同的...原创 2019-11-05 17:19:29 · 120 阅读 · 0 评论 -
十九、装饰器
1、装饰器的作用及开放封闭原则1、装饰器的作用:在不修改函数的调用方法,但是还想在原来的函数前后添加功能2、开放封闭原则的具体含义:对扩展开放、对修改封闭2、装饰器的一般语法:首先,先看一个实例:计算某个函数的运行时间import timedef timer(f): #step one def inner(): #step four start = time.t...原创 2019-11-04 10:38:23 · 212 阅读 · 0 评论 -
十八、函数的闭包
1、闭包的简介2、闭包的简单应用原创 2019-11-04 10:36:13 · 131 阅读 · 0 评论 -
十七、nonlocal、函数名的解析和第一类对象
nonlocal关键字与global相对的,nonlocal只能用于局部变量(若局部变量当中没有此变量,则会报错。),寻找其父级的局部变量,一个声明了nonlocal的内部函数的变量修改会影响到当前函数父级的局部变量。如下:函数名的解析1、函数名的本质:本质是指向内存地址的一个名字,故此其可以赋值;函数名可以作为容器类型(不可哈希数据类型)的元素;函数名可以作为函数的参数和函数的返回值。...原创 2019-11-03 12:58:43 · 227 阅读 · 0 评论 -
十六、命名空间和作用域
命名空间的分类1、内置的命名空间:python解释器中的,如print(),input()等2、全局命名空间:是在程序从上到下被执行过程中依次加载进内存的,放置了我们设置的所有变量名和函数名3、局部命名空间:就是函数内部定义的名字。当调用函数时才会产生这个命名空间,随着函数执行的结束,这个命名空间就又消失了各个命名空间中之间的关系1、在局部,可以使用全局、内置命名空间中的名字2、在全...原创 2019-11-03 12:58:14 · 89 阅读 · 0 评论 -
十五、函数的参数
1、形参的类型形参分为以下几种情况没有参数,也就是说定义函数时不定义形参(这种情况自然是不用去谈论形参的类型的)只有一个参数,传什么就是什么(即根据传入的值确定其类型)有多个参数,与只有一个参数类似,也是根据传入时其接收的具体值来确定的形参的具体类型有:位置参数:必须传,且有几个只能传几个,不能多也不能少。默认参数:不必须传,则为默认值定义方法: def 函数名(参...原创 2019-11-02 19:39:35 · 193 阅读 · 0 评论 -
十四、函数及其返回值
1、创建函数的基本语法python中的函数分为自定义函数和系统内置函数,其中系统内置函数可以直接调用,其详细说明后面会说;这里主要说的是自定义函数。自定义函数的定义和调用的基本语法:#定义的基本语法def 函数名([形式参数]): 函数体 [return 返回值] #如果该函数有返回值,那么需要通过return返回,在调用该函数时也需要通过一个变量接收该函数的返回值#调用的基本语法...原创 2019-11-02 19:38:55 · 202 阅读 · 0 评论 -
十三、python中的文件操作
首先,现在项目下新建一个文件,名为"test.txt"1、文件操作的几个要素1、文件路径2、编码方式,如gbk等3、操作方式,如只读、只写、追加、读写、写读等。4、open函数,在做所有操作之前,打开一个文件是首先的附: 操作文件有两种形式,一种是通过文件句柄进行,另一种是通过with关键字进行。2、读取文件的操作通过文件句柄读取文件1、通过read()函数即rb模式读取文件实...原创 2019-11-01 09:35:37 · 370 阅读 · 0 评论 -
十二、python中的集合及其相关操作
1、集合(set)的简介及创建1、集合的简介集合是一个可变的数据类型,但其中存储的元素必须为不可变(可哈希)数据类型;集合无序元素不可重复(如其中有重复元素,则在创建时会删除重复的元素,只保留重复元素中的一个)集合的表示通过{}来进行2、集合的创建(实例)用两种方法分别创建名为set1和set2的集合2、集合相关的基本操作3、集合的运算4、集合与其他类型数据之间的转换...原创 2019-11-01 08:42:33 · 203 阅读 · 0 评论 -
十一、python中的一些小知识点的总结
1、“=”、“==”、“is”和“id”的区别首先,=为赋值符号;==为判断(相等)符号,判断两个值是否相等;而is则比较的是两者的内存地址;id(内容)打印内容对应的id。实例: id()方法2、print方法在python3和python2中的区别python2:print可以加括号,也可以不加,如print '***'python3:print必须加括号3、数字:...原创 2019-10-31 09:36:29 · 149 阅读 · 0 评论 -
十、python中的字典(dict)及其增删改查嵌套等
1、数据类型的划分数据类型划分:可变数据类型/不可变数据类型不可变数据类型:元组,bool,数字,字符串,不可更改的又叫可哈希可变数据类型:list,dict,不可哈希名称空间存储的是变量与值的对应关系2、字典的简介元组:"()",列表:"[]",字典:"{}"字典的key值(dict key):必须是不可变(可哈希)数据类型,而字典的值(value)可以是任意数据类型...原创 2019-10-31 09:36:09 · 531 阅读 · 0 评论 -
九、元组的嵌套
1、元祖:只读列表,可循环查询,可切片2、元组的特点:儿子不能改,孙子可能可以改实例: tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon') tu[4][3]=tu[4][3].upper() #添加SB到列表中 tu[4].append('SB') s = 'alex'说明: 以上的操作都正常,因为他们改变的其实都是元组的孙...原创 2019-10-31 09:34:54 · 1775 阅读 · 0 评论 -
八、python中列表(list)的常用操作(如增加元素等)及其嵌套
1、列表的特点列表有序,并且具有索引。2、取出列表中的数据先看几个实例:lis = ['大大怪',[3,4,5],'liudehua','evial','mark','marry']#实例1:取出零号下标的数据data0 = lis[0] #结果为:大大怪#实例2:取出1号下标的数据data1 = lis[1] #结果为:[3, 4, 5]#实例3:取出2号至5号下标的数据da...原创 2019-10-31 09:32:19 · 1608 阅读 · 0 评论 -
七、python字符串类型常用的方法及字符串的索引切片
1、str的常用方法capitalize():首字母大写实例:upper():全部大写lower():全部小写swapcase():大小写反转实例:title():每个单词的首字母大写,但单词之间的分隔符不能是字母实例:center(self,width,None):让字符串居中,总长度为width,默认为空格填充"None"实例:expandtabs():在遇到"...原创 2019-10-31 09:31:50 · 500 阅读 · 0 评论 -
六、python中的格式化输出及常用的转义字符
python中的格式化输出总的来讲有两种方式,一种是类似于C语言,用“%”后接相应的字母表示要输出的语句,再在后面添加具体的值;二是通过format函数实现。通过“%”实现格式化输出首先,先看一个实例:name = input("请输入你的姓名:")age = int(input("请输入你的年龄:"))job = input("请输入你的工作:")hobby = input("请输入...原创 2019-10-30 12:23:04 · 459 阅读 · 0 评论 -
五、python的逻辑运算、流程控制和循环语句简介
1、代码块及缩进对齐在python中,代码块通过缩进对齐表达代码逻辑,而不是像其他语言(如C、C++等)一样使用大括号。因为没有了额外的字符,所以python程序的可读性更高,而缩进也能清楚的表达一个语句属于哪个代码块,并且一个代码块也可以只有一个语句组成。2、控制语句ifpython中的条件语句只有if语句一种,并不像其他语言那样有switch、if等多种流程控制语句。python中的i...原创 2019-10-30 11:58:29 · 231 阅读 · 0 评论 -
四、python的标准数据类型的简介及其转换
1、python中的标准数据类型int——整型python中的整型不同于C等其它语言中的整型,在python3.7及以上版本中,整型包含了长整型(long),但是还和Java等语言的long类型不同,python的整型所能表示的范围远远超过C或者Java语言的长整型,事实上,python的整型仅受限于用户计算机的虚拟内存总数,有点类似于Java中的BigInteger类型。bool——布尔值...原创 2019-10-29 22:25:05 · 407 阅读 · 0 评论 -
三、PyCharm的安装教程
前面都是使用的python解释器自带的一些工具进行说明和编写实例的,现在下载python的集成开发环境PyCharm,后续的实例编写等将在集成开发环境(IDE)上进行。...原创 2019-10-29 18:57:54 · 187 阅读 · 0 评论 -
二、python的输入输出、注释、操作符、变量与赋值
python的输出语句原创 2019-10-29 18:23:39 · 640 阅读 · 0 评论 -
一、python的简单介绍
python的起源python同其他语言(java、C++等)一样,也是来自于某个研究项目,刚开始项目中的那些程序员利用手边现有的工具辛苦地工作着,所以他们设想并开发出更好的解决办法;python的作者是Guido van Rossum,于1989年底始创立了python,1991年第一个Python编译器(同时也是解释器)诞生。它是用C语言实现的,并能够调用C库(.so文件)。从一出生,Pyt...原创 2019-10-25 22:01:37 · 230 阅读 · 0 评论