iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础之函数和模块
  • 637
分享到

Python基础之函数和模块

函数模块基础 2023-01-31 00:01:51 637人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

函数的基本使用 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数的使用:1.定义函数;2.调用函数。 函数的作用:能提高应用的模

函数的基本使用

  • 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
  • 函数的使用:1.定义函数;2.调用函数。
  • 函数的作用:能提高应用的模块性,和代码的重复利用率。
  • 自己创建函数,叫做用户自定义函数。

函数的快速体验

在一个py文件中定义一个函数,在另一个文件中,导入函数,调用函数。

定义函数:
hello_func.py

def hello():
    print("hello world")
    print("hello python")

调用函数:
sayhello.py

import hello_func
hello_func.hello()

函数定义的语法格式

def 函数名():
    被封装的函数代码

函数的命名

  • 函数名称,应该见名知意
  • 应该符合 标识符的命名规则
  • 由字母,数字,下划线组成
  • 不能以数字开头
  • 不能与关键字重名

函数的调用

直接 函数名() 即可;调用格式及示例如下:

# 函数名()
sayhello()

函数演练

def say_hello():
    print("hello world 1")
    print("hello world 2")
    print("hello world 3")

say_hello()

函数的注意事项

  1. 函数被定义后并不会被运行,只是封装了函数而已,要使用函数需要调用函数。

  2. 当断点调试经过函数时,并不会执行,会跳过,只有当后面调用时,才会去函数中依次执行代码,执行完成后再重新回到调用函数后面的代码

  3. 先定义再调用;没定义函数就先调用,会报错;所以应该先定义函数,再调用函数;

  4. f8和f7单步越过和单步进入;f8单步执行时,经过函数调用时会直接执行整的函数而不进入内部;
    f7单步执行时,经过函数调用时会进入函数内部一步一步执行。

函数的文档注释

在函数定义下的第一行,添加连续的三对双引号,在双引号中间进行文字注释;
在函数调用处可以用ctrl+q,查看函数说明
注释如下:

def say_hello():
    """输出三次打招呼"""
    print("hello 黎明1")
    print("hello 黎明2")
    print("hello 黎明3")

函数的参数与返回值

无参数的函数示例

def sum2num():
    num1 = 10
    num2 = 20
    s = num1 + num2

    print("%d和%d的和为%d" % (num1, num2, s))


sum2num()

没有参数的函数只能计算固定的数字,过于死板,作用不大。

函数参数的使用

def sum2num(num1, num2):
    """将传进来的两个参数求和并输出"""
    s = num1 + num2
    print("%d和%d的和为%d" % (num1, num2, s))


sum2num(10, 20)  # 10和20的和为30
sum2num(30, 45)  # 30和45的和为75

参数的使用:在函数名后面的小括号内填写参数,多个参数之间用逗号分隔;

参数的作用
增加函数的通用性,真毒以相同的数据处理逻辑,能够适应更多的数据。
1.在函数内部,把参数当做变量使用,进行需要的数据处理;
2.函数调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过参数传递。

形参和实参

定义函数时传递的参数叫形参,用来接收参数用的,在函数内部作为变量使用;
调用函数时传递的参数叫实参,用来把数据传到函数内部;
例如:

def sum2num(num1, num2):  # 这里的就是形参,即形式参数,一个架子,同时函数内部使用的,都是形参
    s = num1 + num2
    print("%d和%d的和为%d" % (num1, num2, s))


sum2num(10, 20)  # 这里的就是实参,即实际传送的参数
sum2num(30, 45)  # 这里的就是实参,即实际传送的参数

函数返回值

  • 函数在执行后,返回给调用者函数执行的结果,方便调用者针对返回结果做相应的处理;
  • 在函数中想要返回结果,用一个return 加上要返回的结果即可;
  • 在调用函数后,想要函数返回的结果,用一个变量接收即可。

接收函数的返回值示例

def sum2num(num1, num2):
    """将传进来的两个参数求和并返回结果"""
    s = num1 + num2
    # 可以用返回值,告诉调用者计算结果
    return s


# 可以用变量接收函数的返回结果
result = sum2num(10, 20)
print("计算结果为:%d" % result)

return关键字的注意事项:return表示返回,后面的函数代码都不会被执行(无法到达),应注意别在return下面写代码

函数的嵌套调用

函数嵌套调用示例

函数的嵌套调用示例

def test1():
    print("*"*50)


def test2():
    print("-"*50)
    test1()
    print("+"*50)


test2()
# 执行结果如下
# --------------------------------------------------
# **************************************************
# ++++++++++++++++++++++++++++++++++++++++++++++++++

参数与分割线的打印示例

# 版本1
# def print_line():
#     print("*" * 50)
# print_line()


