• 【Python】学习笔记3-函数


    一、函数定义、返回值、递归函数

     1 #----------函数的好处----------
     2     #简化代码:组合代码块,变成整体,方便调用
     3     #函数不调用,不会被执行
     4     #提高代码复用性
     5 
     6 #----------定义无参函数----------
     7 # def hello():
     8 #     print("Hello!")
     9 
    10 #----------定义带参函数----------
    11 # def hello(file_name,content=''):#形参
    12 #     # 函数里面的变量都是局部变量
    13 #     f = open(file_name,'a+',encoding='utf-8')
    14 #     # return 222 #一单遇到return,立即结束函数,后面不再执行
    15 #     if content:
    16 #         f.write(content)
    17 #         res= ''
    18 #     else:
    19 #         f.seek(0)
    20 #         res = f.read()
    21 #     f.close()
    22 #     return res #返回值
    23 # #调用函数
    24 # users = hello('cm.txt','123')#实参
    25 
    26 #----------形参和实参#----------
    27 #形参就是函数接收的参数,而实参就是你实际传入的参数
    28 #函数的四种形参类型:固定参数(位置参数、默认参数)、非固定参数(可变参数、关键字参数)
    29 #位置参数,必填参数,按照参数的位置来进行传参,或者calc(y=1,x=2)这种关键字传参来调用
    30 #默认值参数,不是必填的 def hello(file_name,content='nnn'),如果有值传过来用传过来的值,没有值的话用‘’
    31 #可变参数,def test(a,b =1,*args) test('a','b','c','d') 元组类型
    32 def test(a,b =1,*args):#可变值参数
    33     print(a)
    34     print(b)
    35     print(args) #元组类型,输出所有出去a,b对应的值
    36     # print(args[0])
    37 test('a','b','c','d')
    38 
    39 #关键字参数,def test2(a,**kwargs):test2('cm',name = 'cm',sex = 'F')字典,必须同时传入key value,可以同时传多个,用的频率也比较少
    40 def test2(a,**kwargs):
    41     print(a)
    42     print(kwargs)
    43 test2('cm',name = 'cm',sex = 'F')
    44 
    45 #----------函数的返回值----------
    46 #如果函数要有返回值,必须return
    47 #如果函数没有返回值,返回none
    48 #函数返回值可有可没有
    49 #函数一旦遇到return,结束函数
    50 #
    #----------函数有多个返回值是,返回元组类型----------
    def hello(a,b,c,d):
    return a,b,c,d

    print(hello('a','b','c','c'))
    #('a', 'b', 'c', 'c')
    51 #----------全局变量和局部变量---------- 52 #注意全局变量局部变量 53 #函数内部声明的变量只能内部使用 54 #全局变量如果要在函数中修改的话,需要加global关键字声明,如果是list、字典和集合的话,则不需要加global关键字,直接就可以修改 55 56 # a =500 #全局变量 57 def test(): 58 global a #声明全部变量,可以修改全部变量的值 59 a = 400 60 61 def test1(): 62 c = a+5 63 return c 64 test() 65 res = test1() #如果不写调用test(),会找不到a,报错 66 print(res) 67 68 69 #----------递归函数---------- 70 def test1(): 71 num = int(input('please enter a number:')) 72 if num % 2 == 0: # 判断输入的数字是不是偶数 73 return True # 如果是偶数的话,程序就退出了,返回true 74 print('不是偶数请重新输入!') 75 return test1() # 如果不是偶数的话继续调用自己,输入值 76 print(test1()) # 调用test
  • 相关阅读:
    二维ST表模板
    AtCoder Beginner Contest 151 *F
    [Codeforces Round #320 (Div. 2) -E. Weakness and Poorness (三分/二分)
    [Codeforces Round #320 (Div. 2) C. A Problem about Polyline (数学)
    [Codeforces Round #630 (Div. 2)]
    Codeforces Round #353 (Div. 2) E. Trains and Statistic (线段树 + dp)
    Educational Codeforces Round 13 D. Iterated Linear Function (矩阵快速幂)
    Codeforces Round #260 (Div. 1) A. Boredom (简单dp)
    Codeforces Round #245 (Div. 1) B. Working out (简单DP)
    POJ 1988 Cube Stacking (带权并查集)
  • 原文地址:https://www.cnblogs.com/amengmeng/p/8268019.html
Copyright © 2020-2023  润新知