Python基本语法整理

0、Python情况

  • 语法简单易懂,适合小白入门
  • 可移植性高,各平台都能运行
  • 使用广泛
  • 面向对象编程

1、数据类型

Python定义变量时,不需要指明数据类型

  • 整型:int,对应的函数为int()
  • 浮点型:float,对应的函数为float()
  • 布尔型:只有True和False两个值
  • 字符串类型:str,对应的函数为str()

2、命名规范

使用字母,数字和下划线命名,不能以数字开头

  • 常量:在定义时就给了值,全部都为大写
  • 变量:全部都为小写,值可变

3、字符串相关

常用操作符

 +:拼接两个字符串   str1+str2

*:字符串倍数     str1*5

in:用来判断指定字符是否在字符串内,返回结果为True或者False   'l' in 'hello'

not in:用来判断指定字符是否不在字符串内,返回结果为True或者False  'f' not in 'hello'

max(a,b):判断大小

内建函数

都有返回值,需要使用指定变量承接返回值

大小写相关

capitalize():将字符串的首字母大写    str=str.capitalize()

title():将字符串中的全部单词的首字母大写     str=str.title()

istitle():判断字符串是否全部单词的首字母大写,返回结果为True或者False   b=str.istitle()

upper():将字符串中的字母全部大写  str=str.upper()

isupper():判断字符串中字母是否全部大写,返回结果为True或者False  b=str.isupper()

lower():将字符串中的字母全部小写   str=str.lower()

islower():判断字符串中字母是否全部小写,返回结果为True或者False  b=str.islower()

isdigit():判断是否为数字,返回结果为True或者False  b=str.isdigit('ch')

isalpha():判断是否为字母,不区分大小写,只要是字母就返回True,否则返回False,b=str.isalpha("ch")

isalnum():判断是否为数字或者字母,也不区分大小写,返回结果为True或者False,b=str.isalnum("ch1")

查找替换

find():在字符串中找到指定字符,返回第一次找到字符的下标,找不到时返回-1  str.find('指定字符串'[,start,end])

rfind():从右开始找

lfind():从左开始找

index()/rindex()/lindex():作用与find相同,只是找不到时报异常

replace():替换   str.replace(old,new[,max])   max为最大替换次数

连接

join():使用指定字符将字符串中的字母连接起来,包括单词中间的空格也会被连接进去  

str = ‘-’.join('hello')

去空格

strip():去掉字符串两头的空格,同时有多个空格的话一起去掉,中间的空格不影响  str.strip()

rstrip():去掉右边的空格

lstrip():去掉左边的空格

分割

split():使用指定字符分割字符串,分割后的每一段作为列表的一个元素存入列表中,指定字符不显示;如果字符串中没有指定字符,则不进行分割,整个字符串作为列表的一个元素放入列表中 

list = str.split('指定字符'[,max]) max为最大分割次数

次数

count():返回字符串中指定字符的个数   str.count('指定字符')

计数:

counter():Counter容器实现了一个自动化的计数器,当Counter中不存在某个键时,赋值操作会自动创建一个新的键,返回一个字典,记录了元素和元素个数

切片

取出字符串中的一部分    str[start:end:step]  start为开始位置,可以取到,可省略,默认是0;end为结束位置,取不到,可省略,默认是len(str);step是步长,可省略,默认是1

格式化输出

占位符:使用占位符方式格式化输出时,参数需要与对应位置的占位符格式相同,否则会报错;整型和浮点型会自动强制转换  print('%d%s%f'%(2,'s',2.5))

%s字符串占位符

%d整型数字占位符

%f浮点型数字占位符,默认是6位小数,可以使用%.2f格式保留两位小数

format():使用该函数格式化输出时,需要调用该函数,函数中的参数可以是任何数据类型   print('{}{}{}'.format(2,'s',2.5))

4、循环

for循环

格式1:for...

           for i in range(5):

                 pass

格式2:for...else...     else的执行条件是只有for循环没有被break语句强制结束且循环全部执行完成后才会执行

           for i in range(5):

                pass

          else:

                pass

if判断

格式1:if...

             if 条件:

                pass

格式2:if...else...

             if 条件:

                pass

            else:

                pass

格式3:if...elif...else...

             if 条件1:

                pass

             elif 条件2:

                pass

            else:

               pass

while循环

格式1:while 条件:...

             while 条件:

                 pass

格式2:while条件:...else:....     else执行的条件是只有当while循环没有被break强制结束且while条件不满足后才能执行

             while 条件:

                  pass

            else:

                pass

结束循环

break:强制结束当前循环体

continue:结束当前一轮循环,继续下一轮的循环

5、列表

列表函数:list(),同一个列表中不限元素类型

定义列表:list1 = ['xiaoming','jack','rose']

