Python从0到100(十二):函数的定义及模块

在这里插入图片描述

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学习学习和学业的先行者!
欢迎大家订阅专栏:零基础学Python:Python从0到100最新最全教程!

一、函数定义及调用

1.定义函数

数学上的函数通常形如y = f(x)或者z = g(x, y)这样的形式,在y = f(x)中,f是函数的名字,x是函数的自变量,y是函数的因变量;而在z = g(x, y)中,g是函数名,xy是函数的自变量,z是函数的因变量。Python中的函数跟这个结构是一致的,每个函数都有自己的名字、自变量和因变量。我们通常把Python中函数的自变量称为函数的参数,而因变量称为函数的返回值。

在Python中可以使用def关键字来定义函数,和变量一样每个函数也应该有一个漂亮的名字,命名规则跟变量的命名规则是一致的(赶紧想一想我们之前讲过的变量的命名规则)。

2.什么是函数

函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段,它能够提高应用的模块性和代码的重复利用率。

print(*)
print(***)
print("*****")

如果在一个程序的不同地方需要输出这个图形,每次使用print语言输出的做法显然不可取。

3.函数的调用

Python定义函数使用def关键字,格式如下:

def 函数名(参数列表):
    函数体

这是一个自定义的函数:

def printInfo():
    print('------------------------------------')
    print('         生命苦短,我用Python            ')
    print('------------------------------------')

定义了函数之后,想要让这些代码能够执行,需要调用函数。通过“函数名()” 即可完成调用。

# 调用刚才定义的函数
printInfo()

二、函数的参数

1.默认参数

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

def printinfo( name, age = 35 ):
print(“Name:, name)
print(“Age:, age)
printinfo(name="miki" )
printinfo(age=9,name="miki" )

带有默认值的参数一定要位于参数列表的最后面。否则程序会报错。

2.不定长参数

如果希望定义的函数,可以计算任何两个数和,我们在定义函数的时候,让函数接收数据,这就是函数的参数

def add2num(a, b):
    c = a+b
   print(c)

a和b就是函数的参数,调用的时候,可以传入任何两个数。
有时可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数,声明时不会命名。

def functionname([formal_args,] *args, **kwargs):
       "函数_文档字符串"
    function_suite
       return [expression]
  • 加了星号(*)的变量args会存放所有未命名的变量参数,args为元组;
  • 加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典。

下面代码的运行结果是怎样的呢?

def test(a,b,*args):
     print(a)
     print(b)
     print(args)
test(11,22)
def test(a,b,*args):         
	print(a)         
	print(b)         
	print(args) 
test(11,22,33,44,55,66,77,88,99)

三、函数的返回值

函数的返回值是使用return语句来完成的。

def add2num(a, b):
    c = a+b
    return c

函数add2num中包含return,意味着这个函数有一个返回值,其返回值就是a和b相加的结果。

四、函数的四种类型

根据函数的参数和返回值,函数可以分为四种类型:

  1. 无参数,无返回值的函数
  2. 无参数,有返回值的函数
  3. 有参数,无返回值的函数
  4. 有参数,有返回值的函数

1.无参数,无返回值的函数

def printMenu():
        print('--------------------------')
        print('      xx涮涮锅 点菜系统')
        print('  1.  羊肉涮涮锅')
        print('  2.  牛肉涮涮锅')
        print('  3.  猪肉涮涮锅')
        print('--------------------------')
 printMenu()

2.无参数,有返回值的函数

# 获取温度
def getTemperature():
    #这里是获取温度的一些处理过程
    #为了简单起见,先模拟返回一个数据
    return 24
temperature = getTemperature()
print('当前的温度为:',temperature)

3.有参数,无返回值的函数

 def test(num1,num2):
       result=num1+num2
       print('计算结果为:%d'%result)

4.有参数,有返回值的函数

 def calculateNum(num):
        result = 0
     i = 1
        while i<=num:
            result = result + i
       i+=1
        return result
    result = calculateNum(100)
    print('1~100的累积和为:', result)

五、变量的作用域

1.作用域

  • 为了避免变量的名称发生冲突,所以Python引入了命名空间的概念。
  • 命名空间指的是名称到对象的映射,类似于字典,键名是变量的名字,值是变量的值。

命名空间是相互独立存在的,而且它们被安排在某个特定的层次,把这些层次结构组合起来就是作用域

  • 本地作用域
  • 函数嵌套作用域
  • 文件作用域
  • 内置作用域
    在这里插入图片描述

2.局部变量

  • 所谓局部变量,就是在函数内部定义的变量。
  • 局部变量的作用域是函数内部,意味着它只在定义它的函数中有效,一旦函数结束就会消失。

3.全局变量

  • 定义在函数外的拥有全局作用域
  • 全局变量可以在整个程序范围内访问。
  • 如果出现全局变量和局部变量名字相同的情况,则在函数中访问的是局部变量

六、标准库中的模块和函数

