Python基础语法(复习+快速查询)

整理一下Python基础语法的笔记,便于复习和快速查询。

目录

Python的list结构和用法

Python的字典变量

Python的集合

Python判断结构

Python循环结构

Python函数的定义

Python的模块与包

Python异常处理模块

Python的文件操作

python类的基本定义

Python类的属性操作

Python时间操作


Pythonlist结构和用法

格式:x = [1,2,3,4] ,x = [‘1’,’2’,’3’,’4’],x = [1,’first’,1.5];

PS:列表中的元素可以是任意类型的数据,注意符号要使用英文符号,结束可以不用加‘;’

 

list操作:

计算列表元素个数(长度):len(x);

两个list变量相加是将list拼在一起;

乘法:x = [1,2,3] -> x*2 -> [1,2,3,1,2,3]

索引:x[0]…x[i],i≤len(x); 利用索引可以对元素值进行更改->x[0] = 11 -> x = [11,2,3]

切片操作(索引多个):x[i:j] 提取第i到j-1的元素

删除:del x[0]  ->  删除x中的第一个元素,‘x[0]’可以就索引第一个元素;

 

语法:

判断某个元素是否在list中: 1 in x -> True   #因为1是x的元素,所以返回True;

list可以嵌套list,索引使用两个方括号:x = [1,[1,2],2]  ->  x[1][1] -> 2;

统计元素出现个数:x.count(元素);        #若元素不存在则报错

索引某个元素的位置:x.index(元素);    #只能返回第一次出现的位置,无法返回多个;

扩展:x.append(元素)         #在x后增加输入的元素

插入:x.insert(位置,元素) #将元素插入到当前位置,若插入位置超过len,则在最后插入;

删除:x.remove(元素)         #每次只删除第一个索引到的元素

弹出:a = x.pop(位置)         #弹出的元素幅值给a,同时x删除该元素,类似剪切功能

倒序:x.reverse()                #实现翻转

排序:x.sort()                       #默认升序,要降序可执行一次翻转

-- x1 = sorted(x)           #对x排序并赋给x1,但x本身不变

 

Python的字典变量

x = {}  #用大括号表示,字典是dict类型

字典的结构

字典采用Key-value格式,键必须是字符串;

字典的创建:Eg -> x[‘first’] = 123 ,

或者直接按格式初始化:x = { ‘first’:123,’second’:456}

value可以是各种类型的数据,如数值,列表,字符串,bool值,字典等等;

访问:通过键访问value,特点:字典没有先后顺序;

 

字典的核心操作

①字典嵌套字典是可行的:

x = {}
d1 = {'first':123}
d2 = {'second':456}
x['first'] = d1
x['second'] = d2

访问及操作

d1[‘first’] += 1  ->  对应的值会变为124,d1[‘first’]就指向value,直接操作对应元素;

x.keys() 和 x.values()        #打印有哪些键或者有哪些值

x.items()                            #将键和值都打印出来,在使用循环结构遍历的时候需要配两个变量

get方法

x.get(‘first’) -> 输出对应的value

x.get(‘third’,789) -> 若x中存在键‘third’,则返回对应的value,没有则返回789;

pop方法

将x中某个元素剪切出来

例如 a = x.pop(‘first’) ,则a=123,x中不再有‘first’:123这个元素;

update方法

对字典进行更新,对应的键的value值更换,没有的加上

例如x = {'first':123,'second':456}

x1 = {'first':111, 'third':789}

x.update(x1) -> {'first': 111, 'second': 456, 'third': 789}

⑥判断某个键是否在字典

‘first’ in x -> 输出True,假如不在,则输出False

 

Python的集合

这个集合的概念和数学中的集合概念相同,set(list),相同的元素只会保留一个。

集合也可以只用大括号表示,如果大括号中有key-value对就是字典,没有是集合。

a = {1,1,2,3,4}
b = {1,2,4,5,6,8}

并集:a.union(b) 或者 a|b;交集:a.intersection(b) 或者 a & b;
差异:a.difference(b) -> 输出b中没有a的元素;相当于a-b操作;
包含:b.issubset(a) -> False 输出b是否为a的子集的判断;相当于b<a 操作
集合添加元素:a.add(5),在后面添加元素
弹出:a.pop();

 

Python判断结构

把判断的逻辑弄准确即可,使用格式如下。

①case1

x = 100

if x> 50:

    print('hello,world')

print('test')

②case2

x= 100

if x> 200:    print('>200')

elif x< 100:    print('<100')

else:    print('100-200')

 

Python循环结构

while循环操作

①case1

x= 0

while x<10:

    print(x)

    x+= 1

②case2

x= {'first','second','third'}

while tangs:

    print(x.pop())

对于非空的字典相当于True。

For 循环操作

①case1

x= {'first','second','third'}

for name in x:

    print(name)

遍历集合,并赋值给name,依次打印

②case2

x= ['first','second','third']

for i in range(len(tangs)):

    print(tangs[i])

索引列表内的元素

 

Python函数的定义

目标:a = 10, b = 20, 实现a+b,并将操作封装到函数;定义方法如下:

def add_ab(a,b):

    return(a+b)

 定义完之后再执行c = add_ab(10,20) ,得到结果为c = 30;

PS:python的命令包含关系是通过缩进控制的,执行的时候要注意调制缩进。

