ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pyhton基础知识——函数

2021-07-20 15:34:43  阅读:216  来源: 互联网

标签:profile 函数 make name pyhton 实参 基础知识 pizza


1. 函数的定义

1.1 最简单的函数结构

  • def f():
        '''显示简单的问候语'''
        print("Hello!")
    
    f()

    运行结果

    Hello!
  • 第2行的文本被称为文档字符串的注释,文档字符串由三引号括起,python使用它们来生成有关程序中函数的文档

1.2 向函数传递信息

  • def f(name):
        '''显示简单的问候语'''
        print("Hello, "+name.title()+"!")
    
    f('jesse')

    运行结果

    Hello, Jesse!
  • 向函数传递实参的方式有位置实参、关键字实参、默认值等
  • def f(name, age):
        print("Hello, "+name.title()+"! Age: "+str(age))
    
    f('jesse', 10)
    f(name = 'jesse', age = 10)
    f(age = 10, name = 'jesse')

    运行结果

    Hello, Jesse! Age: 10
    Hello, Jesse! Age: 10
    Hello, Jesse! Age: 10
  • 使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参

2. 向函数传递列表

  • 在函数中对传递来的列表所做的任何修改都是永久性的
  • 若需要禁止函数修改列表,可向函数传递列表的副本(如f(list_name[:]))而不是原件,这样函数所做的任何修改都只影响列表副本,对列表本身无影响

3. 向函数传递任意数量的实参

  • def make_pizza(*toppings):
        '''打印顾客点的所有配料'''
        print(toppings)
    
    make_pizza('pepperoni')
    make_pizza('mushrooms', 'green peppers', 'extra cheese')

    运行结果

    ('pepperoni',)
    ('mushrooms', 'green peppers', 'extra cheese')
    •  形参名*toppings中的星号让python创建一个名为toppings的空元组,并将收到的所有实参值都封装到这个元组中

 

3.1 结合使用位置实参和任意数量实参

 

  • def make_pizza(size, *toppings):
        '''概述要制作的比萨'''
        print("\nsize: "+str(size))
        print(toppings)
    
    make_pizza(16, 'pepperoni')
    make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

    运行结果

    size: 16
    ('pepperoni',)
    
    size: 12
    ('mushrooms', 'green peppers', 'extra cheese')
    • 如果让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放到最后。
    • python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中

3.2 使用任意数量的关键字实参

  • def build_profile(first, last, **user_info):
        '''创建一个字典,其中包含我们知道的有关用户的一切'''
        profile = {}
        profile['first_name'] = first
        profile['last_name'] = last
        for key, value in user_info.items():
            profile[key] = value
        return profile
    
    user_profile = build_profile('albert', 'einstein',
                                 location = 'princeton', field = 'physics')
    print(user_profile)

    运行结果

    {'first_name': 'albert', 'last_name': 'einstein', 'location': 'princeton', 'field': 'physics'}
    • 形参**user_info中的两个星号让python创建一个名为user_info的空字典,并将收到的所有名称-值对都封装到这个字典中

4. 将函数存储在模块中

4.1 导入整个模块

  • 模块是扩展名为.py的文件,包含要导入到程序中的代码
  • 尽量使模块和要运行的py文件在同一目录下
  • 比如模块为pizza.py,要运行的文件为making_pizza.py,在making_pizza.py文件中,通过代码行import pizza可导入整个模块。
  • 调用模块中的函数方式:如pizza.make_pizza(16, 'pepperoni')
  • 可使用as给模块指定别名,通用语法为:import module_name as mn

4.2 导入特定的函数

  • 4.1中例子可以替换为from pizza import make_pizza,调用函数时make_pizza(16, 'pepperoni')
  • 通过逗号分隔函数名,可根据需要从模块中导入任意数量的函数
  • 可使用as给函数指定别名,通用语法为:from module_name import function_name as fn

4.3 导入模块中所有函数

  • 通用语法为:from module_name import *
  • 但不太推荐使用这种方法,最佳的做法是:要么只导入你需要使用的函数,要么导入整个模块并使用句点表示法

5. 函数编写指南

  • 给形参指定默认值时,等号两边不要有空格
  • 函数调用中的关键字实参,等号两边也不要有空格
  • 如果程序或模块包含多个函数,可使用两个空行将相邻的函数分开
  • 所有的import语句都应放在文件开头,唯一的例外情形:文件开头使用了注释来描述整个程序

标签:profile,函数,make,name,pyhton,实参,基础知识,pizza
来源: https://www.cnblogs.com/my16/p/15032619.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有