Python标准库中提供了大量的模块和函数来简化我们的开发工作,我们之前用过的random模块就为我们提供了生成随机数和进行随机抽样的函数;而time模块则提供了和时间操作相关的函数;上面求阶乘的函数在Python标准库中的math模块中已经有了,实际开发中并不需要我们自己编写,而math模块中还包括了计算正弦、余弦、指数、对数等一系列的数学函数。随着我们进一步的学习Python编程知识,我们还会用到更多的模块和函数。

Python标准库中还有一类函数是不需要import就能够直接使用的,我们将其称之为内置函数,这些内置函数都是很有用也是最常用的,下面的表格列出了一部分的内置函数。

函数说明
abs返回一个数的绝对值,例如:abs(-1.3)会返回1.3
bin把一个整数转换成以'0b'开头的二进制字符串,例如:bin(123)会返回'0b1111011'
chr将Unicode编码转换成对应的字符,例如:chr(8364)会返回'€'
hex将一个整数转换成以'0x'开头的十六进制字符串,例如:hex(123)会返回'0x7b'
input从输入中读取一行,返回读到的字符串。
len获取字符串、列表等的长度。
max返回多个参数或一个可迭代对象中的最大值,例如:max(12, 95, 37)会返回95
min返回多个参数或一个可迭代对象中的最小值,例如:min(12, 95, 37)会返回12
oct把一个整数转换成以'0o'开头的八进制字符串,例如:oct(123)会返回'0o173'
open打开一个文件并返回文件对象。
ord将字符转换成对应的Unicode编码,例如:ord('€')会返回8364
pow求幂运算,例如:pow(2, 3)会返回8pow(2, 0.5)会返回1.4142135623730951
print打印输出。
range构造一个范围序列,例如:range(100)会产生099的整数序列。
round按照指定的精度对数值进行四舍五入,例如:round(1.23456, 4)会返回1.2346
sum对一个序列中的项从左到右进行求和运算,例如:sum(range(1, 101))会返回5050
type返回对象的类型,例如:type(10)会返回int;而 type('hello')会返回str

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/530414.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型探索之路-应用篇2:Langchain框架ModelIO模块—数据交互的秘密武器

目录 前言 一、概述​​​​​​​ 二、Model 三、Prompt 五、Output Parsers 总结 前言 随着人工智能技术的不断进步&#xff0c;大模型的应用场景越来越广泛。LangChain框架作为一个创新的解决方案&#xff0c;专为处理大型语言模型的输入输出而设计。其中&#xff0c;…

设计模式(22):解释器模式

解释器 是一种不常用的设计模式用于描述如何构成一个简单的语言解释器&#xff0c;主要用于使用面向对象语言开发的解释器和解释器设计当我们需要开发一种新的语言时&#xff0c;可以考虑使用解释器模式尽量不要使用解释器模式&#xff0c;后期维护会有很大麻烦。在项目中&…

【Redis】持久化

文章目录 一、RDB1.1、RDB的自动备份与手动备份1.1.1、自动备份1.1.2、手动备份 1.2、RDB优点1.3、RDB缺点1.4、RDB快照1.5、RDB优化配置项 二、AOF2.1、AOF工作流程2.2、AOF写回策略2.3、MP-AOF实现2.4、AOF优缺点2.5、AOF重写机制 三、RDBAOF混合持久化3.1、数据恢复顺序和加…

阿里云OSS使用流程

准备工作 无论怎么样&#xff0c;你需要准备一个阿里云账号&#xff0c;点击&#xff1a;注册阿里云 输入相关信息&#xff0c;然后注册成功以后&#xff0c;点击 然后注册成功了&#xff0c;实名一下阿里云账号。打开实名入口&#xff0c;选择个人实名或者企业实名。 如果你…

windows wireshark抓包rtmp推流出现TCP Retransmission

解决办法&#xff1a;tcp.port1935 && !(tcp.analysis.retransmission)

签名失败当前系统没有安装苹果根证书

发生背景 第一次我没有iOS证书(.p12)和描述文件(.mobileprovision)。按照这个文档https://ask.dcloud.net.cn/article/152拿到后&#xff0c;安心打包出问题。 错误信息 [Info] begin getCertCName... [Info] begin codesignFramwork to ipa... [Error] DCUniBase.framework…

设计模式系列:单例模式

作者持续关注WPS二次开发专题系列&#xff0c;持续为大家带来更多有价值的WPS开发技术细节&#xff0c;如果能够帮助到您&#xff0c;请帮忙来个一键三连&#xff0c;更多问题请联系我&#xff08;WPS二次开发QQ群:250325397&#xff09;&#xff0c;摸鱼吹牛嗨起来&#xff01…

RabbitMQ如何保证消息的幂等性???

