Day4 - 函数、方法
Day4 - 函数、方法
函数作用提高代码复用性,简化代码
一、定义函数和调用
def hello():print('Hello')
hello()
二、函数传参 - 必填参数
传递参数name、country,及需要传参的函数调用
def welcome(name,country):print("welcome %s ,you are from %s" % (name,country))return name,country
welcome("xiaohei","日本")
[result~]:
welcome xiaohei ,you are from 日本
三、函数所传递参数带有默认值 - 默认值参数
def welcome(name,country="北京"):print("welcome %s ,you are from %s" % (name,country))
welcome("大美")
[result~]:
welcome 大美 ,you are from 北京
四、可选参数(参数值),不限制参数个数
接受到的结果会生成一个元组
def send_sms(*args):print(args)print("不传参数:%s" % send_sms())
print("传一个参数:%s" % send_sms(123))
print("传多个参数:%s" % send_sms(123,456))
[result~]:
()
不传参数:None
(123,)
传一个参数:None
(123, 456)
传多个参数:None
五、关键字参数,不限制参数个数
接受到的结果会生成一个元组
def send_sms(**kwargs):print(kwargs)send_sms(a=1,b=2,c="nnnn")
[result~]:
{'a': 1, 'b': 2, 'c': 'nnnn'}
六、调用函数时函数传参"*“和”**"区别:
a、调用函数时写两个**会将字典自动解开,转换为xx=xx,xx=xx格式,此例中会将函数传参改为add(a=13,b=2)格式,注意:形参名必须和字典中的key一样
b、调用函数时写一个*会将list解开,list中的元素必须和需要穿的参数个数一致
def add(a,b):return a+b
d = {"a":13,"b":2}
result = add(**d) #调用函数时写两个**会将字典自动解开,转换为xx=xx,xx=xx格式,此例中会将函数传参改为add(a=13,b=2)格式,注意:形参名必须和字典中的key一样
print(result)d = [1,2]
print(add(*d)) #调用函数时写一个*会将list解开,list中的元素必须和需要穿的参数个数一致
[result~]:
15
3
七、带有返回值的函数
a、函数里面定义的变量均为局部变量,只在函数内部生效
b、函数返回结果:
1)需要在函数中添加return结果
2)调用时要将函数return的结果保存在一个变量当中
3)函数中如果执行到return,则该函数会立刻停止
1.验证没有return时,返回结果为none
def welcome(name,country):print("welcome %s ,you are from %s" % (name,country))
print(welcome("小黑","日本"))
[result~]:
welcome 小黑 ,you are from 日本
None
2.验证只有return,返回结果也是none
def test():return
#content = test()
print(test())
[result~]:
None
3.验证return + 两个参数,返回值是一个元组
def welcome(name,country):return name,country
print(welcome("小黑","日本"))
[result~]:
('小黑', '日本')
4.小练习:变更文件内容的函数:
def op_file(filename,content=None):with open(filename,'a+',encoding="utf-8") as f:f.seek(0)if content:f.write(content)else:result = f.read()return resultword = op_file("student2.json")
print(word)
[result~]:
{"code": 0,"msg": "操作成功","token": "xxxxx","addr": "10.101.1.1","phone": "182026"
}
5.小练习:判断是否为小数
使用的字符串方法:
s.count(’.’) 判断字符串中’.‘的个数
s.split(’.’) 将字符串s以’.‘进行分割
s.isdigit() 判断s是否是一个数字
s.startwith(’-’) 判断字符串s是否以‘-’开头
s.strip() 去除s字符串的左右空格符
def is_float(s):s = str(s)if s.count('.') == 1:left,right = s.split('.')if left.isdigit() and right.isdigit():return Trueelif left.startswith('-') and left.count('-')==1 and left[1:].isdigit() and right.isdigit():return Trueelse:return Falseelse:print(s.count('.'))return False
price = input("请输入价格:".strip())
#result = is_float(price)
if is_float(price):print("这是个小数")
else:print("这不是个小数")
6.小练习:查看函数具体调用哪个参数
#查看函数具体调用哪个参数
money1 = 500
money2 = 400
def test(consume):print("test 运行结果是:%s - %s" % (money1, consume))return money1 - consumedef test1(money2):print("test1 运行结果是:%s + %s" % (test(money2),money2))return test(money2) + money2money = test1(money2)print(money)
[result~]:
test 运行结果是:500 - 400
test1 运行结果是:100 + 400
test 运行结果是:500 - 400
500
八、在函数中定义全局变量
如下标明全局变量和局部变量,
局部变量:
1)局部变量只对该函数起作用
2)如果需要将函数中的变量改为全局变量,需添加global a
3)未运行的函数不生效,故例2中在test函数中设置的全局变量a不生效
例1:
b = 100 #全局变量
def test():# 在函数中设置全局变量,需要在变量前加global# global aa = 1 #局部变量print(a)test()
print(b)
例2:
def test():global aa = 5
def test1():c = a + 5return c
res = test1()
print(res)
九、递归函数
递归就是自己调用自己,并运行996次
#验证递归函数执行次数
count = 0
def test():global countcount += 1print("五一快乐",count)test()
test()
递归就是一个循环,验证输入的数字是否为2的整数倍:
def test():number = input("请输入一个数字:").strip()number = int(number)if number %2 ==0:print("输入正确")returntest()
test()
Day4 - 函数、方法相关推荐
- js中函数,方法,事件对比区分,什么是方法,什么是函数
微信小程序开发交流qq群 581478349 承接微信小程序开发.扫码加微信. 正文: 简单的理解:函数是运行在本地的,方法是公用的. 事件是开关,通过某某事件触发某个函数 通常命名规范 ...
- C语言题解:用二分法思想求解10个元素中某个元素的下标(包含函数方法)
算法思想:用左下标和右下标之和除二得出中间下标值,再通过与所求元素比较,缩小范围,最后实现左下右下标相等,即找出所求下标.代码实现如下: #include <stdio.h> int ma ...
- Python列表函数方法
Python列表函数&方法 Python包含以下函数: 序号 函数 1 cmp(list1, list2) 比较两个列表的元素 2 len(list) 列表元素个数 3 max(list) 返 ...
- 全面讲解Python列表数组(三)列表数组类型的内置函数方法
列表数组类型的内置函数方法 这里有一个列表 list1[1,2,3,4,1,5,6,7,8,9] 一, count() list1.count(1) 2 作用是计算列表一个元素出现的次数; 二. in ...
- thinkphp模版调用函数方法
原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...
- mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]
mysql存储过程基本函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substrin ...
- [JavaWeb-JavaScript]JavaScript_Function函数(方法)对象
Function:函数(方法)对象 1. 创建:1. var fun = new Function(形式参数列表,方法体); //忘掉吧2. function 方法名称(形式参数列表){方法体}3. ...
- js Date 函数方法
转载自 js Date 函数方法 var myDate = new Date();myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取 ...
- Python import导入模块与函数方法 Python语言基础【1】
1 Python的语言基础 导入模块 在Python代码中导入模块需要使用 import语句语法结果如下 import module_name 使用模块中函数的语法如下 module_name.fun ...
最新文章
- 【Android 内存优化】自定义组件长图组件 ( 自定义组件构造方法 )
- 图形处理(十)测地极坐标参数化
- CSS常用样式及示例
- SSM项目开发实战踩坑
- POJ 1276 ATM凑钱(动态规划)(未解答)
- macOS Unlocker3.0
- 【python】类的封装、多态
- CodeWarrior使用教程第一部分: 认识 CodeWarrior
- 用python祝男朋友生日快乐_祝男朋友生日快乐的说说50句
- 兜兜转转。最终还是选择了它——C语言学习历程
- Ghelper安装及使用
- 如何解决:使用Xbrowser软件连接服务器显示灰屏
- 面对骚扰短信,不是回TD退订,而是要回0000!(附正确拦截骚扰短信教程)
- 大一护理专业计算机挂科,大一就迎来这些难度大的学科,往年“挂科率”高,大一学生需重视...
- 10 个 jQuery 的360 度图片展示插件
- 最新朋友圈转发截图生成装逼工具源码+实测可用
- html游戏手柄,纯CSS3实现的游戏控制手柄
- UI设计师必备10大工具
- 职业照--蓝底照片转换为白底
- 免费音视频格式转换软件
热门文章
- 机器学习之回归的数学原理
- 小弟跪求好点的C和C++编程软件有意的留个网址谢谢
- squid源码分析4—coss存储机制分析
- 避免在派生类中重新定义基类的非虚函数
- RISCV-ISA软件开发记录
- 向Vue的prototype上绑定或.use()时Cannot read properties of undefined (reading ‘prototype‘)
- 用linux系统能干什么,ubuntu是什么_ubuntu系统能干什么
- 如何在保证画面完整的基础上,快速缩小整段视频画面
- 小薛读论文01: Integrated Order Allocation and Order RoutingProblem for e-Order Fulfillment
- 爬坑 Android Studio 利用Android WIFI ADB 插件实现真机无线调试