2020-08-17

函数(lesson_09)

局部变量及全局变量

局部变量及全局变量区别

  1. 局部变量不可以在全局作用域获取
def add(a+b):
	c=a+b
	return c
print(c) #错误
  1. 全局可以调用局部作用域
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值