Python学习总结
Python常用的数据类型
'兔子' 字符串类型;
666 整型;
3.14 浮点型;
False,True 布尔型;
Python的常用操作符
逻辑运算符:and or not;
比较操作符:< <= > >= == !=;
算数操作符:+ - * / //(地板除,即只保留整数位);
正负号:+x -x;
幂运算:**(-3 **3 == -(3 ** 3 )为-27,3的三次方再取负值);
以上操作符优先级由上至下越来越高
Python的分支和循环
分支:
if 条件语句1:
条件语句1成立时执行的语句
elif 条件语句2:
条件语句2成立时执行的语句
else :
不成立时执行的语句
循环:
while 条件语句:
条件语句成立时执行的语句
continue(跳出当前循环,继续下一循环)/break(跳出所有的循环)
print("continue执行后不会执行此条语句")
for 变量名 in 列表/元组/字符串等对象集合:(for循环的目的是将对象集合中的每一个元素循环赋值给变量,即此变量遍历对象集合中的所有元素)
print 变量名
列表和元组:
Python列表中可放入各种类型的数据,比如list1 = ['兔子',666,3.14,Fasle],list1[2]为3.14
增加列表元素:list1.append('么么'),将在list1最后加入此元素;
list1.extend(['肥兔子',88.67]),将在list1最后加入此列表,并合并为一个列表
list1.insert(3,'yyy'),将元素插入到列表的第三个位置(从0开始,即3.14之后)
删除列表(元素):list1.remove(3.14),将3.14从list1中删除
del list1[1],将list1中的第二个元素删除
i = list1.pop(3),将list1中的第四个元素删除,并有返回值,返回值即为删除的元素
列表切片:list2 = list1[0:1] 将list1前两个元素分离开组成一个新的列表,list1[:]全复制
Python元组与列表类似,但不可轻易修改
temp = (1,4,"888",False);temp = 1,4,"888",False;temp = (1,) ;temp = () 都可以表示一个元组
修改元组的方法:temp = temp[:2]+(2,3,4)+temp[2:] 即先将元组切片再组合
Python字符串常用方法
str.capitalize() 将字符串首字符改为大写,等等方法
格式化方法format:
'{0} love {1} and {2}'.format('I','dahai','you') 即将{0}{1}{2}占位符替换为参数中的字符串:I love dahai and you
或'{a} love {b} and {c}'.format(a='I',b='dahai',c='you') 也可混合使用,但数字占位符一定要在字母占位符之前
其他格式化方法:
格式为 '方法' % (元组,元素数与方法数一致)
%c格式化字符及其ASCⅡ码:'%c %c' % (99,100) 打印出来是'c d',
%s格式化字符串:'%s %s %s' % ('I','LOVE','YOU')打印出为'I LOVE YOU'
字符串格式化符号含义、格式化操作符辅助指令、字符串转义字符含义
函数:
①定义一个函数:def Function1():
print("这是一个没有参数的函数")
使用:Function()
无需在括号内传入参数即可执行此函数体内的方法
②定义一个函数:def Function2(num1,num2):
return num1+num2
使用1:Function2(1,2)
num1,num2为形式参数,1,2为实际参数,这个函数的返回值是num1+num2
使用2:Function2(num2=2,num1=1)
可以讲形参和实参结合,以便于观察,防止出现顺序错误
③定义一个函数:def Function3(*param,exp):
print("参数的长度:",len(param))
print("第一个参数是:",param[0],exp) #注意print方法中连接每个参数用 ‘ , ',不是‘’+‘’
使用:Function3(1,"dahai",666,99.8,True,exp = 33)
此函数为收集函数,即形参的个数无法确定,可把所有实参当做一个元祖来看待,当收集函数的参数和其他参数同时存在时(比如exp),则需要在传递实参时定义exp的值
局部变量、全局变量:
局部变量是指在函数内部的变量,函数之外无法调用此变量
全局变量是指在整个程序中都可调用的变量
def Fun1(x,y):
z = x + y
#globle z1
z1 = 20
return z
z1 = 10
z2 = Fun1(10,5)
print(z1,z2)
这里x,y,z和第一个z1为局部变量,第二个z1,z2为全局变量,且结果为10,,15,因为Fun1中的z1只在方法中生效,方法外又会指向原z1
除非在第一个z1之前加,globle z1 作用是使z1变为一个全局变量,globle(全局的),即可在函数内部修改z1的值
内嵌函数和闭包:
def fun1(x):
def fun2(y):
return x+y
return fun2()
上面这种形式为闭包,即内嵌函数中有调用其外部变量,使用方法:
i = fun1(10) #此时type(i)为方法类型function,即为fun2
i(5) #此时传入的变量5即为fun2中的y值
或 fun1(10)(5)
不可直接使用fun2
def fun1():
x = 10
def fun2(y):
nonlocal x
x ^= x
return fun2()
上面这个函数fun1无法直接使用,因为在调用fun1时首先调用的是其内嵌函数fun2,但fun2的x为fun1的局部变量,无法在fun2中使用,
此时需要加入类似globle的关键字nonlocal x ,作用是使x变为一个非局部变量,nonlocal(非局部的)即可使fun2访问到fun1中的x
匿名函数(lambda)
def fun1(x):
return x * 5 +8
可写成
g = lambda x : x * 5 + 8
使用时
g(5) #即可将5传入匿名函数g,然后通过方法计算出结果33,并返回
如果传入多个参数,则可以写为 g = lambda x,y : x + y,用英文逗号将参数分开
映射函数map():map(function,iterable) 有两个参数,第一个参数为函数,第二个参数为需要迭代的数据
目的是通过将第二个参数迭代传入第一个函数中进行计算,将得出的所有值传入一个新的列表中,比如
list(map(lambda x : x * 2 , range(10))) 将0-9之间的所有数据传入前面的匿名函数中计算,计算结果为[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
过滤器函数filter:filter(function or None,iterable) 有两个参数,第一个参数为None或函数,第二个参数为需要迭代的数据,
目的是通过将第二个参数迭代传入第一个函数中进行计算,将得出的真值传入一个新的列表中,比如
当第一个参数为函数时:
list(filter(lambda x : x % 2,range(10))) 此行代码的目的是将0-9之间的奇数传入列表中,打印结果为[1,3,5,7,9]
当第一个参数为None时:
list(filter(None,[0,1,True,False])) 输出为[1,True]
这两个函数的区别为map()是将所有参数进行函数运算后生成新的列表,filter()是将所有参数进行函数运算后取其为真的值(1,True)生成新的列表
递归:1.有调用函数自身的行为,2.正确的返回值,且有停止的条件
比如阶乘函数:
def jiecheng(x):
result = x
for i in range(1,x):
result *= i
return result #此方法即x为需要阶乘的最后一位数,如x=5,需要计算1*2*3*4*5的结果
或def jiecheng(x):
if x == 1:
return 1
else:
return x * jiecheng(x-1)
比如菲波那切数列:
def fun1(n):
if n == 1 or n == 2:
return 1
else:
return fun1(n-1)+fun1(n-2) #即从第三个数字开始每个数字等于前两个数字之和
字典:
dict1 = {'大海':'29','丽丽':'25','猴子':'29'} #用‘:‘’隔开需要匹配的key(键)和value(值),用‘,‘’隔开每对映射,并用大括号括起
name = input("请输入要查询年龄的人的名字:")
print('%s的年龄是%s' % (name,dict1[name]))
创建一个字典:
①list1 = [(1,'one'),(2,'two'),(3,'three'),(4,'four')] #列表
temp = (1,'one'),(2,'two'),(3,'three'),(4,'four') #元组
dict(((1,'one'),(2,'two'),(3,'three'),(4,'four'))) #字典
#注意括号个数,使用方法为dict(mapping),mapping为元组或列表,但元组或列表的元素需成对出现,所以也可写成dict(list1)或dict(temp)
②dict4 = dict(dahai=29,lili='25')
#注意只有此种方法键不能用字符串、整型、浮点型等,否则会报错,只可以用不加引号的字符串,加到字典里之后会自动变为字符串
添加项:
dict4['小海'] = '0' #'小海'为键,且插入的位置不固定
修改项:
dict4[‘dahai’] = 31 #修改的键需存在