热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python基础笔记(非系统/自用/参考小甲鱼的零基础入门学习python)上

---恢复内容开始---1.原始字符串的使用,在字符串前加r就行(用于对\进行自动转译)>>>strrC:\now\wifrC:\\now\\wifr

---恢复内容开始---

1.原始字符串的使用,在字符串前加r就行(用于对\进行自动转译)

  >>>str = r'C:\now\wifr'
  'C:\\now\\wifr'
  但在字符串后面不能有空的'\'
  >>>str = r'C:\now\wirf\'
  error
  长字符串的使用,用""" """将字符串包起来
  >>>str = """ xsf,
       xfasf,
        sdasdas"""
  'xsf,\nxfasf,\nsdasdas\n'
(会自动给回车处加\n)

2.isinstance(变量,类型):用于判断该变量是否为该类型,返回t/f

   id(变量名):用于查看变量的地址

   dir([]):不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表

3.在变量命名时,不能与系统BIF重名,否则会时原BIF函数无法使用

4.python2版本整形除法‘/’采用地板规则,向下取整,python3版本则保留小数,有‘//'运算负责采用地板规则,‘**’为幂运算(eg:2**3=8)

5.幂运算符,比起左侧的一元运算符优先级高,比起右边的一元运算符优先级低(eg:  -3**2=-9 => -<** =>-(3**2)  3**-1=1/3 => **<- =>3**(-1))

(一元操作符:只有一个操作数的运算符  二元操作符:两个操作数)

6.python允许a

7.运算符优先级:**>正负>加减乘除>大于小于等于>and or not

8.python允许esif(等同于else if )if else 搭配比多个if好

9.python的三元操作符: x if 布尔 else y 等同于C的 布尔?x:y

10.断言assert:当assert关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError异常

  >>>assert 3>4

   AssertionError

作用:一般来说我们可以用该关键字在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了

11.python的for循环可以直接调用迭代器的next方法,会自动的捕获stoplteration异常,自动结束循环

语法:for 变量 in 表达式(也可以是文件):

          循环体

eg:>>>for i in 'wocao':

      print(i,end = ' ')

  w o c a o 

for常与range(start,stop,step)搭配(start(可有可无,无则从零开始)到stop-1,step是间隔,step为2,则类似1,3,5.。。)

eg:>>>for i in range(5):

      print(i)

  0/n1....4

12.列表(跟数组差不多,但可混可空)。添加可用append()只能添加一个eg:列表名.append(xxx);也可以用exend([,]),可添加多个eg:列表名.extend([xxx,xxxx])。指定位置添加用insert(添加位置,添加内容)。

删除用remove(具体内容),或del 列表名[下标](del也可直接将整个列表删除);因为python的列表是用栈(数据结构)来存储的,所以也可以用pop(索引可有可无)来将栈顶(列表最后)元素弹出

列表分片:列表名[x:y];列表与列表的比较:以首元素为准;列表*int:将列表复制3次存进列表中;判断元素是否在列表中,用in(只能判断同一层) eg:xxx in listname 返回t/f,对于listname[xxx,[xxxx,xx],x]   xxxx in listname return False | xxxx in listname[1](嵌套列表所在下标) return True

listname.reverse():翻转列表      listname.sort(func=排序算法默认归并,key=算法搭配的关键字,reverse=t/f默认f):排序

列表复制:1. listname1=listname[:](分片) 两个指向不同的内存地址,只是内容一样,所以原列表改变不影响listname1

     2. listname2=listname 两个指向同一个内存地址,当原列表发生改变时,listname2也会改变

13.元组tuple(不可变位,不可重新赋值的list):声明一个元组,tuplename=(,,,,)关键是','  tuplename=8, 元组 tuplename=(8) int   2*(8)=16 2*(8,)=(8,8) 

添加元素(通过切片的方式):tuplename=tuplename[:添加位]+(添加的元素,)+tuplename[添加位:]

14.字符串拼接用+,并不是改变原来的字符串,而是将拼接后的字符串贴上一样的标签,原来的字符串会被释放

15.判断字符串是否为数字可用isdigit()、isnumeric()、isdecimal()方法,三者的区别如下

isdigit()

True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无

isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

16.format()方法

17.声明函数:def func_name(xxx='默认值可有可无',xxxx='默认值可有可无',*xxxxx可变(参数个数无限,原理是打包成元组)参数):

        'xxxxx函数文档,用func_name.__doc__可调出来看,不调用则不显示'

        #注释

                       函数体

