zoukankan      html  css  js  c++  java
  • Python学习-函数的简单使用

    # 三种编程的方法论
    # 面向对象  :类  class
    # 面向过程  :过程  def
    # 函数式编程  :函数  def  最早的,但是现在又流行了
    
    import time
    
    
    
    #函数式编程
    
    
    def func1():  #():内可以定义形参
        '''Testing codes'''   #这个是文件的描述,非常重要一定要写
        #之后加入程序的逻辑代码
        print('testing code')  #这里简单一点
        return 0  #定义返回值,这里可以return很多东西
    
    #定义过程
    
    
    def func2():
        '''For the processing'''
        print('testing processing code')
        #这个是没有返回值的
    
    
    x = func1()
    
    
    y = func2()
    
    
    print(x)   #这里就有返回值了
    
    print(y)  #这个是没有返回值的,就是None,就是
    
    #可以看出这个实际就是说python自动将过程的返回定义为None。
    if y == None:
        print('The return code is None!')
    
    
    def open_file(date_now1, time_now1):
        '''Used to open files'''
        with open('testing.txt', 'a') as file:
            file.write('Today is {date1}, and now is {time1}
    '.format(date1=date_now1, time1= time_now1))
            #这里注意,字符串用’%n'% xx 这个形式,只能使用int参数,不能用字符串
            #字符串要用{}和format
        return 0
    
    
    def ipt_info():
        "Import time and date information!"
    
        date_now = "%Y-%m-%d %X"
        time_now = time.strftime(date_now)   #这个功能是用date_now 的参数形式返回电脑里面的时间
        print(date_now, time_now)
        open_file(date_now, time_now)
        return date_now, time_now, '可以有很多的输出,还可以是列表和字典,虽然实际是一个'
    
    
    print(ipt_info())
    
    
    def calu1(a, b ,c):
        """Calculate numbers and make a jugement."""
        d = a + b + c
        if d <20:
            return d
        else:
            return "It's too large"
    
    
    print(calu1(5, 6, 79)) #这个结果就证明了return可以在if的判断里面使用
    
    
    def calu1(a, b ,c= 6):   #这样就是有一个默认的值,这样,你如果不输入一个参数,这个参数就是这样的
        """Calculate numbers and make a jugement."""
        d = a + b + c
        if d <20:
            return d
        else:
            return "It's too large"
    
    
    print(calu1(5, 6)) #这个结果就证明了有默认的就可以少一个输入
    
    
    def calu1(a, b ,*c):   #多输入的参数会变成列表
        """Calculate numbers and make a jugement."""
        d = a + b + c[0]  #只使用列表第一个
        if d <20:
            return d
        else:
            return "It's too large"
    
    
    print(calu1(5, 6, 1, 9)) #这个结果就证明了有默认的就可以少一个输入
    
    
    def calu1(a, b ,**c):   #输入的参数会变成字典
        """Calculate numbers and make a jugement."""
        d = a + b   #只使用列表第一个
        if d <20:
            return d
        else:
            return c
    
    
    print(calu1(b=5, a=21, dic1= "aa"))  #字典输入的结果形式一定要是这样的
    #另外,直接使用a,b直接赋值就可以不用顺序,但是如果出现了一个定义参数,剩下的尽量全部都要直接赋值,不然由于位置参数和顺序参数混杂容易出现问题
    #关键参数不能在位置参数之前

    非固定参数

    若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

     *args 会把多传入的参数变成一个元组形式

    def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式
        print(name,age,args)
     
    stu_register("Alex",22)
    #输出
    #Alex 22 () #后面这个()就是args,只是因为没传值,所以为空
     
    stu_register("Jack",32,"CN","Python")
    #输出
    # Jack 32 ('CN', 'Python')
     
    还可以有一个**kwargs会把多传入的参数变成一个dict形式。
    当然这个与输入有关;
    def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
        print(name,age,args,kwargs)
     
    stu_register("Alex",22)
    #输出
    #Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空
     
    stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")
    #输出
    # Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}

    非固定参数

    若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式
        print(name,age,args)
     
    stu_register("Alex",22)
    #输出
    #Alex 22 () #后面这个()就是args,只是因为没传值,所以为空
     
    stu_register("Jack",32,"CN","Python")
    #输出
    # Jack 32 ('CN', 'Python')

    还可以有一个**kwargs

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
        print(name,age,args,kwargs)
     
    stu_register("Alex",22)
    #输出
    #Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空
     
    stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")
    #输出
    # Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}
  • 相关阅读:
    Python学习(一)
    使用OpenSSL生成CSR文件,并申请全球通用SSL证书
    windows 8.0 mysql 修改root 密码
    redis 本地安装
    spring boot(三)Junit 测试controller
    idea自动生成serialversionUID
    spring boot(二)热部署
    spring boot(一)创建项目
    Oracle中dual表的用途介绍
    Pass Data Between ASP.NET Pages
  • 原文地址:https://www.cnblogs.com/Ian-learning/p/7852844.html
Copyright © 2011-2022 走看看