# 版本2
# def print_line(char):
#     print(char * 50)
# print_line("-")

# 版本3
def print_line(char, times):
    print(char * times)
print_line("hi ", 50)

打印多行分割线示例

def print_line(char, times):
    print(char * times)


def print_lines():
    row = 1
    while row <= 5:
        print_line("-", 50)
        row += 1


print_lines()

按需打印分割线示例

def print_line(char, times):
    print(char * times)


def print_lines(char, times, lines):
    row = 1
    while row <= lines:
        print_line(char, times)
        row += 1


print_lines("-", 40, 6)
print_lines("+", 50, 6)

给函数增加文档注释

当参数过多或者过久了再看代码,极有可能会忘记各个参数代表什么,因此很有必要添加文档注释;
增加函数文档注释有两种方法:

  1. 当函数写完后,在def下一行添加三个一对双引号,回车,系统就会自动帮你生成含函数参数的部分注释,再加上自己的注释即可;
  2. 点击函数名,将鼠标移动到出现的灯泡处,会有一个小三角,点击找到 给函数添加短文档注释,然后添加自己的注释即可。

添加文档注释后效果如下:

def print_line(char, times):
    """
    :param char:用于分割的字符
    :param times:每行分割字符的数量
    :return:
    """
    print(char * times)


def print_lines(char, times, lines):
    """
    按照客户需求打印分割线,完全自定义打印多少行,什么分隔符,每行多少个分隔符
    :param char: 用于分割的字符
    :param times: 每行分割字符的数量
    :param lines: 打印分割线的行数
    :return:
    """
    row = 1
    while row <= lines:
        print_line(char, times)
        row += 1


print_lines("-", 40, 6)
print_lines("+", 50, 6)

eval函数

eval函数的介绍和简单使用

eval()函数十分强大,能够将字符串当成有效的表达式来求值并返回计算结果;

# 基本的数学计算
print(eval("1+1"))
# 字符串重复
print(eval("'*'*10"))
# 将用户输入的字符串转换为字典
userinfo = input("请输入一个字典:")
print(type(eval(userinfo)))

# 2
# **********
# 请输入一个字典:{"name":"zhangsan", "age":"18"}
# <class 'dict'>

eval函数计算题示例:

user_str = input("请输入一个算术题:")

print(eval(user_str))

# 请输入一个算术题:(2+3)*5
# 25

谨慎使用eval函数

不滥用eval,防止代码注入
开发时千万不要使用eval直接转换input的结果;

在讲为什么之前先了解前置知识:

    __import__('os').system('ls')
    等价于
    import os
    os.system("ls")

执行成功,返回0;
执行失败,返回错误信息;

那么,加入用户用这个恶意攻击你的系统?

user_str = input("请输入一个算术题:")

print(eval(user_str))


# 请输入一个算术题:__import__('os').getcwd()
# E:\PyCharm\xxx\xxx\04文件操作

# 请输入一个算术题:__import__('os').path.basename(__file__)
# cp_08计算器案例.py

如上,两次执行,一次通过os模块获取当前目录,一次通过os模块获取当前文件名,那么再继续下去呢?
所以,不要滥用eval函数!

模块的介绍

模块时Python程序架构的一个核心概念;
模块就好比一个工具包,而里面的函数和变量就是工具;

模块的概念

所有以.py结尾的源文件都是一个模块,在文件中定义的[全局]变量和函数都能给外界使用,使用的前提是import导入模块

模块的演练

在一个文件创建两个函数和一个全局变量,在另一个文件导入第一个文件,.函数 即可调用函数, .变量 即可调用变量

定义函数:
hello_func.py

def hello():
    print("hello world")
    print("hello python")

name = "小明"

调用函数:
sayhello.py

import cp_01hello_func

hello_func.hello()
hello_func.name

注意:模块名也是标识符,需要遵循标识符的命名规则
如果在给py文件命名时以数字开头,在pycharm中无法调用这个模块,会报错;

pyc文件提高程序性能(了解即可)

当我们导入模块时,系统会检查是否有这个模块的编译缓存文件,如果没有则创建,有则不做事,因为对模块文件进行了预编译缓存,所以当我们调用时就不需要重新去模块中一行一行执行了,而是直接使用。
为什么会将模块预编译成二进制文件?因为模块时已经经过测试的代码,并且修改较少,所以可以进行预编译,就算偶尔进行了修改,程序也能帮我们进行检测重新编译新的二进制文件。

--结束END--

本文标题: Python基础之函数和模块

