iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python函及模块的使用
  • 616
分享到

Python函及模块的使用

2024-04-02 19:04:59 616人浏览 独家记忆

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

摘要

目录1、函数的作用2、定义函数3、函数的参数3.1 参数的默认值3.2 可变参数4、用模块管理函数4.1 示例代码module.py5、变量的作用域1、函数的作用 编程大师Mart

1、函数的作用

编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种! ”。

可以将重复的功能封装到一个称之为“函数”的功能模块中,用来实现单一,或相关联功能的代码段。

2、定义函数

定义函数的规则如下所示:

  • 函数代码块以 def 关键词开头,后接函数名和圆括号 () 。
  • 函数名命名规则跟变量的命名规则是一致
  • return关键字用于退出函数,选择性地向调用方返回一个表达式。

语法如下所示:


def 函数名(参数列表):
    函数体
    return语句


# 定义一个函数 往里面穿两个参数
def sum(arg1, arg2):
    # 返回2个参数的和."
    total = arg1 + arg2
    return total


# 调用sum函数
sumNum = sum(10, 20)
print(sumNum) // 30

3、函数的参数

除了定义函数和调用函数等基本操作之外,在函数中还可以使用参数。函数的参数简单的来说就是可以函数的函数体中使用的变量。与变量不同的是,这样的变量的是在函数体之前传递进去的。

3.1 参数的默认值

调用函数时,如果没有传递参数,则会使用默认参数。


def printInfo(name, age=12):
    "打印任何传入的字符串"
    print("名字: ", name)
    print("年龄: ", age)
    return


# 调用a函数
printInfo(age=10, name="小红")
print("------------------------")
printInfo(name="小明")

3.2 可变参数

所谓可变参数指的是在调用函数时,可以向函数传入0个或任意多个参数。


# 用星号表达式来表示stamp可以接收0个或任意多个参数
def printInfo(*stamp):

    # 可变参数可以放在for循环中取出每个参数的值
    for i in stamp:
        print(i)
    return


printInfo("一碗周")
printInfo(1, 2, 3, 4, 5, 6, 7)
printInfo("hello", "hi")

4、用模块管理函数

在同一个.py文件中如果有两个函数名是重名的,由于python没有函数重载的概念,那么后面的定义会覆盖之前的定义,也就意味着两个函数同名函数实际上只有一个是存在的。这个时候模块的作用就体现出来了。

Python中的每个文件就代表了一个模块(module),在不同的模块中可以有同名的函数,在使用某个函数的时候可以通过import关键字引入指定的模块就可以区分每个函数了。

例:定义两个模块,分别为module1module2,然后测试引入流程

module1


def printinfo():
    print("这是第一个模块的printinfo函数")

module2


def printinfo():
    print("这是第二个模块的printinfo函数")

使用import关键字直接引入:


import module1
import module2
# 通过模块名加.函数名的方式引入
module1.printinfo()
module2.printinfo()

使用import...as关键字重命名引入:


import module1 as m1
import module2 as m2
# 可以通过重命名后的名字加.函数名的方式引入
m1.printinfo()
m2.printinfo()

使用from...import...as关键字重命名引入某个函数:


from module1 import printinfo as p1
from module2 import printinfo as p2
# 可以通过重命名后的名字加.函数名的方式引入
p1()
p2()

  • 值得注意的是:这里如果不使用as进行重命名的话,因为有两个printinfo就会导致错误,所以需要为其重命名

__name__ == '__main__'的用法
__name__Python中一个隐含的变量它代表了模块的名字,如果直接打印__name__,则出现__main__。

4.1 示例代码module.py


def printinfo():
    print("这是函数内的内容")

print(__name__)
print("这是模块函数外的内容")

输出结果:


# __main__
# 这是模块函数外的内容

如果将module.py作为模块引入则打印的结果为模块的名称(不带路径、扩展名)
示例代码

import module

输出结果:

module
这是模块函数外的内容