变量个数不固定的定义方法:

def add_number(a,*args):

       for i in args:

              a += i

       return a

定义完之后例如执行命令add_number(1,2,3) , 将输出6

字典个数不固定的定义方法:

def function1(a,**kwargs):

       for arg,value in kwargs.items():

            print(arg,value)

例如,可执行function1(1,x=2, y=3),将打印

x 2 
y 3 

函数返回多个值

def function(a = 1,b = 2):   #初始化a = 1,b = 2;

       return 2*a 3*b

a, b = function(3,4)

返回的多个值用逗号相隔,上述代码最后a = 6, b = 12;若不给参数,直接执行function(),则使用函数内置的初始值;

 

Python的模块与包

创建一个模块(脚本):

%%writefile x.py		
x_v = 10
def x_add(x_list):
    x_sum = 0
    for i in range(len(x_list)):
        x_sum += x_list[i]
    return x_sum
x_list = [1,2,3,4,5]
print(x_add(x_list))

执行完上面的程序,会在当前路径上创建一个名为x.py的文件。

运行模块:%run x.py
导入模块:import x
读取模板内部的变量:x.x_v
调用模板内部的函数:x.x_add([11,22,33])
导入使用对象:from x import x_v,x_add
导入全部对象:from x import *         访问无需加前缀
删除模板(先导入操作系统os,再利用os的语法删除文件):

import os               #操作系统
os.remove(‘x.py’)

 

Python异常处理模块

使用举例:

import math
for i in range(10):
    try:				#捕捉异常
        input_number = input('write a number')
        result = math.log(float(input_number))
        print(result)
    except ValueError:	#或者是Exception,只要出现异常就执行后续内容;似switch-case
        print('Value Error')

如果有出错,则会执行except的内容,except后面可添加特定的错误名称或者是通用错误(即Exception,只要出现异常就执行后续内容);

使用类自定义一个错误:

自定义错误规则和错误名称,可灵活的用于except后的匹配,下面是定义的方法:

class TangError(ValueError):	
    pass
cur_list = ['tang','yu','di']    #可以不缩进
while True:
    cur_input = input()
    if cur_input not in cur_list:		  #不在使用用not in表示
        raise TangError('Invaild input: %s' % cur_input)	#raise引出异常,百分号指代字符串

finally的用法:

try:
	1/0
except:			    #出错执行
	print('==0')
finally:			#肯定执行
	print('finally')

 

Python的文件操作

在当前路径下创建文件

%%writefile tang.txt
hello python
tang yu di

读取:

txt = open('tang.txt')
txt_read = txt.read()	#按行读取 object.readlines(),并保存为列表类型
print(txt.read)
txt.close()

写文件:

txt = open('tang_write.txt','w')	#’w’会覆盖原来内容重新写入,‘a’是附加
txt.write('jin tian tian qi zhen bu cuo\n')
txt.write('tang yu di')
txt.close()

PS:写文件要关闭后才保存

一种自动帮助关闭文件的方法:

with open('tang_write.txt','w') as f:
	f.write('tang')

 

python类的基本定义

类:面向对象,里面有一系列功能

class people:
    '帮助信息:XXXXX'
    #所有实力都会共享
    number = 100
    #构造函数,初始化的方法,当创建一个类的时候,首先会调用它
    def __init__(self,name,age):
        self.name = name		#参数:名称
        self.age = age			#参数:年龄
    def display(self):
        print('number: %s'%people.number)
    def display_name(self):
        print(self.name)

查看帮助:people.__doc__

使用类:p1 = people('tangyudi',30)  访问名称:p1.name;访问年龄:p1.age

使用类的函数:p1.display()        PS:对于属性,不用要括号,对于函数,需要括号进行回调

其他方法:

hasattr(p1,'name')         #检查类p1是否有'name'属性;
setattr(p1,'name','yudiTang') #设置类p1中的属性'name'为'yudiTang';
getattr(p1,'name')         #访问'name'属性
delattr(p1,'name')         #删除类属性

 

Python类的属性操作

print(people.__doc__)        #帮助信息
print(people.__name__)       #类的名称
print(people.__module__)     #类的定义所在模块
print(people.__bases__)      #类的父类
print(people.__dict__)       #字典结构,由什么组成

父类:

继承父类的属性

class Parent:
    number = 100
    def __init__(self):
        print('调用父类结构函数')
    def parentM(self):
        print('调用父类方法')
    def setAttr(self,attr):
        Parent.parentAttr = attr
    def getAttr(self):
        print('父类属性:',Parent.parentAttr)

class child(Parent):    #在此处继承父类
    def __init__(self):
        print('调用子类结构函数')
    def childM(self):
        print('调用子类方法')

使用方法:

c = child()	#子类赋值
c.childM()	#子类函数
c.parentM()	#父类的函数
c.setAttr(100)	#父类的函数
c.getAttr()	#父类的函数

PS:假如父类的属性不是自己需要的,可以重新定义,即在子类中使用相同的名字定义即可。

 

Python时间操作

import time
print(time.time())			        #时间戳
print(time.localtime(time.time()))		#本地时间
print(time.asctime(time.localtime(time.time())))		
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))		#按照设定格式显示

日历

import calendar
print(calendar.month(2019,7))

 

Guess you like

Origin blog.csdn.net/qq_34917728/article/details/95173037