• 初识函数


    • 函数
      • 概念:对功能的封装
      • 格式: def 函数文件名(形参列表): 函数体(return) 调用:函数名(实参)
    • 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
    性别:%s
    年龄%s
    学历:%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
    年龄%s
    学历:%s
    性别:%s
    "%(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")

      

    不要被眼前的迷雾遮住了双眼.
  • 相关阅读:
    sqlalchemy-数据目录集合整合
    算法-lowb三人组
    ipython ---matplotlib:绘图和可视化
    ipython --pandas
    ipython --之Numpy
    字符编码
    Markdown——入门使用
    python集合操作和内置方法
    python字典操作和内置方法
    python元祖操作和内置方法
  • 原文地址:https://www.cnblogs.com/lingcai/p/9446451.html
Copyright © 2020-2023  润新知