此时输出的结果就不一样了,简单来说:在module.py自己眼中name就是main,然而在别的文件眼中name就是module

module.py改造一下


def printinfo():
    print("这是函数内的内容")

printinfo()
if __name__=="__main__":
    print(__name__)
    print("这是模块函数外的内容")

输出结果:

这是函数内的内容
__main__
这是模块函数外的内容

当其他文件引入时

import module

输出结果:

这是函数内的内容

因为其他文件引入时不会执行模块中if条件成立时的代码 因为模块的名字是module而不是__main__

__name__ == '__main__'在实际场景中非常有用,一般在写模块的过程中肯定要进行测试,在导入的时候肯定不能将测试结果也打印出来,如果删除了,想要改进模块的时候又要重新写一遍,这个时候__name__ == '__main__'就派上了用场

5、变量的作用域

请看如下代码:


def test():
    b = "这是函数的变量"

    def test_nested():
        c = "这是嵌套的函数变量"
        print(a)
        print(b)
        print(c)
    test_nested()


if __name__ == "__main__":
    a = "这是全局作用域"
    test()

根据这段代码,来理解变量的作用域

此时在函数test_nested体内调用a,b,c三个函数都不会报出任何错误,

如果在函数体外调用b变量就会报出


print(b)
NameError: name 'b' is not defined

变量b未定义的错误,因为b属于局部变量,属于局部作用域,在函数体外是访问不到的

如果在test函数体内调用c则会报出


print(c)
NameError: name 'c' is not defined

变量c未定义的错误,因为c是在test_nested函数体内,对于test函数来说属于局部作用域,但是对于test函数内部的test_nested函数来说,变量b属于嵌套作用域,在test_nested函数中我们是可以访问到它的。

如果通过global来将b提升为全局变量,则在函数体外调用b变量就会正常打印

nonlocal关键字只能作用于局部变量,且始终找离当前最近的上层局部作用域中的变量


def outer():
    aa = 111

    def inner():
        nonlocal aa
        aa = 222
        print(aa)
    inner()
    print(aa)


outer()

如果没有这个nonlocal关键字则函数体inner打印222,函数体outer打印111,加上之后则直接打印两个222

Python查找一个变量时会按照“局部作用域”-->“嵌套作用域”-->“全局作用域”-->“内置作用域”的顺序进行搜索,所谓的“内置作用域”就是Python内置的那些标识符,之前用过的inputprintint等都属于内置作用域。

到此这篇关于Python函及模块的使用的文章就介绍到这了,更多相关Python函及模块使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python函及模块的使用

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

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

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

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

