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 - 函数、方法相关推荐

  1. js中函数,方法,事件对比区分,什么是方法,什么是函数

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 简单的理解:函数是运行在本地的,方法是公用的.  事件是开关,通过某某事件触发某个函数 通常命名规范 ...

  2. C语言题解:用二分法思想求解10个元素中某个元素的下标(包含函数方法)

    算法思想:用左下标和右下标之和除二得出中间下标值,再通过与所求元素比较,缩小范围,最后实现左下右下标相等,即找出所求下标.代码实现如下: #include <stdio.h> int ma ...

  3. Python列表函数方法

    Python列表函数&方法 Python包含以下函数: 序号 函数 1 cmp(list1, list2) 比较两个列表的元素 2 len(list) 列表元素个数 3 max(list) 返 ...

  4. 全面讲解Python列表数组(三)列表数组类型的内置函数方法

    列表数组类型的内置函数方法 这里有一个列表 list1[1,2,3,4,1,5,6,7,8,9] 一, count() list1.count(1) 2 作用是计算列表一个元素出现的次数; 二. in ...

  5. thinkphp模版调用函数方法

    原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...

  6. mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]

    mysql存储过程基本函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2  [,... ]) //连接字串 INSTR (string ,substrin ...

  7. [JavaWeb-JavaScript]JavaScript_Function函数(方法)对象

    Function:函数(方法)对象 1. 创建:1. var fun = new Function(形式参数列表,方法体); //忘掉吧2. function 方法名称(形式参数列表){方法体}3. ...

  8. js Date 函数方法

    转载自   js Date 函数方法 var myDate = new Date();myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取 ...

  9. Python import导入模块与函数方法 Python语言基础【1】

    1 Python的语言基础 导入模块 在Python代码中导入模块需要使用 import语句语法结果如下 import module_name 使用模块中函数的语法如下 module_name.fun ...

最新文章

  1. 【Android 内存优化】自定义组件长图组件 ( 自定义组件构造方法 )
  2. 图形处理(十)测地极坐标参数化
  3. CSS常用样式及示例
  4. SSM项目开发实战踩坑
  5. POJ 1276 ATM凑钱(动态规划)(未解答)
  6. macOS Unlocker3.0
  7. 【python】类的封装、多态
  8. CodeWarrior使用教程第一部分: 认识 CodeWarrior
  9. 用python祝男朋友生日快乐_祝男朋友生日快乐的说说50句
  10. 兜兜转转。最终还是选择了它——C语言学习历程
  11. Ghelper安装及使用
  12. 如何解决:使用Xbrowser软件连接服务器显示灰屏
  13. 面对骚扰短信,不是回TD退订,而是要回0000!(附正确拦截骚扰短信教程)
  14. 大一护理专业计算机挂科,大一就迎来这些难度大的学科,往年“挂科率”高,大一学生需重视...
  15. 10 个 jQuery 的360 度图片展示插件
  16. 最新朋友圈转发截图生成装逼工具源码+实测可用
  17. html游戏手柄,纯CSS3实现的游戏控制手柄
  18. UI设计师必备10大工具
  19. 职业照--蓝底照片转换为白底
  20. 免费音视频格式转换软件

热门文章

  1. 机器学习之回归的数学原理
  2. 小弟跪求好点的C和C++编程软件有意的留个网址谢谢
  3. squid源码分析4—coss存储机制分析
  4. 避免在派生类中重新定义基类的非虚函数
  5. RISCV-ISA软件开发记录
  6. 向Vue的prototype上绑定或.use()时Cannot read properties of undefined (reading ‘prototype‘)
  7. 用linux系统能干什么,ubuntu是什么_ubuntu系统能干什么
  8. 如何在保证画面完整的基础上,快速缩小整段视频画面
  9. 小薛读论文01: Integrated Order Allocation and Order RoutingProblem for e-Order Fulfillment
  10. 爬坑 Android Studio 利用Android WIFI ADB 插件实现真机无线调试