文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中函数如何创建与调用

2023-06-29 17:53

关注

这篇文章主要介绍了Python中函数如何创建与调用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创建函数

函数用 def 语句创建,语法如下:

def 函数名(参数列表):  # 具体情况具体对待,参数可有可无"""函数说明文档字符串"""    函数封装的代码    ……

行由 def 关键字,函数的名字,以及参数的集合(如果有的话)组成

def 子句的剩余部分包括了一个虽然可选但是强烈推荐的文档字串,和必需的函数体

函数名称 的命名应该 符合 标识符的命名规则

def washing_machine():  # 洗衣机可以帮我们完成    print("打水")    print("洗衣服")    print("甩干")

调用函数

使用一对圆括号 () 调用函数,如果没有圆括号,只是对函数的引用

任何输入的参数都必须放置在括号中

图例:

Python中函数如何创建与调用

案例:加洗衣粉

def washing_machine():  # 洗衣机可以帮我们完成    print("打水")    print("加洗衣粉!!!")    print("洗衣服")    print("甩干")# 早上洗衣服washing_machine()# 中午洗衣服washing_machine()# 晚上洗衣服washing_machine()

Python中函数如何创建与调用

总结

思考

函数的参数

形参和实参 

问题

当我们想洗其他的东西,要手动改方法内部的代码:

def washing_machine():  # 洗衣机可以帮我们完成    print("打水")    print("加洗衣粉!!!")    print("洗床单")  # 洗被套    print("甩干")

在函数内部有一定的变化的值:

def washing_machine():  # 洗衣机可以帮我们完成    print("打水")    print("加洗衣粉!!!")    print("洗衣服")    print("甩干")washing_machine()def washing_machine():  # 洗衣机可以帮我们完成    print("打水")    print("加洗衣粉!!!")    print("洗床单")    print("甩干")washing_machine()......

思考一下存在什么问题

函数只能处理固定的数据

如何解决?

如果能够把需要处理的数据,在调用函数时,传递到函数内部就好了!

传递参数

def washing_machine(something):  # 洗衣机可以帮我们完成    print("打水")    print("加洗衣粉!!!")    print("洗" + something)    print("甩干")# 洗衣服washing_machine("衣服")# 洗床单washing_machine("床单")

图例

Python中函数如何创建与调用

def washing_machine(xidiji,something):  # 洗衣机可以帮我们完成    print("打水")    print("加" + xidiji)    print("洗衣服" + something)    print("甩干")#早上洗衣服#按照参数位置顺序传递参数的方式叫做位置传参#使用洗衣机,执行洗衣机内部的逻辑washing_machine("洗衣液","衣服")#something = 衣服#中午洗被罩washing_machine("洗衣粉","被罩")# something = 被罩#晚上洗床单washing_machine("五粮液","床单")# something = 床单

作用

在函数 内部,把参数当做 变量 使用,进行需要的数据处理

函数调用时,按照函数定义的参数顺序,把 希望在函数内部处理的数据,通过参数 传递

位置参数

与 shell 脚本类似,程序名以及参数都以位置参数的方式传递给 python 程序,使用 sys 模块的 argv 列表接收

图例

Python中函数如何创建与调用

默认参数

默认参数就是声明了 默认值 的参数,因为给参数赋予了默认值,所以在函数调用时,不向该参数传入值也是允许的

函数的返回值

案例:计算任意两个数字的和