本文链接: https://www.lsjlt.com/news/182042.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基础之函数和模块
    函数的基本使用 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数的使用:1.定义函数;2.调用函数。 函数的作用:能提高应用的模...
    99+
    2023-01-31
    函数 模块 基础
  • Python编程基础之函数和模块
    目录二、函数(一)定义函数1、语法格式2、函数类型3、案例演示(二)调用函数1、简要说明2、案例演示(三)函数参数1、参数的多态性2、参数赋值传递三、利用函数实现模块化1、创建多级菜...
    99+
    2024-04-02
  • Python基础知识之函数,类,模块
    目录1、Function 函数1)定义函数2)参数设置3)全局和局部变量2、Class类1)定义class2)class的功能3)继承4)私有属性和功能5)特殊方法3、Module模...
    99+
    2024-04-02
  • Python基础之hashlib模块subprocess模块logging模块
    目录一、hashlib模块基本操作与用法二、subprocess模块简介基本操作与用法三、logging模块简介基本操作与用法一、hashlib模块 什么是哈希模块: hashlib...
    99+
    2024-04-02
  • Python基础学习函数+模块+类
    目录一、函数二、模块三、类和对象类的对象实例对象类的方法类的继承三、总结前言: Python基础知识+结构+数据类型 Python基础学习列表+元组+字典+集合 今天的是Python...
    99+
    2024-04-02
  • Python基础之模块详解
    目录一、模块1、模块的四种形式2、为什么要用模块?二、如何用模块1、import 模块名导入重命名:smt变量指向span模块的名称空间导入多个模块2、from 模块名 import...
    99+
    2024-04-02
  • python基础之模块的导入
    import导入模块 import time #导入的时模块中的所有内容 print(time.ctime()) #调用模块中的函数 # import 到首次导入模块的时候...
    99+
    2024-04-02
  • python基础之函数
    函数: # 什么是函数:一系列python语句的组合,可以在程序中运行一次或者多次 # 一般是完成具体的独立的功能 # 为什么要使用函数 # 代码的复用最大化以及最小化冗余代...
    99+
    2024-04-02
  • Python基础之模块怎么使用
    这篇文章主要介绍“Python基础之模块怎么使用”,在日常操作中,相信很多人在Python基础之模块怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python基础之模块怎么使用”的疑惑有所帮助!接下来...
    99+
    2023-07-06
  • Python基础之模块如何使用
    一、模块模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块。如果这个py文件的文件名为module.py,模块名则是module。1、模块的四种形式在Python中,总共有以下四种形式的模块...
    99+
    2023-05-15
    Python
  • python之基础篇(八)——模块与包
    防伪码:忘情公子著python中的模块  将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块。  模块在物理形式上表现为以.py结尾的代码文件:    一个文件被看作一个独立的模块,...
    99+
    2023-01-31
    模块 基础 python
  • Python基础之内置模块详解
    目录一、os二、shutil三、sys四、random五、hashlib六、configparser七、xml八、json九、time十、datetime一、os import ...
    99+
    2024-04-02
  • Python基础之(七)函数
    建立函数 在Python中,规定了一种定义函数的格式,下面的举例就是一个函数,以这个函数为例来说明定义函数的格式和调用函数的方法。 def add_function(a, b): #冒号必须 c = a + b #缩进必须 ...
    99+
    2023-01-31
    函数 基础 Python
  • Python基础——5模块
    使用模块 ‘the first line is zhushi’ _author_ = ‘syz’ import sys def test(): args = sys.argv if len(args)==1: ...
    99+
    2023-01-30
    模块 基础 Python
  • Python基础学习之模块的安装和卸载
    目录一、命令提示符窗口安装卸载1、安装2、查看安装3、卸载二、在pycharm里通过pip安装卸载1、安装2、卸载三、pycharm设置里安装卸载1、 安装2、卸载一、命令提示符窗口...
    99+
    2024-04-02
  • Python基础之模块的示例分析
    这篇文章给大家分享的是有关Python基础之模块的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是模块容器 -> 数据的封装函数 -> 语句的封装类 -> 方法和属性的封装模块 ...
    99+
    2023-06-15
  • python基础之引用和匿名函数
    a=1 #1 为对象, def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'...
    99+
    2024-04-02
  • python基础之内置函数
    https://docs.python.org/3/library/function.html #python官方网址 # 取绝对值 print(a...
    99+
    2024-04-02
  • python基础-1:python模块概
       小生博客:http://xsboke.blog.51cto.com                                -------谢谢您的参考,如有疑问,欢迎交流一、 模块简介  1. 概念n个.py文件组成的代码集合就...
    99+
    2023-01-31
    模块 基础 python
  • python基础之递归函数
    # 递归满足的条件 # 1.自己调用自己 # 2.必须有一个明确的结束条件 # 优点:逻辑简单\定义简单 # 缺点:防止内存消耗过多,容易导致栈溢出,内存资源紧张,甚至内存泄漏...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作