Python基础知识点2018年8月2号•运算符•数据类型•变量与赋值•循环控制•条件判断运算符•算术运算符•比较(关系)运算符•赋值运算符•逻辑运算符•位运算符•成员运算符•身份运算符1、算术运算符以下假设变量a=10,b=21:+加-两个对象相加a+b输出结果31-减-得到负数或是一个数减去另一个数a-b输出结果-11*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果210/除-x除以yb/a输出结果2.1%取模-返回除法的余数b%a输出结果1**幂-返回x的y次幂a**b为10的21次方//取整除-返回商的整数部分9//2输出结果4,9.0//2.0输出结果4.02、比较运算符以下假设变量a=10,b=20:==等于-比较对象是否相等(a==b)返回False。!=不等于-比较两个对象是否不相等(a!=b)返回True。大于-返回x是否大于y(ab)返回False。小于-返回x是否小于y。(ab)返回True。=大于等于-返回x是否大于等于y。(a=b)返回False。=小于等于-返回x是否小于等于y。(a=b)返回True。所有比较运算符返回1表示真,返回0表示假。分别与特殊的变量True和False等价。注意,这些变量名的大写。3、赋值运算符以下假设变量a=10,b=20:=简单的赋值运算符c=a+b将a+b的运算结果赋值为c+=加法赋值运算符c+=a等效于c=c+a-=减法赋值运算符c-=a等效于c=c-a*=乘法赋值运算符c*=a等效于c=c*a/=除法赋值运算符c/=a等效于c=c/a%=取模赋值运算符c%=a等效于c=c%a**=幂赋值运算符c**=a等效于c=c**a//=取整除赋值运算符c//=a等效于c=c//a4、逻辑运算符Python语言支持逻辑运算符,以下假设变量a=10,b=20:andxandy布尔与--如果x为False,xandy返回False,否则它返回y的计算值。(aandb)返回20。orxory布尔或--如果x是True,它返回x的值,否则它返回y的计算值。(aorb)返回10。notnotx布尔非--如果x为True,返回False。如果x为False,它返回True。not(aandb)返回False其一,在不加括号时候,and优先级大于or其二,xory的值只可能是x或y.x为真就是x,x为假就是y第三,xandy的值只可能是x或y.x为真就是y,x为假就是x显然,对于,1or5and4:先算5and4,5为真,值为4.再算1or4,1为真,值为1对于,(1or5)and4:先算1or5,1为真,值为1.再算1and4,1为真,值为45、位运算符&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。^按位异或运算符:当两对应的二进位相异时,结果为1(a^b)输出结果49,~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x类似于-x-1左移动运算符:运算数的各二进位全部左移若干位,由右边的数指定移动的位数,高位丢弃,低位补0。a2输出结果240,二进制解释:11110000右移动运算符:把左边的运算数的各二进位全部右移若干位,右边的数指定移动的位数a2输出结果15,二进制解释:00001111下表中变量a为60,b为13二进制格式如下:a=00111100b=00001101-----------------a&b=00001100a2=11110000a|b=00111101a2=00001111a^b=00110001~a=110000116、成员运算符in如果在指定的序列中找到值返回True,否则返回False。x在y序列中,如果x在y序列中返回True。notin如果在指定的序列中没有找到值返回True,否则返回False。x不在y序列中,如果x不在y序列中返回True。7、身份运算符is是判断两个标识符是不是引用自一个对象xisy,类似id(x)==id(y),如果引用的是同一个对象则返回True,否则返回Falseisnot是判断两个标识符是不是引用自不同对象xisnoty,类似id(a)!=id(b)。如果引用的不是同一个对象则返回结果True,否则返回False。数据类型和变量•数据类型Numbers(数字):整形、长整形(123L,超出int自动转成long)、浮点型、复数型(a=1j)1.int(有符号整型)2.long(长整型[也可以代表八进制和十六进制])3.float(浮点型)4.complex(复数)String(字符串):''List(列表):[],值可变Tuple(元组):(),值不可变Dictionary(字典):{}•数据类型转换数据类型转换分为两类,分别是自动数据类型转换和强制数据类型转换1)自动转换自动转换不需要人工干预自动转换大多发生在运算或者判断过程中自动转换时向着更加精确的类型转换newstring=1.5newnum=1newvalue=newstring+newnumtype(newvalue)结果为float2)强制转换•int()将其他类型转换为整形1.浮点类型转换之后,舍去小数部分2.布尔值转换之后True-1False-03.字符串转换,仅纯整型字符串可以转换(浮点型或者带有其他字符都不可以转换)•float()将其他类型转换为浮点型1.整型转换之后变为浮点型,后面+.02.布尔值转换True-1.0False-0.03.字符串,只有纯整型字符串和纯浮点型字符串可以转换,其他都不可以•complex()将其他类型转换为复数类型1.整型转换之后变为(整型+0j)2.浮点型转换之后变为(浮点型+0j)3.布尔值转化之后True-(1+0j)False(0j)4.字符串,纯整型和浮点型字符串可以转化,其他都不可以•bool()将其他类型转换为布尔类型转换为布尔值False:1.整型02.浮点型0.03.复数0+0j4.布尔False5.字符串''空字符串6.列表[]空列表7.元组()空元组8.字典{}空字典9.集合set()空集合除了以上这些,其他转换为布尔值都会得到True•str()将其他类型转换为字符串类型所有转换均改变类型为字符串,表示方式依旧不变在Python中有5种可迭代序列,可以相互转换,它们分别是:字符串,列表,元组,字典,集合•list()将其他类型转换为列表类型var=('张三','李四','王老五')newvar=list(var)#newvar的值为['张三','李四','王老五']•tuple()将其他类型转换为元组类型var={'张三','李四','王老五'}newvar=tuple(var)字符串转换时每个字符变成元组中的一个值字典类型转换时,仅将字典的键部分转换成元组,忽略值部分•set()将其他类型转换为集合类型•dict()将其他类型转换为字典类型其他类型转化为字典时需要按照指定的格式才可以转化:(列表和元组的组合可以)var=[('cat','黑猫警长'),('mouse','一只耳'),('next','请看夏季')]newvar=dict(var)转换后为{'cat':'黑猫警长','mouse':'一只耳','next':'请看夏季'}变量变量定义:变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗说变量就是给数据起个名字。变量命名规则:1变量名由字母、数字、下划线组成2.数字不能开头3.不可以使用关键字,举例:a,a1,a_1变量分类:1.不可变变量:数字、元组()、字符串(值变的时候会指向一个新的地址)2.可变变量:列表[]、字典{}(值变,id不变)•赋值1.Python中的变量不需要声明,变量的赋值就是变量声明和定义的过程;a=12.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建;3.等号(=)用来给变量赋值,等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。举例:a=1多个变量赋值:Python允许同时为多个变量赋值。例如:a=b=c=1也可以为多个对象指定多个变量。例如:a2,b2,c2=zz,18,1字符串字符串是Python中最常用的数据类型。我们可以使用引号('或)来创建字符串。var1='HelloWorld!'var2=Runoob访问字符串:print(var1[0]:,var1[0])var1[0]:H访问单个字符print(var2[1:5]:,var2[1:5])var2[1:5]:unoo访问区间字符串更新字符串:var1='HelloWorld!'print(已更新字符串:,var1[:6]+'Runoob!')输出:已更新字符串:HelloRunoob!字符串运算符:以下假设a=Hellob=Python+字符串连接a+b输出结果:HelloPython*重复输出字符串a*2输出结果:HelloHello[]通过索引获取字符串中字符a[1]输出结果e[:]截取字符串中的一部分a[1:4]输出结果ellin成员运算符-如果字符串中包含给定的字符返回True'H'ina输出结果1notin成员运算符-如果字符串中不包含给定的字符返回True'M'notina输出结果1r/R原始字符串-所有的字符串都是直接按照字面的意思来使用print(r'\n')print(R'\n')字符串格式化:print(我叫%s今年%d岁!%('小明',10))我叫小明今年10岁!%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整型%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度Python三引号:python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。para_str=这是一个多行字符串的实例多行字符串可以使用制表符TAB(\t)。也可以使用换行符[\n]。三引号让程序员从引号和特殊字符串的泥潭里面解脱出来当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。cursor.execute('''CREATETABLEusers(loginVARCHAR(8),uidINTEGER,pridINTEGER)''')字符串的内建函数:len(string)返回字符串长度lstrip()截掉字符串左边的空格或指定字符lower()转换字符串中所有大写字符为小写upper()转换字符串中的小写字母为大写capitalize()将字符串的第一个字符转换为大写replace(old,new[,max])把将字符串中的str1替换成str2,如果max指定,则替换不超过max次center(width,fillchar)返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格count(str,beg=0,end=len(string))返回str在string里面出现的次数,beg和end为指定范围find(str,beg=0end=len(string))检测str是否包含在字符串中,如果包含返回开始的索引值,否则返回-1index(str,beg=0,end=len(string))跟find()方法一样,只不过如果str不在字符串中会报一个异常endswith(suffix,beg=0,end=len(string))检查字符串在指定范围beg-end是否以obj结束,是返回True,否则返回Falsesplit(str=,num=string.count(str))以str为分隔符截取字符串,如果num有指定值,则仅截取num个子字符串•List列表•tuple元组•Dictionary字典•set集合列表list列表,是Pytho