zoukankan      html  css  js  c++  java
  • python全栈学习--day9(函数初始)

    Python 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

    定义一个函数

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
    • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

    实例:

    l1 = '23faesdafea2f'
    def my_len():
        # def 关键字 定义一个关键字
        #my_len 函数名书写规范与变量一样
        # def 与函数名中间一样
        #函数名():加上冒号
        #函数体
        count = 0
        for j in l1:
            count += 1
        return count
    print(my_len())
    #函数的返回值
    #写函数不要在函数里写print()
    
    #1,在函数中,遇到return结束函数
    #2,将值返回给函数的调用者。
    #无return 返回None
    #return None 返回None
    #return 一个值 该值是什么,就直接返回给函数的调用者。
    #return 多个值,将多个值放到一个元祖里,返回给函数的调用者

     函数的传递

    #函数的执行:函数名 + ()
    while True:
         print(222)
         print(666)
    print(len([1,23,4]))
    
    # 函数的返回值
    #写函数,不要再函数中写print()
    #return
    #1,在函数中,遇到return结束函数。
    #2,将值返回给函数的调用者。
        # 无 return
        # return None
        # return 1个值  该值是什么,就直接返回给函数的调用者,函数名()
        # return 多个值 将多个值放到一个元组里,返回给函数的调用者。
    def fun():
         print(111)
         print(222)
         print(333)
         return 2,3,4
    a,b,c = fun()
    print(a,b,c)
    

      

    def my_len(l):  # l 形式参数 形参
        print(l)
        count = 0
        for j in l:
            count += 1
        return count
    a = 'fdsafdsafdsagfsadf'
    print(my_len(a))           # 实际参数 ,实参
    print(my_len([1,2,3]))
    

     #实参角度:

         #1. 位置传参,按顺序,一一对应。

      

    def func(a,b,c):
        print(a)
        print(b)
        print(c)
    func('fdsafdas',3,4)

      输出执行:

    函数实例功能:

    实例一:(写一个函数,功能大小比较)

    num1 = int(input('请输入第一个数字:'))
    num2 = int(input('请输入第二个数字:'))
    def max_min(a, b):
        if a > b:
            return a
        else:
            return b
    print('本次比较最大数字为:',max_min(num1, num2))
    

      

     执行后输出:

     

    num1 = int(input('请输入第一个数:'))
    num2 = int(input('请输入第二个数:'))
    def max_min(a, b):
    return a if a > b else b
    print('本次比较的最大数为:', max_min(num1, num2))

     

     #2,关键字传参,不按顺序,一一对应。
    def max_min(a,b): return a if a > b else b print(max_min(b = 300,a = 200))

      执行后输出:

    #3,混合传参,关键字参数永远在最后面。
    def func1(a,b,c,d,e):
        print(a)
        print(b)
        print(c)
        print(d)
        print(e)
    func1(1,2,d=4,c=3,e=5)
    func1(1,4,d=2,c=3,e=5)
    

      执行后输出:

    1
    2
    3
    4
    5
    1
    4
    3
    2
    5

    # 按照形参角度。
    #1,位置传参。按顺序,一一对应。

    def func(a,b,c):
        print(a)
        print(b)
        print(c)
    func('fdsafdas',3,4)
    

      执行后输出:

    ##实例:(使用函数写一个员工信息录入表)

    def Infor_entry(username,sex='男'):
        with open('name_list',encoding='utf-8',mode='a') as f1:
            f1.write('{}	{}
    '.format(username,sex))
    
    while True:
        username = input('请输入姓名(男生以1开头):').strip()
        if '1' in username:
            username = username[1:]
            Infor_entry(username)
        else:
            Infor_entry(username,'女')
    

    执行后输出: 

     

    写入后的文本内容:

    ###今日练习

    1. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    ###实例一:
    def fun2():
        li = [11,22,33,44,55,66,77,88,99]
        lis =[]
        for i in range(len(li)):
            if i % 2 == 1:
                lis.append(li[i])
        return  lis
    print(fun2())
    

      执行输出:

    ###实例2
    def fun2():
        li = ['我','写','的','第','一','个','函','数']
        lis = []
        for i in range(len(li)):
            if i % 2 == 1:
                lis.append(li[i])
        return lis
    print(fun2())
    

      执行输出:

    2.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    def fun2():
        li = [11,22,33,44,55,66,77,88,99]
        lis =[]
        for i in range(len(li)):
            if i % 2 == 1:
                lis.append(li[i])
        return  lis
    print(fun2())

    #方法二
    def func1(argv):return argv[1::2]
    print(func1([1,2,3,4]))

    #方法三:
    def func1(argv):
    l1 = []
    for i in range(len(argv)):
    if i % 2 == 1:
    l1.append(argv[i])
    return l1
    print(func1([1,2,3,4,5,6]))
    # 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    li = [11,22,33,44,55,66,77,88,99]
    dic = {"name":"jin","age":18,"sex":"male","sx":"ma","se":"ml","ne":"john"}
    def mylen(a):
        # for i in range(len(a)):
        #     i += 1
        # i = len(a)
        return  len(a) if len(a) > 5 else '长度小于5'
    print(mylen(li))
    4. 写函数,检传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    ###实例1
    li = [11,22,33,44,55,66,77,88,99,'john','tom','jack','json']
    def fun4(a):
        for i in a:
            pass
            
        return  a[:2]
    print(fun4(li))
    
    ###实例2
    li = [11,22,33,44,55,66,77,88,99,'john','tom','jack','json']
    def fun4(a):
    if len(a) > 2:
    return a[:2]
    print(fun4(li))
    5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
    num1 = input('请输入内容:')
    def fun5(a):
        s1 = 0
        s2 = 0
        s3 = 0
        s4 = 0
        for i in a:
            if i.isdigit():  #统计数字
                s1 += 1
            elif i.isalpha():  #统计字母
                s2 += 1
            elif i.isspace():    #统计空格
                s3 += 1
            else:               #统计其他
                s4 += 1
        layout = '''
        数字个数为: {}
        字母个数为: {}
        空格个数为: {}
        其他个数为: {}
        '''
        return layout.format(s1,s2,s3,s4)
    print(fun5(num1))
    
    6.写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。
    li = [11,22,33,44,55,66,77,88,99,' ']
    s1 = 'bhkbnlnlj'
    dic = {"name":"jin","age":18,"sex":"male","sx":"ma","se":"ml","ne":"john"}
    def fun6(a):
        for i in a:
            #print(i)
            if i == ' ':
                flag = True
                break
            else:
                flag = False
                #break
                #return '没有空格'
        #return flag
        # if flag == True:
        #     return '此次判断有空格'
        # else:
        #     return '此次判断正常'
        return '此次判断有空格' if flag == True else '此次判断正常'
    print(fun6(s1))
    

      

    7. 写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    PS:字典中的value只能是字符串或列表
    ###方法一:
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    def fun7(a):
        for i in a:
            if len(dic[i]) > 2:  ##这里做匹配判断
                dic[i] = dic[i][0:2]  #这里使用步长法
        return a
    print(fun7(dic))

    ###方法二:
    dic = {"k1":"v11","k2":"v22","k3":"v33","k4":"v44"}
    def fun6(argv):
        for i in argv:
            if len(argv[i]) > 2:
                argv[i] = argv[i][:2]
        return  argv
    print(fun6(dic))
    8、写函数,接收两个数字参数,返回比较大的那个数字。
    num1 = input('请输入第一个数字:')
    num2 = input('请输入第二个数字:')
    def fun9(a,b):
        return a if a > b else b
    print('本次比较最大数为:',fun9(num1,num2))
    

      

      

  • 相关阅读:
    常用排序算法--合并排序和快速排序
    常用排序算法--冒泡排序及改进和插入排序时间复杂度分析
    常用数据结构图--拓扑排序
    常用数据结构栈的应用—-表达式求值
    Session原理,生命周期
    jsp内置对象out 和response.getwriter().write()的区别
    div中的div在父容器中水平居中或者垂直居中
    <!DOCTYPE html> 到底是什么意思?
    设置了环境变量,为什么执行javac报找不到javac: 找不到文件
    自动抽取邮件内容
  • 原文地址:https://www.cnblogs.com/haowen980/p/8664676.html
Copyright © 2011-2022 走看看