*args为任意的参数,通过下面代码将这些参数写进列表中

 关键词参数:在调用函数时,传参使用 形参名='实参' 可避免实参顺序错乱导致结果与预期不符 eg:func_name(name='比企谷彩羽’,xxx='xxxx')

python可以返回多个值(以列表或元组的形式)

18.过程:没有返回值的函数

19.在试图在函数内部修改全局变量时,python隐蔽机制会在函数中创建一个名字一模一样的局部变量,从而使修改的结果是修改了局部变量,全局变量不变

但可以通过global关键字在函数内修改全局变量    

20.内部函数(嵌套函数):在函数体里面再声明一个函数,在外层函数体内可以任意的调用内部函数,但出了外层函数,则不能对内部函数直接进行调用

21.闭包:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a, 内层函数依旧传入一个参数b, 内层函数使用a和b, 最后返回内层函数)

.

将外层函数看为全局,则在外层函数里声明的变量对于内层函数来说就相当于全局变量,所以试图在内层函数修改外层函数变量时,python会将外层变量屏蔽起来,系统就会报错:

解决方法:python3之后,可以同过nonlocal关键字来解决,而python2则需同过将外层函数变量声明成容器(list,tuple,str,...),因为容器不是存放在栈里面 

容器:nonlocal关键字:  

22.匿名函数:使用lambda关键字声明函数,调用时直接赋值给某个变量就行,当匿名函数不使用时,python的垃圾回收机制会将该函数清理掉

其中x为参数,参数可有多个

23.两个值得认识的BIF:过滤器filter(function or None,iterable迭代器列表之类的)将迭代器中True的抽取出来

自己写过滤规则,下面的是将偶数过滤

function参数只需将函数名传给filter(),左=右

映射map(function,iterable)将iterable根据function进行加工,eg:

24.python系统默认的递归(recursion)深度是100层,想要自定义递归深度,需

>>>import sys

>>>sys.setrecursionlimit(deepth)

25.字典dict(key->value):字典的标志性符号为{ } eg:

dictname = {key1:value1, key2:value2,...}

声明之后就可以通过key来索引对应的value:x = dictname[key1]   ==> x == value1

 字典常用方法:

fromkeys(...)  --> dict.fromkeys(S[,v]) -> new dict with keys from S and values equal to v(v defaults to None)

keys() --> dict.keys() 将字典中的key抽出来,常用于for  -->  for each in dictname.keys()

values() -->dict.values() 将字典中的vaules抽出来,常用于for  -->  for each in dictname.values()

items() -->dict.items() 将字典中的(key,value)组合抽出来,常用于for  -->  for each in dictname.items()

keys():values():items():

 

 get()-->dict.get(key)获取value,比直接dict[key]灵活,当dict[key]不存在时系统会报错,而get(key)则会返回一个None来免程序报错

 

clear()-->dict.clear()将字典清空

copy()-->dict.copy()复制字典--> dict2 = dict1.copy() 跟dict3 = dict1的效果一样,但dict2所在的地址于dict1不同,而dict3与dict1指向同一个地址

26.成员资格操作符:in 和 not in   -->  用来判断某元素是否存在于某容器中(list,字典,str,tuple...) eg:xxx in xxxx  返回t/f

27.集合(set):集合中的元素是不重复的。创建:直接把一堆元素用花括号括起来;或用set([,,,,])工厂函数来创建

 直接用花括号声明时,没有键值对的为集合,有则为字典;集合会将重复的值去除;集合无法用下标索引

不可变集合(frozenset):不能增删改

28.打开文件(open):open(file, mode = '打开模式默认r', buffering = 1, encoding = None, newline = None, closefd = True, opener = None)

在使用write()或writeline()方法时,打开模式需为'w'或‘a',w会覆盖原来的内容,a则在原内容的末尾添加新内容

若通过open创建了文件没有执行filename.close()操作,写入的内容将不被保存

with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭/线程中锁的自动获取和释放等。

29.常用模块: os模块、os.path模块(是处理出来的模块,使用os.path.function)、time模块、

pickle模块(将对象转换成二进制存储)   

pickle_file = open(’文件名.pkl','注意用wb模式) #创建用来保存二进制的文件,w为写b指二进制wb对应读就是rb   

pickle.dump(想要保存的对象,pickle_file) #将对象倒进去

pickle_file_load = open(open创建的文件名,'rb模式') #打开二进制文件

xxxx = pickle.load(pickle_file_load) #将二进制文件转成对象

30.try - except语句:

try:

  检测范围

except Exception_name[as reason(可有可无,用来显示错误原因)]:

  出现异常后的处理代码

 

PS:try语块一旦执行到异常处,程序会跳过后面的语句执行,直接执行except中的语句

raise ExceptionType:用于故意抛出异常

30.else与while的配合:

如果if中的语句全部被执行,没有中途跳出,则else中的语句会被执行;有中途跳出则不会被执行(注意else的缩进是和while同级)

 

 

 

 

 

 

 

 

---恢复内容结束---


推荐阅读
  • 006_Redis的List数据类型
    1.List类型是一个链表结构的集合,主要功能有push,pop,获取元素等。List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,List的设 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
author-avatar
这个世界我看不懂2011_595
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有