函数(lesson_09)
局部变量及全局变量
局部变量及全局变量区别
- 局部变量不可以在全局作用域获取
def add(a+b):
c=a+b
return c
print(c) #错误
- 全局可以调用局部作用域
def add(a+b):
c=a+b
return c
c=add(5,6)#定义c
print(c)
3.函数内部可以用全局变量
def add(a+b):
c=a+b
return c
c=add(5,6)#定义c
print(c)
def sum(a,b):
d=a+b
print(d-c)#调用c
return d-c
sum(5,6)
这种情况需要明白
c=1
def add(a,b):
#局部作用域
c+=3 #即为c=c+3
return a+b+c
print(add(1,2))
这里c+=3为c=c+3
c调用了全局的c(函数内部调用全局)
但是第二个c+3python认为是局部变量,函数内部并没有定义c,
所以导致函数报错。
为避免这种情况,可以对c进行申明
c=1
def add(a,b):
#局部作用域
global c
c+=3
return a+b+c
print(add(1,2))
这也就是达到了修改变量的目的
修改变量
做题
题目1
通过定义一个计算器函数,调用函数传递两个参数,然后提示选择【1】加 【2】减【3】乘 【4】除 操作,选择之后返回对应操作的值。
num=input("请选择【1】加 【2】减【3】乘 【4】除:")
print(type(num))
def get_sum(a,b):
if int(num) == 1: #num为字符串,如果不转为int,那么if不执行,函数返回为None
c=a+b
return (c)
elif int(num)==2:
c=a+b
return c
elif int(num)==3:
c=a*b
return c
elif int(num)==4:
c=a / b
return c
sum=get_sum(1,2)
print(sum)
题目2
一个足球队在寻找年龄在15岁到22岁的女孩做拉拉队员(包括15岁和22岁)加入。编写一个程序,询问用户的性别和年龄,然后显示一条消息指出这个人是否可以加入球队,询问10次后,输出满足条件的总人数。
def search(sex='女',age=18):
cout=0
for num in range(0,10):
sex=input("是男是女:")
age=input("年龄几何?:")
if sex =="女" and 15 <= int(age) <=22:
print("i want you")
cout+=1
else:
print("只有15-22的女孩子可以加入")
return cout
print("共有{}位女孩子可以加入啦啦队".format(cout)) # 本次else尚待优化
res=search()
题目3
数据转换
有一组用例数据如下:
cases = [
[‘case_id’, ‘case_title’, ‘url’, ‘data’, ‘excepted’],
[1, ‘用例1’, ‘www.baudi.com’, ‘001’, ‘ok’],
[4, ‘用例4’, ‘www.baudi.com’, ‘002’, ‘ok’],
[2, ‘用例2’, ‘www.baudi.com’, ‘002’, ‘ok’],
[3, ‘用例3’, ‘www.baudi.com’, ‘002’, ‘ok’],
[5, ‘用例5’, ‘www.baudi.com’, ‘002’, ‘ok’],
]
要求一:把上述数据转换为以下格式
res1 = [
{‘case_id’: 1, ‘case_title’: ‘用例1’, ‘url’: ‘www.baudi.com’, ‘data’: ‘001’, ‘excepted’: ‘ok’},
{‘case_id’: 4, ‘case_title’: ‘用例4’, ‘url’: ‘www.baudi.com’, ‘data’: ‘002’, ‘excepted’: ‘ok’},
{‘case_id’: 2, ‘case_title’: ‘用例2’, ‘url’: ‘www.baudi.com’, ‘data’: ‘002’, ‘excepted’: ‘ok’},
{‘case_id’: 3, ‘case_title’: ‘用例3’, ‘url’: ‘www.baudi.com’, ‘data’: ‘002’, ‘excepted’: ‘ok’},
{‘case_id’: 5, ‘case_title’: ‘用例5’, ‘url’: ‘www.baudi.com’, ‘data’: ‘002’, ‘excepted’: ‘ok’}
]
要求二:把上面转换好的数据中case_id大于3的用例数据获取出来,得到如下结果
res = [
{‘case_id’: 4, ‘case_title’: ‘用例4’, ‘url’: ‘www.baudi.com’, ‘data’: ‘002’, ‘excepted’: ‘ok’},
{‘case_id’: 5, ‘case_title’: ‘用例5’, ‘url’: ‘www.baudi.com’, ‘data’: ‘002’, ‘excepted’: ‘ok’}
]
cases = [
['case_id', 'case_title', 'url', 'data', 'excepted'],
[1, '用例1', 'www.baudi.com', '001', 'ok'],
[4, '用例4', 'www.baudi.com', '002', 'ok'],
[2, '用例2', 'www.baudi.com', '002', 'ok'],
[3, '用例3', 'www.baudi.com', '002', 'ok'],
[5, '用例5', 'www.baudi.com', '002', 'ok'],]
print(type(cases))
def zip1(*str1):
# len1=int(len(cases)-1)
for i in str1:
res1=zip(cases[0],cases[i])
return res1
res=zip1(*cases)
print(list(res))
本题没写完。。。。好困
print(good night)