列表通过下标进行索引:list[0]

列表长度:len(list1)

连接列表中的元素:'-'.join(list1)

修改列表元素:只能通过下标进行索引修改   list[1] = 'mary'

列表切片:list[m,n] ,返回一个列表

列表函数

添加元素

append():将元素添加到列表末尾     list1.append('tom')

extend():将一个列表中的元素添加到另一个列表的末尾    list1.extend(list2)

insert():在指定位置插入一个元素,指定位置之后的元素依次后移    list1.insert(2,'lucy')

删除元素

del:系统函数,通过下标删除一个元素    del list1[index]

remove():通过元素进行匹配,从左到右删除第一次匹配到的元素,删除成功,返回None;如果元素不存在,报异常    list1.remove('liming')

pop():弹栈,默认移除列表最后一个元素,返回被弹出的元素,也可以指定index进行删除   list1.pop()     /list1.pop(index)

clear():清空数组    list1.clear()

翻转

reverse():将列表翻转,会改变表结构  list1 =  list1.reverse()

list[::-1]:将列表中的字段倒叙输出,不会改变表结构

排序

sort():list.sort(reverse=false)  false是升序,true是降序,默认升序,对原列表进行改动

sorted():系统函数,sorted(可迭代,reverse=False),默认是FALSE降序,True是升序,返回的是一个新的可迭代对象,不对原来的做改动

6、元组

元组函数:tuple()

元组定义:t1 = tuple(1,2)

特性:元组一旦定义,不能修改

查找元素:通过下标查找    t1[1],元组也可以通过切片来访问元素,但不能进行修改

系统函数

max():元组的最大值   max(t1)

min():元组最小值   min(t1)

sum():元组元素和  sum(t1)

元组函数

count():返回指定参数的个数   t1.count('指定参数')

index():返回指定参数的下标   t1.index('指定参数')

7、字典

字典函数:dict{}

定义字典:dict1 = dict{'name':'jack','age':'18'}

添加元素:dict1['sex'] = 'men'

修改元素:dict1['age'] = '20'

内置函数

查找

遍历字典:for i in dict1,得到的 i为字典中的key值,可以通过key查找value,如果key不存在,报异常   value  = dict1['sex']

items():将字典中的每一个键值对放在一个元组中,元组作为列表的一个元素保存到列表中  dict1.items()

keys():将字典中的所有key取出来,放在一个列表中   dict1.keys()

values():将字典中的所有value值取出来,放在一个列表中  dict1.values()

in:只能判断key在不在字典中,没有办法判断value在不在列表中,返回值为True或False   'age' in dict1

get():通过key获取value,还可以设置当key不存在时的默认返回值    dict1.get(key[,default])   key存在,返回对应的value,key不存在,返回None,如果有设置default,返回default

删除

del:系统函数   del dict1['sex'],key不存在,报异常

pop():根据key删除,返回删除的键值对,如果key不存在,返回None/default      dict1.pop(key[,default])

popitem():随机删除,一般默认从字典的末尾删除  dict1.popitem()

clear():清空字典  dict1.clear()

8、集合

集合函数:set()

定义集合:set1 = {1,2,3}

作用:去重,无序

内置函数

添加

add():将一个参数添加到集合中,如果参数是一个元组,整个元组作为一个元素添加到集合中   set1.add(参数)

update():这个函数中的参数必须是可迭代的,如果参数是一个列表或者元组,将列表或者元组中的元素依次取出,无序的放入集合中  set1.update(可迭代参数)

删除

remove():删除指定参数,找不到报异常     set1.remove(参数)

pop():随机删除,一般从开头删除,不接受参数   set1.pop()

clear():清空集合    set1.clear()

discard():类似remove,只是参数找不到时,不报异常   set1.discard(参数)

运算

-:差集difference    set3 = set2-set1

&:交集intersection   set3 = set2&set1

|:并集union  set3 = set2|set1

^:对称差集symmetric_difference   set3 = set2^set1  相当于并集-交集

9、函数

函数定义:def func(arge)

函数调用:func(args)

函数返回值:return    可以返回一个或多个值,如果返回多个值,系统默认将这些返回值放入一个元组当中,需要使用多个变量承接返回结果

函数参数

局部变量和全局变量

  1. 在函数外声明的变量时全局变量,在函数体内部声明的变量是内部变量
  2. 当局部变量和全局变量相同时,在函数内部调用时,优先调用局部变量(就近原则)
  3. 在函数体中需要调用不可变全局变量但是不修改时,直接调用;需要修改不可变全局变量时,需要在函数体中使用global声明全局变量:global name
  4. 在函数体中使用可变全局变量时,可以随意修改,不需要声明

参数个数固定的函数 func(a,b,c)

参数个数可变的函数   func(*args)

其中*代表参数个数不确定,调用函数时可以传入不同个数的参数,也可以不传入参数,函数中使用args的时候,args是一个元组

参数为list时,有两种情况:

  1. func(list):这种情况下,list整体作为元组中的一个元素放入元组中
  2. func(*list):这种情况下,list中的每一个元素单独作为元组中的一个元素放入元组

关键字参数    func(a,b=2,c=3)

其中b,c为关键字参数,关键字参数是在函数定义时就给定了默认值的参数

  1. 给含有关键字参数的函数赋值的时候,默认按照顺序进行赋值 ,例如:func(2,3)意思是a=2,b=3,c没有被赋值,使用默认参数值2
  2. 如果想要给指定的关键字参数赋值,需要指定key,例如:func1(2,c=5)意思是a=2,c=5,b没有被赋值,使用默认参数值1

可变关键字参数   func(*kwargs)

  1. func(a=0,b=1,c=2)--->{'a':'0','b':'1','c':'2'}这种方式只进行了装包的过程,将传入的关键字装包成一个字典赋值给kwargs,所以kwargs是一个字典
  2. dict = {'001':'python','002':'java','003':'C语言','004':'GO语言'}    func(**dict)  ----这种方式首先进行拆包,然后进行装包
    1、**dict是将dict字典拆包成关键字参数:('001'='python','002'='java','003'='C语言','004'='GO语言')
    2、将关键字参数传入函数func
    3、**kwargs将关键字参数装包成一个字典:kwargs={'001':'python','002':'java','003':'C语言','004':'GO语言'}
    所以在函数中使用参数的时候,要使用kwargs,不能带**

内部函数

  1. 可以调用外层函数的变量

  2. 内部函数可以修改外层函数的可变变量,如list

  3. 内部函数如果想要修改外层函数的不可变变量,需要声明,关键字:nonlocal;

  4. 内部函数如果想要修改全局的不可变变量时,需要在内部函数中声明全局变量,关键字:global

闭包

  1. 外部函数中定义了内部函数
  2. 外部函数有返回值return
  3. 返回的信息是内部函数的函数名(不带括号的函数名)
  4. 内部函数引用了外部函数的变量

格式

装饰器

特点

  1. 函数A作为参数出现,函数B接收函数A作为参数
  2. 有闭包的特点

格式

底层原理

  1.     func()是被装饰函数
  2.     将被装饰函数func()作为参数传给装饰器decorate()
  3.     执行decorate函数
  4.     将返回值又赋值给func,func=wrapper
  5.     调用func(),相当于调用wrapper()

单层装饰器

多层装饰器

带参数的装饰器

  1. 带参数的装饰器是三层的
  2. 最外层是负责接收装饰器参数的
  3. 里边的内容还是原来装饰器的内容

匿名函数

作用:简化函数定义

关键字:lambda

格式:lambda a,b:a+b

匿名函数可以作为参数出现

递归函数

10、文件操作

读文件

打开读取文件的管道:stream = open(file/path,mode,buffering,encoding)

返回一个流,相当于建立一个管道,默认mode = 'rt'读取txt类型,如果读取图片,需要mode='rb'

读取文件:

container = stream.read()-->读取全部的文件内容

container = stream.readable()------判断文件是否可读,返回true/false

container = stream.readline()------只读取一行内容

container = stream.readlines()------读取全部内容,保存在列表中

写文件

stream = open(path/filename,'w')----返回值:stream(管道),需要指定mode为w/a

mode为w时:

stream.write(s)会覆盖原来文件中的内容

mode为a时:

stream.write(s)不会覆盖原来的内容,在原来的内容后边继续添加

stream.writelines(iterable)没有换行的效果,需要自己加入\n进行换行

stream.close()写完成后需要关闭流管道

with...as...

使用with open(...) as stream的方式,不需要手动加stream.close()

os模块   import os

os.path:对路径相关的操作

os.path.dirname(__file__)获取当前文件所在的绝对路径

os.path.join(path1,path2)将两个路径连接起来

os.path.isabs(path)判断路径是不是绝对路径

os.path.abspath(filename)获取文件的绝对路径

os.path.split(path)返回一个包括path中的路径和文件名的元组

os.path.splitext(path)返回一个path中的路径文件名和文件后缀的元组

os.path.getsize(path)获取文件的大小,单位字节

os其他函数

os.getcwd():获取当前文件所在的绝对路径,类似os.path.dirname(__file__)

os.listdir(path):返回指定路径下的文件和文件夹的名字,存放到一个列表

os.mkdir(filepath):创建文件夹

os.rmdir(path):删除文件夹,只能删除空文件夹

os.remove(path):删除文件夹中的文件

os.chdir(path):切换路径

11、异常处理

12、面向对象

封装,继承,多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值