zoukankan      html  css  js  c++  java
  • 函数

    1、什么是函数?

    函数就是一种工具,可以重复调用。

    2、为什么要用函数?

    1、防止代码冗余

    2、代码的可读性差

    3、怎么用函数?

    1、定义函数  >>>  制造工具

    2、调用函数  >>>  使用工具

    1、无参函数:

    def index()

    print("ok")

    2、空函数:

    def login()

    pass

    3、有参函数:

    def login(username):

    print(username)

    函数的参数:

    参数的类型:

    形参:

    实参:

    传参方式:

    位置参数

    关键字参数

    默认参数

    可变长参数:

    *args:接收所有溢出的位置参数

    **kwargs:接收所有溢出的关键字参数

    *:放到实参中就是打散

    形参:是在函数定义阶段就规定的参数,它就相当于定义变量时的变量名

    实参:是在函数调用阶段传入的参数,它相当于定义变量时的变量值。

    python代码从上到下依次执行

    默认参数:

    在定义函数阶段就已经传入参数

    如果说你在实参的时候传入了一个新的参数,就会使用新参数

    默认参数在传值的时候,不要将可变类型()当做参数传递

    可变与不可变类型

    可变类型(mutable):列表,字典

    不可变类型(unmutable):数字,字符串,元组

    定义函数

    def greet_user():
    print("hello")

    greet_user()

    这是最简单的定义函数

    前面定义函数

    def greet_user(username):
    print("hello," + username.title() + "!")

    greet_user("jesse")

    运行结果:hello,Jesse!

    pets.py

    def describe_pet(animal_type,pet_name):
    print(" i have a"+ animal_type + ".")
    print("my"+ animal_type + "'s name is " + pet_name.title() + ".")
    describe_pet("hamater","harry")

    调用的时候,用关键字来调用,看下例子:

    def describe_pet(animal_type,pet_name):
        print("
    i have a " + animal_type + ".")
    print("my "+ animal_type + "'s name is " + pet_name.title() + ".")
    describe_pet(animal_type="hamater",pet_name="harry")
    animal_type="hamater", pet_name="harry",这两个就是关键字实参,务必准确地指定函数定义中的形参名。




    默认参数
    def reg(username,password,gender="male"):
    print(f"用户名:{username},密码:{password},性别:{gender}")

    reg("zc","nice")
    reg("zc","nice")

    可变长参数:
    *args:接收所有溢出的位置参数
    接收的值都被存入一个元组
    官方认证:*args
    只要有*就有可变长参数的效果 *打散你传入容器类型
    **kwargs:接收所有溢出的关键字参数
    接收的值都被存入一个字典
    官方认证:**kwargs




  • 相关阅读:
    TLS握手、中断恢复与证书中心的原因
    PROC 文件系统调节参数介绍(netstat -us)
    CPU状态信息us,sy,ni,id,wa,hi,si,st含义
    优化Linux内核参数
    linux内核(kernel)版本号的意义
    ethhdr、ether_header、iphdr、tcphdr、udphdr 结构介绍
    linux下将不同线程绑定到不同core和cpu上——pthread_setaffinity_np
    module_init的加载和释放
    (一)洞悉linux下的Netfilter&iptables:什么是Netfilter?
    netfilter的钩子——数据包在内核态得捕获、修改和转发
  • 原文地址:https://www.cnblogs.com/medigrat/p/11827274.html
Copyright © 2011-2022 走看看