下载Word文档
猜你喜欢
  • Python函及模块的使用
    目录1、函数的作用2、定义函数3、函数的参数3.1 参数的默认值3.2 可变参数4、用模块管理函数4.1 示例代码module.py5、变量的作用域1、函数的作用 编程大师Mart...
    99+
    2024-04-02
  • Python的functools模块使用及说明
    目录partialupdate_wrapperwrapsreducecmp_to_keylru_cachesingledispatchpartial 用于创建一个偏函数,将...
    99+
    2024-04-02
  • Python函数和模块的使用详情
    目录一、定义函数二、函数的参数三、用模块管理函数四、变量的作用域 一、定义函数 在Python中可以使用def关键字来定义函数,命名规则跟变量的命名规则是一致的。在函数名后...
    99+
    2024-04-02
  • 使用Python模块:struct模块
    Python没有提供直接的将用户定义的数据类型和文件IO关联起来的功能,但是它提供了struct库(是一个内置库)——我们可以以二进制模式来写这些数据(有趣的是,它真的是设计来讲文本数据写为缓存的) 1)bytes、str...
    99+
    2023-01-31
    模块 Python struct
  • Python函数和模块怎么使用
    本篇内容介绍了“Python函数和模块怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、函数和模块概述(一)函数概述函数可以看成是语...
    99+
    2023-06-22
  • Python函数和模块如何使用
    这篇“Python函数和模块如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python函数和模块如何使用”文章吧。一...
    99+
    2023-06-30
  • 怎么使用Python函数和模块
    本篇内容介绍了“怎么使用Python函数和模块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在讲解本章节的内容之前,我们先来研究一道数学题,...
    99+
    2023-06-01
  • Python中模块的使用--binascii模块用法
    目录binascii模块用法binascii模块和进制转换笔记 Python内置函数binascii模块用法 binascii模块用于在二进制和ASCII之间转换 >...
    99+
    2024-04-02
  • python开发常用的python模块及
    更详细工具包参见 转载自:www.cnblogs.com/hongten/p/hongten_python_more_modules.html adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接...
    99+
    2023-01-31
    模块 常用 python
  • Python模块pexpect安装及使用流程
    目录一、pexpect模块介绍二、Pexpect的安装三、pexpect的核心组件3.1spawn类3.1.1简介3.1.2使用流程3.1.4基本属性和方法3.1.5其他发送信息的方...
    99+
    2024-04-02
  • python ffmpeg模块怎么安装及使用
    要安装和使用Python的ffmpeg模块,您可以按照以下步骤进行操作:1. 首先,确保您已经安装了ffmpeg程序。您可以从ffm...
    99+
    2023-10-20
    python ffmpeg
  • Python中如何使用模块级函数
    本篇文章为大家展示了Python中如何使用模块级函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。你不一定要产生一个 `RegexObject` 对象然後再调用它的方法;re 模块也提供了***函数...
    99+
    2023-06-17
  • Python socket 模块的使用
    一、使用socket实现一对一的简单通信  socket就是一个开往网络应用必备的功能模块。通过这个模块我们可以自己写程序的server端和client端,可以自己定义server端对外提供服务器的ip地址和端口。学会使用这个模块的之后我们...
    99+
    2023-01-31
    模块 Python socket
  • python Crypto模块的使用
    前一个星期一直再弄爬取网易云音乐的评论,真是一波三折,网页又是动态js,普通的方法获取不了,还有它发送的参数也要经过加密才....这篇文章就是写一下Crypto模块的使用。 Crypto不是自带的模块,需要下载。http://www.vo...
    99+
    2023-01-31
    模块 python Crypto
  • python time模块的使用
    我们先导入必须用到的一个module>>> import time设置一个时间的格式,下面会用到>>>ISOTIMEFORMAT=’%Y-%m-%d %X’看一下当前的时间,和其他很多语言相似这是从epo...
    99+
    2023-01-31
    模块 python time
  • python中argparse模块基础及使用步骤
    目录argparse模块用法一、 概念二、 基础1、 使用步骤1.1 总步骤1.2 创建对象1.3 添加参数1.4 解析参数三、 使用案例argparse模块用法 一、 概念 arg...
    99+
    2024-04-02
  • python函数存储在模块的优点及用法总结
    1、通过将函数存储在独立的文件中,可隐藏程序代码的细节,将重点放在程序的高层逻辑上。 2、能让你在众多不同的程序中重用函数。 将函数存储在独立文件中后,可与其他程序员共享这些文件而不...
    99+
    2024-04-02
  • python os模块和fnmatch模块的使用介绍
    目录一、先介绍一下os模块1、拆分路径的方法介绍2、构建文件路径的方法介绍3、获取文件属性的方法介绍4、判断文件的类型5、文件和目录操作6、修改文件属性和判断文件属性7、遍历目录树二...
    99+
    2024-04-02
  • python高阶函数functools模块如何使用
    本篇内容主要讲解“python高阶函数functools模块如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python高阶函数functools模块如何使用”吧!functools模块提...
    99+
    2023-07-05
  • Python中的模块heapq以及使用方法详解
    python中的 heapq 模块 1、heapq 的两个函数:nlargest() 和 nsmallest() 1.1 nlargest(n, iterable, key=None) 函数 功能:获...
    99+
    2023-09-01
    python 开发语言 队列 heapq
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作