当前位置: 首页 > 后端技术 > Python

一、Python基本语法

时间:2023-03-26 00:45:05 Python

1基本数据类型1.1Numericalint整数不同于C、C++、Java。在Python中,只有一种整数类型int,没有短整型short和长整型long之分。>>>a=1>>>type(a)1.2浮点数float浮点数,即小数>>>a=1.0>>>type(a)1.3布尔值boolBooleanTrueorFalse非零则为True,为零则为FalseIn[4]:type(0.3)Out[4]:floatIn[5]:type(True)Out[5]:boolIn[6]]:type(1)Out[6]:int2Sequencetype2.1list有序队列,可变数据类型;元素可以是任何对象;列表中的元素是有序的,可以使用索引;线性数据结构;使用[]表示;##############list###################1.List定义#虽然list和ava中的array很相似,但不同的是它可以存储任何类型list_1=['hello','world',"hello","China",18,True,1.11]list_2=list(range(10))print(list_1)print(list_2)#2.List访问print(list_1[1])print(list_1[-1])#print(list_1_ele3)#如果超出指定的模型文本,会报越界异常IndexError:listindexoutofrange#3.列表查询##index(value,[start,[stop]])##通过value值,查找列表中元素是否从指定区间开始匹配##匹配第一个返回马上,如果没有匹配到,就会抛出异常ValueErrorprint(list_1.index("hello"))#print(list_1.index(10))#因为不存在,所以这里会报异常ValueError##coutn(value)返回列表中匹配值的个数,如果没有则返回0print(list_1.count("hello"))print(list_1.count("haha"))##len(list_name)返回列表的长度度,或者元素个数print(len(list_1))#4.列表修改##append(object):None##添加元素到列表末尾,returnNonelist_1.append("World")##insert(index,object)-None##在指定索引处插入元素,尽量少用,因为list是线性结构,查询速度快,但中间插入或删除元素效率低list_1。insert(2,"demo")##extend(iterable):添加可迭代对象,返回Nonelist_1.extend(list_2)print(list_1)##+连接操作,连接两个列表生成一个新的列表,本质上是调用__add__()methodlist_3=list_1+list_2print(list_3)#5切片操作print(list_3[1:3])#左闭右开print(list_3[1:5:2])#6.List删除元素##remove(value)从左到右查找匹配值,删除##执行效率低。如果列表很长或者删除次数多,建议使用list_3.remove("demo")print(list_3)##pop(index)弹出指定索引的元素。如果没有指定索引,则弹出尾元素list_3.pop()list_3.pop(0)##clear()清空列表元素list_3.clear()print(list_3)2.2tuple元组,类似于列表,也是支持标准访问,区别于不可变元组示例#元组定义tup1=()#空元组tup2=tuple()#空元组tup3=tuple(range(10))#tup3[0]=27#错误,元组是不可变的,会报异常TypeError:'tuple'objectdoesnotsupportitemassignment#下标访问元组元素print(tup3[1])print(tup3[2])#类似列表,支持查询操作,但不支持支持修改tup3=("a","b","hello",18,22)res=tup3.index("hello")print(res)#其他方法类似,只是没有修改和删除操作2.3一个字一个字地串起来由符号组成的有序序列是字符的组合。在python中,单引号、双引号和三引号用于表示字符串。Python中的字符串是不可变对象,支持索引访问,可以迭代。#################string####################1.字符串定义,三引号支持换行str_1='hello'str_2="hello"str_3='''helloworldchinagood'''str_4="""我爱中国,我是中国人"""print(str_1)print(str_2)print(str_3)print(str_4)#2.常用方法##join()连接print(",".join(str_1))#输出结果h,e,l,l,o##split()根据指定符号拆分字符串,返回listprint(str_3.split(""))#['hello','world','china','good']##partition(sep)--(head,sep,tail)##string一分为二根据定界符分割,返回头、定界符、尾的元组;##如果没有找到分隔符,则返回头部的三元组和2个空字符print(str_3.partition(""))#('hello','','worldchinagood')##upper()string大写print(str_3.upper())##lower()字符串小写print(str_3.lower())##replace()字符串替换print(str_3.replace("good","verygood"))##字符串判断print(str_3.startswith("hello"))#hello是否以good开头print(str_3.endswith("good"))#是否以good结尾print(str_3.islower())#是否为小写打印(str_3.isupper())#是否为大写Python3引入了两种新的字节类型不可变字节序列bytearray字节数组,变量#################bytes###############b_1=b"hllll"打印(类型(b_1))打印(b_1[2])############bytearray###############barr_1=字节array("hello".encode())print(type(barr_1))print(barr_1)2.4集合set可变的、无序的、不重复的元素的集合##############Collection#############Defineset_1={1,2,3,1}print(set_1)#{1,2,3},因为set是可变的,无序的Duplicatecollection#元素inset必须是可散列的,list和bytearray是不可散列的类型,所以它们不能用作set中的元素#set_2={[1,2,3],2}#TypeError:unhashabletype:'list'#addelementinsetset_1.add("hello")print(set_1)#{1,2,3,'hello'}#删除集合中的元素set_1.remove("hello")#从集合中移除指定元素,该元素不存在,并抛出keyerror异常print(set_1.pop())#移除并返回一个随机元素set_1.discard(1)#从集合中移除元素,该元素不存在,不会抛出异常#清空集合元素set_1.clear()#set修改和query#set没有直接修改操作,要么删除元素要么add新元素"""-集合和线性结构线性线性结构的查询时间复杂度为O(n),随着数据规模的增大,使用哈希值构造set、dict等结构的时间越来越长作为内部密钥。时间复杂度可以O(1),查询时间与数据规模无关。-Hashable类型数值类型int,float,complex等bool类型string类型string,bytestuple以上都不是不可变类型,hashable类型,可以作为set元素-set操作*union:union(*others):返回一个新的与多个集合合并后设置|运算符重载,相当于unionupdate(*others)与多个集合合并,就地修改|=等于update中间没有空格*Intersection:intersection(*others))返回与多个集合的交集相当于&intersection_update(*others)获取多个集合的交集并就地修改&=相当于intersection_update*difference:difference(*others)相当于-返回多个集合的差集setdiffernece_update(*others)获取并修改多个集合的差集setsin-place-=equivalenttodifference_update*SymmetricdifferencesetAandB,由所有不属于A和B的交集元素组成的集合,记为(A-B)U(B-A)symmetric_difference(other)返回对称差set与另一个set,相当于^symmetric_difference_update()获取与另一个set的差集,就地修改相当于^=*issubset(other),<=判断当前set是另一个集合的子集set1=判断当前集合是否是other的超集set1>set2判断set1是否是set2的真超集isdisjoint(other)当前集合不连通到另一组,没有切换返回True"""2.5Dictionary################dictionary##############dictionarydefinition##Definean空字典dic_1=dict()dic_2={}##定义一个包含元素的字典dic_3={"name":"张三丰","age":100,"sex":"male"}##d(key)返回key对应的值,如果key不存在则抛出异常v1=dic_3["name"]#get(key[,default])返回key对应的值,如果key不存在存在,返回默认值,如果没有默认值,返回Nonev2=dic_3.get("name")##setdefault(key[,default]),如果key存在,返回对应的值,如果不存在,addkey-valuev3=dic_3.setdefault("Sect","Wudang")##添加字典onary元素d[key]=value,如果key存在则增加修改对应的value,如果不存在则增加key-valuedic_3["内功"]="纯阳无极功"##pop(key[,default]),###keyexists,removeit,returnitsvalueprint(dic_3.pop("age"))###key不存在,返回给定的defaultprint(dic_3.pop("disciple","Wudang七侠"))###如果不设置默认,key不存在会抛出异常。#print(dic_3.pop("disciple"))##清除字典cleardic_3.clear()3.运算符3.1算术运算符算术运算符如下运算符说明示例+加10+30-减5-3*乘30*20/divide10/20//舍入并除以返回除法的整数部分(商),如7//2输出结果3%取余并返回除法的余数7%2=1**幂也叫幂,幂,2**3=8算术运算符的优先级与数学中的运算符相同。在Python中进行数学计算时,同样如此:***先乘除,后加减***同级别的运算符都是**从左到右**计算*可以使用`()`调整计算的优先级将运算符描述从高到低排列**幂(最高优先级)*/%//乘法、除法、余数、舍入和除法+-加法、减法3.2.位运算符运算符说明&位与\位Or~Reverse^异或<<左移>>右移2.3比较运算符运算符说明>大于>=大于等于<小于<=小于等于==等于!=、<>不等于3.4赋值运算符运算符说明+=a+=1等价于a=a+1-=类似于*=...**=.../=...%=...3.5逻辑运算符运算符说明及逻辑“与”,如果两边都为真,则返回布尔值'True',否则返回Falseor逻辑“或”,如果两边都为假,则返回布尔值'Flase',否则返回Truenot逻辑"not"3.6Membershipoperator运算符说明in如果在序列中指定则返回True,否则返回Flasenotin如果不在指定序列中则返回True,否则返回False4。变量4.1Python定义变量,每个变量在使用前必须赋值,变量赋值后会创建变量name=valueexample#定义class_num变量保存类号In[8]:class_num='01'In[9]:print(class_num)014.2变量的类型在Python中定义时不指定类型(在其他很多高级语言中需要)数据类型可以分为numeric和non-numericnumericinteger(int)浮点型(float)布尔型(bool)trueTrue----非零为真假False----0复杂类型(complex)主要用于科学计算。非数值类型的字符串列表元组字典可以使用type()函数查看变量的类型。4.3不同类型变量之间的运算1)数值型变量可以直接运算在Python中,两个数值型变量可以直接进行算术运算。如果变量为bool,计算时True对应的数为1Fal。se对应的数字是02)字符串变量之间用+号连接字符串In[10]:str1="Mynameis"In[11]:str2="ZhangSan"In[12]:str1+str2Out[12]:'我叫张三'3)数值变量和字符串之间不能进行其他计算In[16]:str1="Sheis"In[17]:age=18In[18]:str1+年龄---------------------------------------------------------------------TypeErrorTraceback(最近一次调用最后)in()---->1str1+ageTypeError:canonlyconcatenatestr(not"int")tostr4.4Variableinputinput在Python中,如果要获取用户在键盘上的输入信息,需要使用input函数Function:封装后的代码块可以复用(别人写的代码或者自己写的代码),可以直接使用,不用关心内部细节。函数说明print(x)输出x到控制台type(x)查看x变量类型input获取键盘输入例子:In[19]:info=input("inputinformation")inputinformation12345In[20]:infoOut[20]:'12345'变量类型转换函数说明int(x)convertsx将x转换为浮点数为整数float(x)5程序控制高级语言,程序控制无非就是顺序、分支、循环5.1顺序依次执行示例代码"""先定义变量a和b,再定义变量c,最后打印c的值"""a=1b=2c=a+bprint(c)5.2branchPython的分支语句是if,如果条件满足则执行,不满足则进行下一个分支条件a=1b=2max_num=Noneifa>b:print(a)elifa