一、函数的定义
函数就是功能的封装,里面就是代码块
语法:
def 函数名(形参):
函数体 【代码块】
函数名(实参)
示例:
def abc(haha):
print("打开手机")
print("打开%s" % haha)
abc(微信)
结果:打开手机
打开微信
函数名:命名规则和变量一样
二、return返回值
return返回值:
return,函数执行完毕,不会执行后面逻辑
1.如果函数不写return返回None
2.只写return,返回None
3.return返回值,返回一个值
4.return值1,值2,... 返回多个值。调用方接收的是元组
三、参数
参数:在函数执行的时候给函数传递的信息。函数的参数个数没要求,但是,在运行的时候,形参和实参要匹配,按照位置把实参赋值给形参
1.形参:在函数声明的位置,声明出来变量
1.位置参数。
2.默认值参数。当调用的时候不给传值使用默认值
3.混合使用。顺序:1.位置参数。2默认值参数
2.实参:在函数调用的时候,实际你给函数传递的值
1.位置参数。按照位置给形参赋值
2.关键字参数。按照名称给形参赋值
3.混合参数。先用位置参数,再用关键字参数
四、示例:
2. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
# def func(lst):
# ll = []
# for i in range(len(lst)):
# if i % 2 == 1:
# ll.append(lst[i])
# return ll
#
# a = [1, 5, 7, 9, 12]
# ret = func(a)
# print(ret)
# 3, 写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
# def func(a):
# # if len(a) > 5:
# # return True
# # else:
# # return False
# return len(a) > 5
# 4.
# def func(lst):
# if len(lst) > 2:
# return lst[0], lst[1]
# 5.写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。
# def func(s=""): # function
# shuzi = 0
# zimu = 0
# kongge = 0
# qita = 0
# for c in s: # 循环字符串.拿到每个字符
# if c.isdigit(): # 数字
# shuzi += 1
# elif c.isalpha():
# zimu+=1
# elif c == ' ':
# kongge += 1
# else:
# qita += 1
# return shuzi, zimu, kongge, qita
# 6.写函数,接收两个数字参数,返回比较大的那个数字。
# def func(a, b):
# # if a > b:
# # return a
# # else:
# # return b
# c = a if a > b else b
# return c
# print(func(3, 5))
# 7. 写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
#
# dic = {"k1":"v1", "k2":[11,22]}
# PS:字典中的value只能是字符串或列表
#
# def func(dic):
# new_dic = {}
# for k, v in dic.items():
# if len(v) > 2:
# new_dic[k] = v[0:2]
# else:
# new_dic[k] = v
# return new_dic
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# print(func(dic))
# 8.
# def func(lst):
# dic = {}
# for i in range(len(lst)):
# dic[i] = lst[i]
# return dic
# 9.
# def func(name, age,edu,sex ="男"):
# f = open("student.msg", mode="a", encoding="utf-8")
# f.write(name+"_"+str(age)+"_"+sex+"_"+edu+"
")
# f.flush()
# f.close()
#
#
# while 1:
# content = input("请问. 是否要录入学生信息, 输入q退出:")
# if content.upper() == "Q":
# break
# n = input("请输入名字:")
# a = input("请输入年龄:")
# s = input("请输入性别:")
# e = input("请输入学历:")
# if s == "":
# func(n,a,e)
# else:
# func(n,a,e,s)
# 10
# import os
# def func(filename, old, new):
# with open(filename, mode="r", encoding="utf-8") as f1,
# open(filename+"_副本", mode="w", encoding="utf-8") as f2:
#
# for line in f1:
# s = line.replace(old, new)
# f2.write(s)
#
# os.remove(filename)
# os.rename(filename+"_副本", filename)
#
# func("student.msg", "本", "学")