# 函数的返回值: return, 用于对后续逻辑的处理# 理解: 把结果揣兜里,后续想干啥干啥,想打印打印,想求和就求和# 注意:# a. 函数中如果没有return,那么解释器会自动加一个return None# b. return表示函数的终止,return后的代码都不会执行# 1 定义一个函数,计算两个数的和# 2 计算这两个数的和是不是偶数def get_sum(x, y=100):  # 默认参数    he = x + y  # sum = 10 + 20    return he   # return 30    print("return表示函数的终止,return后的代码都不会执行")# 将函数return后的结果赋值给变量dc: dc = sum  ->  dc = 30dc = get_sum(10, 20)  # x = 10, y = 20print("dc:", dc)  # 30dc1 = get_sum(10)  # x = 10, y = 100print("dc1:", dc1)  # 110# if dc % 2 == 0:#     print("偶数")# else:#     print("奇数")
#默认参数#注意:具有默认值的参数后面不能跟没有默认值的参数def get_sum(a=20,b=5,c=10):    he = a + b+ c    return he dc = get_sum(1,2,3) #a=1 b=2 c=3print("dc:",dc) # 6dc1 = get_sum(1,2)  # a=1 b=2 c=10print("dc1:",dc1) # 13dc2 = get_sum(1)  # a=1 b=5 c=10print("dc2:",dc2) # 16dc3 = get_sum()print("dc3:",dc3) # 35

Python中函数如何创建与调用

 修改菲波那切数列

def new_fib(n=8):    list01 = [0,1]  #定义列表,指定初始值    for dc in range(n-2):        list01.append(list01[-1]+list01[-2])    return list01 dc = new_fib()   #不加参数默认是8dc1 = new_fib(10)print("dc:",dc)print("dc1:",dc1)

Python中函数如何创建与调用

生成随机密码:

#练习:生成随机密码#创建 randpass.py 脚本,要求如下:#编写一个能生成8位随机密码的程序#使用 random 的 choice 函数随机取出字符#由用户决定密码长度import randomdef new_password():    n = int(input("密码长度:"))    password = ""    all = "0123456789zxcvbnmlkjhgfdsaqwertyuiopPOIUYTREWQASDFGHJKLMNBVCXZ" # 0-9 a-z A-Z    random.choice(all)    for i in range(n):        dc = random.choice(all)        password += dc    # print("passwd:",password)    return password# 调用函数,才能执行函数内部逻辑dc = new_password()print("dc:",dc)

Python中函数如何创建与调用

#练习:生成随机密码#创建 randpass.py 脚本,要求如下:#编写一个能生成8位随机密码的程序#使用 random 的 choice 函数随机取出字符#由用户决定密码长度import random,stringdef new_password():    n = int(input("密码长度:"))    password = ""    all = string.ascii_letters + string.digits    random.choice(all)    for i in range(n):        dc = random.choice(all)        password += dc    # print("passwd:",password)    return password# 调用函数,才能执行函数内部逻辑dc = new_password()print("dc:",dc)

Python中函数如何创建与调用

模块基础

定义模块

基本概念

导入模块 (import)

为什么需要导入模块?

可以提升开发效率,简化代码

Python中函数如何创建与调用

正确使用

# test.py,将 file_copy.py 放在同级目录下# 需求:要将/etc/passwd复制到/tmp/passwdsrc_path = "/etc/passwd"dst_path = "/tmp/passwd"# 如何复制?# 调用已有模块中的方法#    - 很推荐,简单粗暴不动脑#    - 直接使用 file_copy.py的方法即可 # 导入方法一:直接导入模块import file_copy  # 要注意路径问题file_copy.copy(src_path, dst_path) # 导入方法二:只导入 file_copy 模块的 copy 方法from file_copy import copy  # 如果相同时导入多个模块 from file_copy import *copy(src_path, dst_path) # 导入方法四:导入模块起别名 asimport file_copy as fcfc.copy(src_path, dst_path)

常用的导入模块的方法

模块加载 (load)

模块特性及案例

模块特性

模块在被导入时,会先完整的执行一次模块中的 所有程序

案例

# foo.pyprint(__name__) # bar.pyimport foo  # 导入foo.py,会将 foo.py 中的代码完成的执行一次,所以会执行 foo 中的 print(__name__)

结果:

# foo.py   ->   __main__   当模块文件直接执行时,__name__的值为‘__main__’
# bar.py   ->   foo        当模块被另一个文件导入时,__name__的值就是该模块的名字

Python中函数如何创建与调用

所以我们以后在 Python 模块中执行代码的标准格式:

def test():    ......if __name__ == "__main__":    test()

感谢你能够认真阅读完这篇文章,希望小编分享的“Python中函数如何创建与调用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