is 是通过比较两个对象的内存地址,查看内存地址的方法是id()
in 是包含
== 是类型和内容一致
a=1 b=1 print(id(a)) print(id(b)) if a is b: print('a和b的内存地质一样') str1='aa,bb,c' str2='aa' if str2 in str1: print('str1包含了str2') else: print('str1不包含str2') a=1 b='1' if a==b: print('ok') else: print('no') if a==int(b): print('ok') else: print('no')
两种方式,第一种是切片方法,第二种的分离
#分离 list1=['python','华为','淘宝','百度'] #第一种切片方式 print(list1[1:]) #第二种 language,*company=list1 print(language) print(company)
所谓函数,就是把重复的代码单独的分离出来,放在⼀个公共的地⽅,以后可以⼀直的进⾏调⽤,这样就可以解决 多次重复来编写。
def sum(a,b): print(a+b)
sum(a=1,b=2) sum(1,2))
#定义函数 def sum(a,b): print(a+b) #调用函数才有用 sum(a=1,b=2) sum(3,4)
比如定义登录函数
#定义登录函数,并且备注定义参数 def login(username,password): ''' :param username: 登录用户名 :param password: 登录密码 :return: ''' if username=='zx' and password==123456: print('login sucess') else: print('login fail') #调用函数 login('zx',123456)
比如只默认了username,必须放在没有默认的参数后边
# 默认参数 # def login(username='zx',password): 默认参数只能在后边,否则出错 def login(password,username='zx'): ''' :param username: 登录用户名 :param password: 登录密码 :return: ''' if username=='zx' and password==123456: print('login sucess') else: print('login fail') login(123456)
加一个星号是给到元组,加两个星号是给到字典
def func(*args,**kwargs): print(args,kwargs) print(type(args),type(kwargs))
不是字典的格式默认都会变成元组内部的一个元素
列表都会给元组的
def func(*args,**kwargs): print(args,kwargs)【在这里加好星号】 print(type(args),type(kwargs))
func([1,2,3],('a','b'),**{'name':'zx'})
加一个*是给到元组,加**是给到字典 def func(*args,**kwargs): print(args,kwargs) print(type(args),type(kwargs)) #不是字典的格式默认都会变成元组内部的一个元素 func(1,2,3) func([1,2,3]) func([1,2,3],('a','b'),{'name':'zx'}) #以字典形式出现会给到字典 func(a='1',b='2') #想把某个数据给到元组加** func([1,2,3],('a','b'),**{'name':'zx'})
案例:
接口测试中需要测包含姓名年龄的数据、测只有姓名、年龄等的数据。动态参数需要什么上传什么即可
def func(**kwargs): print(kwargs) func(name='zz',age=18,) func(name='zz',age=18,sex='girl')
在单个函数而言,有没有返回值其实没有多大意义,函数的返回值核心思想是通过函数的返回值可以把函数与函数关联起来,比如登录成功返回token,带上token可以访问个人主页。
关于返回值的几点: 1、函数的返回值是在函数的表达式中,return关键字后面, return关键字后面就是函数的返回值 2、一个函数可以有多个返回值 3、单一个函数没有写return的时候,不代表函数没有返回值,其实它的返回值是None
要拿到函数的返回值,单独的调用不行,需要输出或者把函数的返回值赋予一个变量,变量的返回就是所需返回值
#一个函数有多个返回值 def login2(username,password): return username,password a,b=login2(username='zx',password=123) print(a) print(b)
#返回值的关联 def login(username='zx',password=123): if username=='zx' and password==123: return 'asertdf' else: return '登录账户错误' print(login()) def profile(token): if token=='asertdf': print('欢迎访问个人主页') else: print('重定向到登录页面') profile(token=login()) profile(token=login(password=234))
#当一个函数没有return的时候返回是None,不代表没有返回值 def sum(a,b): print(a+b) print(sum(1,2))
全局变量:在一个python文件里边定义的变量叫全局变量
局部变量:在一个函数的内部定义的变量叫局部变量
优先级:
1.在Python文件内,当全局变量和局部变量一致时,全局变量优先级高
2.在函数内部,局部变量优先级高
name='aa' def func(): name='bb' print(name) print(name) ——输出的优先aa
匿名函数,左边是形式参数右边是实质参数
创造数据0-4,强制转换为列表类型
如何实现列表大于2的结果3种方式
filter过滤函数,list强制转换为列表的形式
map函数对所有元素做相同的操作,list强制转换数据类型
#内部函数 #匿名函数,左边是形式参数右边是实质参数 求和=lambda a,b:a+b print(求和(3,4)) #range 范围 for item in range(2,10): print(item) #创造数据0-4,强制转换为列表类型 print(list(range(5))) #如何实现列表大于2的结果3种方式 #1.列表推导式 lists=[x for x in range(10) if x>2] # print(lists) #2.传统推倒 lists=[x for x in range(10) ] list1=[] for item in lists: if item>2: list1.append(item) print(list1) #3.filter过滤函数,list强制转换为列表的形式 # list7=[x for x in range(10)] # print(filter(lambda x:x>2,list7)) # print(list(filter(lambda x:x>2,list7))) # #map函数对所有元素做相同的操作,list强制转换数据类型 list0=[x for x in range(10)] # # print(map(lambda x:x+10,list0)) # # print(list(map(lambda x:x+10,list0))) #传统操作为每个元素赋值 list0=[x for x in range(10)] listz=[] for item in list0: listz.append(item+10) print(listz)
如下图所示:
如下图所示: