初识函数

  • 函数
    • 概念:对功能的封装
    • 格式: def 函数文件名(形参列表):\n 函数体(return)\n 调用:函数名(实参)
  • return
    • 函数在运行过程中遇到return,程序停止,随即返回return后的值
    • 1函数中没有return,或者return后没有值,返回None
    • 2函数中间如果有return,但是没有指定返回的值,返回None
    • 3函数中有return 值 , 返回指定的值
  • 参数:函数执行的时候给函数传递信息
    • 形参:定义函数过程中,函数名位置设置的变量
      • 位置参数
      • 默认参数,先位置参数后
      • 动态参数
    • 实参:函数调用过程中赋予的值
      • 位置参数,按照形参的位置赋值
      • 关键字参数,按照形参的名字给形参传值
      • 混合参数:即用位置参数也用关键字参数(位置参数在前,关键字参数在后)
    • 传参:函数调用过程中,把实参赋予形参的过程

习题

 

2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
# def jishu(tools): # l = [] # for i in range(len(tools)): # if i % 2 != 0: # l.append(tools[i]) # return l # s = jishu([1,2,3,4,5,6,7]) # print(s) # 3写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。 # def ms(tools): # a = len(tools) # if a >5: # return "max" # else: # return "min" # s = ms("1,2,3,4,56,6,") # print(s) # # 4写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。 # def chang(tools): # l = [] # for i in range(len(tools)): # if len(tools) > 2: # l.append(tools[i]) # return l[0], l[1] # s = chang([1,2,3,4,5,6,7]) # print(s) # 5写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。 # def panduan(tools): # s = 0 # z = 0 # k = 0 # q = 0 # for i in tools: # if i.isdigit() == True: # s+=1 # elif i.isalpha() == True: # z+=1 # elif i==" ": # k+=1 # else: # q+=1 # return ("数字出现%s次字母出现%s次空格出现%s次其他出现%s次"%(s,z,k,q,)) # s=panduan("1,2,3,3,' 'a,s,dsadasd@#$") # print(s) #6写函数,接收两个数字参数,返回比较大的那个数字。 # def shuzi(): # a = int(input("请输入一个数字:")) # b = int(input("请再输入一个数字:")) # if a > b: # return a # elif b > a: # return b # else: # return "一样大" # s =shuzi() # print(s) # 7写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

      dic = {"k1": "v1v1", "k2": [11,22,33,44]}

      PS:字典中的value只能是字符串或列表

# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# def duan(dic):
#     for i in dic.keys():
#         if len(dic[i]) > 2:
#             dic[i] = dic[i][0:2]
#     return dic
# z = duan({"k1": "v1v1", "k2": [11,22,33,44]})
# print(z)

# 8写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。
# def fan(tools):
#     dic = {}
#     if isinstance(tools, list):
#         for i in range(len(tools)):
#          dic[i] = tools[i]
#     return dic
# z=fan([1,2,3,4,5])
# print(z)


# 9写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。
# def student(name,sex,age,edu):
#     f = open("student-msg",mode="w",encoding="utf-8")
#     f.write("姓名:%s\n性别:%s\n年龄%s\n学历:%s"%(name,sex,age,edu))
#     f.flush()
#     f.close()
# student("wangjun","man","24","研究生")
# # 10对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。
# def student(name,age,edu,sex="男"):
#     f = open("student-msg",mode="a",encoding="utf-8")
#     f.write("姓名:%s\n年龄%s\n学历:%s\n性别:%s\n"%(name,age,edu,sex))
#     f.flush()
#     f.close()
# while 1:
#     yonghu=input("请输入学生信息,输出q退出;")
#     if yonghu.lower()=='q':
#         break
#     n = input("输入名字:")
#     a = input("输入年龄:")
#     e = input("输入学历:")
#     s = input("输入性别:")
#     if s == "":
#         student(n,a,e)
#     else:
#         student(n,a,e,s)

11,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。
 def func(filename, old, new):
# # import os
# # 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("a1.txt","wohenhao","i m not good")

  

转载于:https://www.cnblogs.com/lingcai/p/9446451.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值