在RabbitMQ中&#xff0c;保证消费者的幂等性主要依赖于业务设计和实现&#xff0c;而非RabbitMQ本身提供的一种直接功能。 在基于Spring Boot整合RabbitMQ的场景下&#xff0c;要保证消费者的幂等性&#xff0c;通常需要结合业务逻辑设计以及额外的技术手段来实现。以下是一个…

嵌入式学习51-单片机4

知识零碎&#xff1a; nop空指令 CRC校验 为了保证51单片与温度传感18b20 之间的高电平 采用一个上拉电阻改变电平的高低 温度寄存器原理

react17+antd4 动态渲染导航菜单中的icon

在路由信息对照表中的icon可以有两种形式&#xff1a;一种是组件形式&#xff0c;一种是字符串形式的。 在antd4的Menu.Item和SubMenu中的icon属性的格式为&#xff1a; 1.组件形式 这种方法在渲染时很方便&#xff0c;与antd中的Menu.Item中的icon属性的形式是一致的&#…

51单片机+TN901非接触式红外测温设计论文与源码PCB等资料

1、摘要 温度测量技术应用十分广泛&#xff0c;而且在现代设备故障检测领域中也是一项非常重要的技术。但在某些应用领域中&#xff0c;要求测量温度用的传感器不能与被测物体相接触&#xff0c;这就需要一种非接触的测温方式来满足上述测温需求。本论文正是应上述实际需求而设…

如何让MacOS「终端」走代理

在 MacOS 操作系统中&#xff0c;默认情况下&#xff0c;终端命令行不会通过代理进行网络连接。这导致在应用软件研发过程中&#xff0c;许多需要通过命令行下载安装的软件或依赖包无法成功安装。经常出现Failed to connect to xxx port 443 after 75329 ms: Couldnt connect t…

【资源分享】MAC上最好用的截图软件-Snipaste

::: block-1 “时问桫椤“是一个关注本科生到研究生教育阶段的不严肃的公众号&#xff0c;希望能在大家迷茫、难受、困难之时帮助到大家。用广大研究生的经验总结&#xff0c;让大家能尽早的适应研究生生活&#xff0c;尽快的看透科研本质。祝好&#xff01;&#xff01;&#…

OLAP在线实时 数据分析平台

随着业务的增长&#xff0c;精细化运营的提出&#xff0c;产品对数据部门提出了更高的要求&#xff0c;包括需要对实时数据进行查询分析&#xff0c;快速调整运营策略&#xff1b;对小部分人群做 AB 实验&#xff0c;验证新功能的有效性&#xff1b;减少数据查询时间&#xff0…

IntelliJ IDEA 2024.1安装与激活[破解]

一&#xff1a;IDEA官方下载 ①如题&#xff0c;先到IDEA官方下载&#xff0c;简简单单 ②IDEA官方&#xff1a;IntelliJ IDEA – the Leading Java and Kotlin IDE 二&#xff1a;获取脚本 &#x1f31f;网盘下载&#xff1a;jetbra (密码&#xff1a;lzh7) &#x1f31f;获取…

macOS制作C/C++ app

C/C制作macOS .app 一、 .app APP其实是一个文件夹结构&#xff0c;只不过mac的界面中让它看起来像一个单独的文件。 在shell终端或者右键查看包结构即可看到APP的目录结构。 通常的app目录结构如下&#xff1a; _CodeSignature, CodeResources 一般为Mac APP Store上架程序…

Redis的RDB文件

Redis持久化 Redis是操作内存的&#xff0c;所以是内存数据库&#xff0c;断电即失&#xff0c;所以需要持久化 RDB 文件名:dump.rdb # The filename where to dump the DB dbfilename dump.rdb在指定时间间隔内&#xff0c;将内存中的数据&#xff0c;集体快照写入磁盘内&…

FineBI概述

FineBI是一款商业智能&#xff08;Business Intelligence&#xff09;工具&#xff0c;它通过最终业务用户自主分析企业已有的信息化数据&#xff0c;帮助企业发现并解决存在的问题&#xff0c;协助企业及时调整策略做出更好的决策&#xff0c;增强企业的可持续竞争性。它以自助…

HDFS读、写数据流程(图解)以及元数据的checkpoint机制

一、HDFS概述 HDFS集群由NameNode,DataNode,SecondaryNameNode构成。 NameNode&#xff1a;接受用户请求。存储元数据&#xff08;描述文件的数据&#xff0c;如文件名、文件大小、目录名、文件创建时间等&#xff09; DataNode&#xff1a;负责管理用户的文件数据块&#xff0…

openGauss学习笔记-259 openGauss性能调优-使用Plan Hint进行调优-指定不使用全局计划缓存的Hint

文章目录 openGauss学习笔记-259 openGauss性能调优-使用Plan Hint进行调优-指定不使用全局计划缓存的Hint259.1 功能描述259.2 语法格式259.3 示例 openGauss学习笔记-259 openGauss性能调优-使用Plan Hint进行调优-指定不使用全局计划缓存的Hint 259.1 功能描述 全局计划缓…