以下内容仅做自己学习使用,知识点内容来自柠檬班,转载请标记来源
@Author:木又
@File:demo1_函数的返回值py
@Time:2020/7/16 20:37
@Name:Ta Quan Ge
函数返回值:通过关键字return来定义
不写return或者return后面不写内容:返回None
return后面返回1个值,返回就是该数据
return后面返回1个以上值,返回的是一个元组
(判断方法是否有返回值的快捷方法,按住 ctrl + 鼠标移入此方法上,
尖括号指向的是none就没有返回值)
注意点:函数执行到return就会结束函数的运行,并返回结果
不写return或者return后面不写内容:返回None
li = [1, 23, 4]
res = li.append(5)
#为啥append这个方法调用之后,用变量接收不到结果(是因为此方法没有定义返回值)
print(res)
return后面返回1个值,返回就是该数据
#计算两值相加并返回结果
def fun(a, b):
c = a + b
return c
result = fun(1, 2)
print("函数调用后返回的结果:", result)
#return后面返回1个以上值,返回的是一个元组
def fun(a, b):
c = a + b
d = a - b
return c, d # return后面返回1个以上值,返回的是一个元组
a = fun(1, 2)
print(a) # 打印结果 (3, -1)
res1, res2 = fun(1, 2) # 使用元组拆包
print(res1)
print(res2)
注意点:函数执行到return就会结束函数的运行,并返回结果
def demo1(a, b):
c = a + b
d = a - b
print("------1--------")
return c, d # 执行到return就会结束函数的运行,并返回结果
print("------2--------")
res1, res2 = demo1(1, 2)
print(res1)
print(res2)
def demo1(a, b):
c = a + b
d = a - b
print("------1--------")
if c == d:
return c, d
print("------2--------")
# res1, res2 = demo1(1, 2)
# print(res1)
# print(res2)
demo1(1,2)
@Author:木又
@File:demo2_函数作用域.py
@Time:2020/7/16 20:42
@Name:Ta Quan Ge
函数的作用域:
全局变量:python中直接定义在模块(py文件中的变量),叫全局变量
问题一:定义在全局变量函数中可不可以使用?
局部变量:定义在函数中的变量,叫做局部变量
建议:全局变量与局部变量定义是不要重名
在函数内部声明全局变量 :global
‘’’
# a = 100 # 全局变量
# def demo():
# b = 200 # 局部变量
# print("函数中打印:", a)
# print("函数中打印:", b)
#
#
# demo()
# print(b) # NameError: name 'b' is not defined
# 在函数内部声明全局变量 :global
# def demo1():
# global aa # 声明一个全局变量 global
# aa = 111
#
#
# demo1()
# print(aa)
# 就近原则
num = 100
def fun():
num = 200
print("函数中打印num:", num) # 就近原则
fun()
print("函数外面:", num * 10)
@Author:木又
@File:demo3_内置函数的使用.py
@Time:2020/7/16 21:11
@Name:Ta Quan Ge
‘’’
获取数据长度 len()
求和 sum
求最大值 max
求最小值 min
int float bool str list tuple dict set range
获取数据长度 len()
# li = [1, 23, 4]
# tu = (1, 23, 4)
# dic = {1, 23, 4, 5, 6}
# print(len(li))
# print(len(tu))
# print(len(dic))
求和 sum
# li = [1, 23, 4]
# tu = (1, 23, 4)
# dic = {"a": 1, "b": 23, "c": 4, "d": 5, "e": 6}
# res = sum(li) + sum(tu) + sum(dic.values())
# print(res)
求最大值 max
# li = [1, 23, 4]
# tu = (1, 23, 4)
# dic = {"a": 1, "b": 23, "c": 4, "d": 5, "e": 6}
# print(max(li))
# print(max(tu))
# print(max(dic.values()))
求最小值 min
li = [1, 23, 4]
tu = (1, 23, 4)
dic = {"a": 1, "b": 23, "c": 4, "d": 5, "e": 6}
print(min(li))
print(min(tu))
print(min(dic.values()))
获取数据的布尔值 bool
python所有的数据都有布尔值 非零为True:数据值等于0,或者数据值为None,返回False
a = "0"
print(bool(a))
# int float bool str list tuple dict set range
# int类型转换
a = '1'
a1 = int(a)
print(a,type(a1))
num = str(1000)
print(type(num))
@Author:木又
@File:demo4_高级的内置函数使用.py
@Time:2020/7/16 21:27
@Name:Ta Quan Ge
内置函数:
enumerate:利用他可以同时获取序列类型数据的下标和值
eval():可以识别字符串中有效的python表达式(去除字符串的引号)
filter:过滤器函数
enumerate 打印序列类型中的每个元素以及下标
li = ["a", "b", 1, 23, 4]
# res = enumerate(li)
for i, v in enumerate(li):
print(f"下标{i},值{v}")
eval() 识别字符串中有效的表达式
a = "[1,2,3,5]"
b = "{1,2,3,5,6}"
c = "1>2"
res = eval(a)
print(res)
res1 = eval(b)
print(res1)
res2 = eval(c)
print(res2)
filter() 过滤函数
需求:获取字典中值大于2的键值对,放到一个新的字典中
#方法一:
dic = {"a": 1, "b": 2, "c": 3, "d": 4}
new_dic = {}
for k, v in dic.items():
if v > 2:
new_dic[k] = v
print(new_dic)
#方法二:
li = [11, 22, 33, 44, 55, 66, 77, 88, 99]
def fun(x):
return 60 > x > 30 # 在30到60 之间的数
res = filter(fun, li)
print(list(res))
#方法三:扩展
#匿名函数 :lambda表达式(适合函数中只有一行代码的简单函数)
lambda 参数:返回值
li = [11, 22, 33, 44, 55, 66, 77, 88, 99]
res = filter(lambda x: 60 > x > 40, li)
print(list(res))
#zip()聚合打包
a = ["name", "age", "gender", "url"]
b = ["小明", 18, "男"]
res = dict(zip(a, b))
print(res) # {'name': '小明', 'age': 18, 'gender': '男'}
# 需求:现有数据入下,将其转化成键值对形式并保存在列表中的格式保存
# user = ["name", "age", "gender"]
# user_info = [["小明", 18, "男"], ["小李", 19, "女"]]
# 如:[{'name': '小明', 'age': 18, 'gender': '男'},
# {'name': '小李', 'age': 19, 'gender': '女'}]
user = ["name", "age", "gender"]
user_info = [["小明", 18, "男"], ["小李", 19, "女"]]
list = []
for i in user_info:
# print(i)
dic = dict(zip(user, i))
list.append(dic)
print(list)
@Author:木又
@File:work_08day.py
@Time:2020/7/16 23:13
@Name:Ta Quan Ge
第一题:请封装一个函数,按要求实现数据的格式转换
传入参数: data = ["{‘a’:11,‘b’:2}", “[11,22,33,44]”]
返回结果:res = [{‘a’: 11, ‘b’: 2}, [11, 22, 33, 44]]
通过代码将传入参数转换为返回结果所需数据,然后返回
def fun(data):
li = []
for i in data:
li.append(eval(i))
# return a
return li
# print(res)
res = fun(data=["{'a':11,'b':2}", "[11,22,33,44]"])
print(res)
第二题:请封装一个函数,完成如下数据格式转换
传入参数:
cases = [
[‘case_id’, ‘case_title’, ‘url’, ‘data’, ‘excepted’],
[1, ‘用例1’, ‘www.baudi.com’, ‘001’, ‘ok’],
[2, ‘用例2’, ‘www.baudi.com’, ‘002’, ‘ok’],
[3, ‘用例3’, ‘www.baudi.com’, ‘002’, ‘ok’],
[4, ‘用例4’, ‘www.baudi.com’, ‘002’, ‘ok’],
[5, ‘用例5’, ‘www.baudi.com’, ‘002’, ‘ok’],
]
返回结果
cases02 = [
{‘case_id’: 1, ‘case_title’: ‘用例1’, ‘url’: ‘www.baudi.com’, ‘data’: ‘001’, ‘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’: 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’}
]
def fun(cases):
cases02 = []
a = cases[0]
for i in cases[1:]:
b = i
# print(b)
res = zip(a, b)
cases02.append(dict(res))
print(cases02)
fun(cases=[
['case_id', 'case_title', 'url', 'data', 'excepted'],
[1, '用例1', 'www.baudi.com', '001', 'ok'],
[2, '用例2', 'www.baudi.com', '002', 'ok'],
[3, '用例3', 'www.baudi.com', '003', 'ok'],
[4, '用例4', 'www.baudi.com', '004', 'ok'],
[5, '用例5', 'www.baudi.com', '005', 'ok'],
])
第三题:简单题
1、什么是全局变量?
答:全局变量:python中直接定义在模块(py文件中的变量),叫全局变量
2、什么是局部变量?
答:局部变量:定义在函数中的变量,叫做局部变量
3、函数内部如何修改全局变量(声明全局变量 )?
答:在定义的变量名之前加global