• 函数一


    一、函数的初始

    程序中如果没有函数的引用,会产生重复代码多,可读性差的特点。

    函数就是封装一个功能。

    二、函数名,函数体,关键字,函数的返回值

    def my_len():
        #def 关键字 定义一个函数
        #my_len 函数名书写规则与变量一样
        #def与函数名中间一个空格
        #函数名():加上冒号
        #函数体
        count = 0
        for j in l1:
            count += 1
        print(count)
    my_len

    函数的执行:函数名+()

    while True:
        print(222)
        print(666)
    print(len([1,23,4]))

    函数的返回值:

    写函数,不要在函数中写print()

    return

    1、在函数中,遇到return结束函数。

    2、将返回值给函数的调用者。

      无 return = return None

      return 1个值 该值是什么,就直接返回给函数的调用者,函数名()

      return 多个值,将多个值放到一个元组中,返回给函数的调用者。

    三、函数的传参

    函数分为形参和实参:

    形参:形式参数,不代表实际的变量。

    形参传参:1、位置传参。按顺序,一一对应。

          2、默认参数。传参则覆盖,不传则默认,默认参数永远在位置参数的后面。

    实参:实际参数,带入形参中的变量

    形参传参:1位置传参。按顺序,一一对应。

          2、关键字传参,不按顺序,一一对应。

          3、混合传参,关键字参数永远在位置参数的后面。

    # 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)
    #写一个函数,功能比大小,
    # def max_min(a,b):
    #     if a > b:
    #         return a
    #     else:
    #         return b
    # num1 = int(input('请输入一个数:'))
    # num2 = int(input('请输入另一个数:'))
    # print(max_min(num1,num2))
    #ps: 三元运算
    # def max_min(a,b):
    #     if a > b:
    #         return a
    #     else:
    #         return b
    # print(max_min(100,200))
    # def max_min(a,b):
    #     return a if a > b else b
    # print(max_min(300,200))
        #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,位置传参。按顺序,一一对应。
    # def func(a,b,c):
    #     print(a)
    #     print(b)
    #     print(c)
    # func('fdsafdas',3,4)
    #2,默认参数。
    def func(a,b=666):  #
        print(a,b)
    # func(1,2)
    # func(1,777)
    func(1,2)
    # s = 'alex'.center(30,'*')
    # print(s)
    # 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,'女')
    # 2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    '''
    def new_file(x):
        li = []
        for i in range(len(x)):
            if i%2 == 1:
                li.append(x[i])
        return li
    l1 = ['adf','asdf','ab'] #写的函数
    print(new_file(l1))
    '''
    '''
    def not_know_file(x):
        li = []
        for i in range(len(x)):
            if i%2 == 1:
                li.append(x[i])
        return li
    not_know_list = input('>>>')
    l1 = not_know_file(not_know_list)
    print(l1)
    '''
    # 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    '''
    def decide_value(x):
        return 'length > 5' if len(x) > 5 else 'length <= 5'
    decide = [1,2,3,4,5,6]
    print(decide_value(decide))
    '''
    
    '''
    def decide_value(x):
        new_list = []
        for i in x:
            new_list.append(i)
        if len(x) > 5:
            return '输入的对象大于5'
        else:return '输入的对象小于等于5'
    value_input = input(">>")
    print(decide_value(value_input))
    '''
    # 4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    '''
    def length_list(x):
        new_list = []
        for i in x:
            new_list.append(i)
        if len(x) > 2:
            return x[0:2]
    new_input = ['adfasd','sadf','saf']
    print(length_list(new_input))
    '''
    # 5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
    '''
    def leng_count(x):
        return len(x)
    new_input = input('>>>')
    print(leng_count(new_input))
    '''
    # 6、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。
    '''
    def decide_value(x):
        for i in x:
            if i == ' ':
                return '含有空内容'
        else:return '不含空内容'
    value_input = [1,2,' ',4]
    print(decide_value(value_input))
    '''
    # 7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    #     dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    #     PS:字典中的value只能是字符串或列表
    '''
    def dic_value(dic):
        for i,j in dic.items():
            if len(j) > 2:
                j = j[0:2]
                dic[i] = j
        return dic
    dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
    print(dic_value(dic))
    '''
    
    # 8、写函数,接收两个数字参数,返回比较大的那个数字。
    '''
    def max_num(x,y):
        return x if x > y else y
    one_input = input('>>')
    two_input = input('>>')
    print(max_num(int(one_input),int(two_input)))
    '''
    # 9、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)。
    import os
    def file_revise(new_name,old_name,new_content,old_content):
        with open(old_name,encoding='utf-8') as f1,
            open(new_name,'w',encoding='utf-8') as f2:
            for i in f1:
                i = i.replace(old_content,new_content)
                f2.write(i)
        os.remove(old_name)
        os.rename(new_name,old_name)
    new_file_name = 'new.txt'
    old_file_name = 'old.txt'
    new_file_conten = 'aaaa'
    old_file_conten = 'bbbb'
    file_revise(new_file_name,old_file_name,new_file_conten,old_file_conten)
    # 10、写一个函数完成三次登陆功能,再写一个函数完成注册功能(进阶)
    def authentication():
        i = 0
        while i < 3:
            i += 1
            user_name = input('username')
            user_passwd = input('password')
            with open('text.txt',encoding='utf-8') as f:
                for j in f:
                    j =j.strip().split(':')
                    if j[0] == user_name and j[1] == user_passwd:
                        return True
    def register():
        username = input('username')
        password = input('password')
        with open('text.txt','a',encoding='utf-8') as f1:
            f1.write('
    ')
            f1.write(username)
            f1.write(':')
            f1.write(password)
        return '注册成功'
    msg = '''请登录按A/a进行账号密码输入,按R/r进行注册'''
    print(msg)
    a_input = input("请输入>>")
    if a_input.upper()== 'A':
        authentication_name = authentication()
        if authentication_name == None:
            print('登录失败,请按R进行注册')
            name_input = input('请输入')
            if name_input.upper() == 'R':
                register()
            else:
                print("SB")
    elif a_input.upper() == 'R':
        register()
  • 相关阅读:
    Oracle数据库系统结构二(实例结构)
    Oracle数据库系统结构一(存储结构)
    SQL Plus的使用详解(登录和常用命令)
    Oracle的基本了解和配置
    Oracle11g的安装及删除
    C++编译预处理
    C++程序的多文件组织
    C++变量的存储类型
    C++动态存储方式与静态存储方式
    C++函数五(局部变量与全局变量和域运算符)
  • 原文地址:https://www.cnblogs.com/qiujie/p/8664693.html
Copyright © 2020-2023  润新知