一、返回值

#使用return语句输出返回值,语法为return(value),可以返回一个值,也可以返回多个值
#例:某商场打折促销活动,金额500~1000打九折,1000~2000打八折,2000~3000打七折,高于3000打六折
def f1(money):'''功能:计算商品金额并计算折扣结果money:保存商品金额列表返回值:商品的合计金额和折扣后的金额'''moneyold = sum(money)#计算合计金额moneynew = moneyold  if 500 <= moneyold < 1000:  #享受9折优惠moneynew = '{:.2f}'.format(moneyold*0.9)elif 1000 <= moneyold < 2000:  #享受8折优惠moneynew = '{:.2f}'.format(moneyold*0.8)elif 2000 <= moneyold < 3000:  #享受7折优惠moneynew = '{:.2f}'.format(moneyold*0.7)elif moneyold >= 3000:  #享受6折优惠moneynew = '{:.2f}'.format(moneyold*0.6)return moneyold,moneynew   #返回总金额和折扣后的金额
#调用函数
print("\n开始结算====\n")
listmoney = []
while True :inmoney = float(input("请输入商品金额(输入0表示输入完毕):"))if int(inmoney) == 0:break   #退出循环else :listmoney.append(inmoney)money = f1(listmoney)#调用函数
print("合计金额:",money[0],"应付金额:",money[1])
开始结算====请输入商品金额(输入0表示输入完毕):465
请输入商品金额(输入0表示输入完毕):789
请输入商品金额(输入0表示输入完毕):1598
请输入商品金额(输入0表示输入完毕):2689
请输入商品金额(输入0表示输入完毕):4367
请输入商品金额(输入0表示输入完毕):0
合计金额: 9908.0 应付金额: 5944.80

二、变量的作用域

#指代码能够访问的区域,超出范围,将不能访问,根据作用范围,分为局部变量和全局变量,函数体内的一般为局部变量,也可以定义成全局变量
def f2():a1 = "人生得意须尽欢,莫使金樽空对月!"  #定义局部变量a1print("局部变量a1=",a1) #输出局部变量的值           #函数体内可以正常输出结果
f2() #调用函数
print("局部变量a1=",a1)  #函数体外输出局部变量的值     #输出结果报错,a1没有定义#
局部变量a1= 人生得意须尽欢,莫使金樽空对月!---------------------------------------------------------------------------NameError                                 Traceback (most recent call last)<ipython-input-5-c7bf3660092f> in <module>()4     print("局部变量a1=",a1) #输出局部变量的值5 f2() #调用函数
----> 6 print("局部变量a1=",a1)  #函数体外输出局部变量的值NameError: name 'a1' is not defined
# 全局变量,既能在函数体内作用,也能在函数体外作用
a2 = "烟笼寒水月笼沙,夜泊秦淮近酒家!"   #函数体外,全局变量
def f3():a2 = "人生得意须尽欢,莫使金樽空对月!"  #定义局部变量a2print("局部变量a2=",a2) #输出局部变量的值           #函数体内可以正常输出结果
f3() #调用函数
print("全局变量a2=",a2)  #函数体外输出全局变量的值     #输出结果a2
局部变量a2= 人生得意须尽欢,莫使金樽空对月!
全局变量a2= 烟笼寒水月笼沙,夜泊秦淮近酒家!
#在函数体内定义全部变量,global定义全局变量
a3 = "烟笼寒水月笼沙,夜泊秦淮近酒家!"   #函数体外,全局变量
def f4():global a3   #定义全局变量a3 = "人生得意须尽欢,莫使金樽空对月!"  #赋值全局变量a3print("全局变量a3=",a3) #输出全局变量的值
f4() #调用函数
print("全局变量a3=",a3)  #函数体外输出全局变量的值
全局变量a3= 人生得意须尽欢,莫使金樽空对月!
全局变量a3= 人生得意须尽欢,莫使金樽空对月!
#例 一棵松树做梦变成圣诞树,梦醒后,身上披满雪花,仍是一颗松树
pinetree = "我是一颗高傲的松树!"  #定义全局变量
def f5():pinetree = "挂上彩灯,穿上红白棉袄,戴上圣诞帽,我变成圣诞树啦!@^^@"   #定义局部变量print(pinetree)  #打印局部变量
#函数体外
print("\n下雪啦…………\n")
print("="*15,"开始做梦!","="*15)
f5()  #调用函数
print("="*15,"梦醒了!","="*15)
pinetree = "我身上披满雪花" + pinetree +"-_-"   #为全局变量赋值
print(pinetree)#输出
下雪啦…………=============== 开始做梦! ===============
挂上彩灯,穿上红白棉袄,戴上圣诞帽,我变成圣诞树啦!@^^@
=============== 梦醒了! ===============
我身上披满雪花我是一颗高傲的松树!-_-

三、匿名函数

# 匿名函数相当于电影中的群众演员,往往只用一次,不需命名
#例,计算圆的面积函数
import math
def f6(r):return math.pi*r*r   #圆的面积公式
r = 100
print("半径为",r ,"的圆的面积为:",f6(r))
半径为 100 的圆的面积为: 31415.926535897932
#也可以不用定义新函数来计算,用lambda计算,语法为 s = lambda[arg1,[,arg2,...argn]]:expression
r1 = 100
s = lambda r1:math.pi*r1*r1   #用lambda 关键词表示
print(s(r1))
31415.926535897932
#例 图书打折活动,按金额和折扣排序
book = [("平凡的世界",22.5,120),("零基础学Python",55,95),("不生病的智慧",22.5,36),("经济学原理",50,128)]  #商品列表
print("商品信息\n",book,"\n")
book.sort(key = lambda x : (x[1],x[1]/x[2]))    #排序规则
print("排序后的商品信息\n",book,"\n")
商品信息[('平凡的世界', 22.5, 120), ('零基础学Python', 55, 95), ('不生病的智慧', 22.5, 36), ('经济学原理', 50, 128)] 排序后的商品信息[('平凡的世界', 22.5, 120), ('不生病的智慧', 22.5, 36), ('经济学原理', 50, 128), ('零基础学Python', 55, 95)]
#例 用函数法计算半径分别为 5,6,7,8,9,10的圆的周长
import math
def f7(r):return math.pi*2*r   #圆的周长公式
list7 = [5,6,7,8,9,10]
for r in list7 :print("半径为",r ,"的圆的周长为:",f7(r))
半径为 5 的圆的周长为: 31.41592653589793
半径为 6 的圆的周长为: 37.69911184307752
半径为 7 的圆的周长为: 43.982297150257104
半径为 8 的圆的周长为: 50.26548245743669
半径为 9 的圆的周长为: 56.548667764616276
半径为 10 的圆的周长为: 62.83185307179586

Python 函数(三)相关推荐

  1. 第六课.Python函数(三)

    函数的嵌套与闭包 函数的嵌套是指在函数内再定义一个函数,举个例子: def outter():name='jack'#被下层函数使用age=20#被下层函数使用address='YN'#被下层函数做返 ...

  2. python 函数中参数的传递方式(三分钟读懂)

    python 函数中参数的传递方式 第一种:指定默认值 def fn1(a = 1): # 函数中的(a)是形参 和外面的变量无关 (这里的是定义函数中指定默认值)print("fn1&qu ...

  3. No.002 关于Python函数返回值的三种情况

    关于Python函数返回值的三种情况,无返回值.有1个返回值,以及有多个返回值 # 本批次所有文章都是跟着马士兵的杨淑娟老师的视频教学所得,视频地址在下面: # https://www.bilibil ...

  4. python学习027-----python之函数(三):函数返回值、局部变量与全局变量

    1.函数的返回值 1) 过程(procedure)是简单.特殊并且无返回值的: 2) 函数(Function)是有返回值的. python严格来说,只有函数,没有过程.当没有写返回值时,python函 ...

  5. Pass算子python 函数

    Pass算子python 函数 函数 • 函数是代码的一种组织形式 • 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 • 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数 ...

  6. python函数第二次运行报错_Python学习笔记2-函数、高级特性

    函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...

  7. python函数参数*arg和**kwargs分别代表什么?

    python函数参数*arg和**kwargs分别代表什么? 注意: 注意:参数arg.*args.**kwargs三个参数的位置必须是一定的.必须是(arg,*args,**kwargs)这个顺序, ...

  8. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

  9. python函数装饰函数_Python精进-装饰器与函数对象

    本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...

  10. python函数只有被调用才会执行_Python函数调用

    转载自链接: http://www.cnblogs.com/feixuelove1009/p/5541632.html 1.python函数基础 函数名: fun 函数体:1~3行 返回值:2 调用函 ...

最新文章

  1. 一个简单的Spring的AOP例子(JAVA面向切面编程)
  2. AI时代的神马搜索!神马智能对话技术深度解读
  3. matlabrvctools主要功能及实际应用_【从业必备 | 收藏】ISO26262功能安全标准白皮书:关键组成、软硬件认证、测试过程、合规认证工具...
  4. Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
  5. sharepoint 到底是什么
  6. ubuntu中 不同JDK版本之间的切换
  7. 编码技术新突破:字节跳动AVG让视频缩小13%
  8. oracle子接点与父节点上下级关系数据库查询语句,及联查询,
  9. Github Projects 项目管理 怎么用
  10. paip.python错误解决10
  11. DEDECMS短信宝短信插件
  12. Mac数据库可视化工具,workbench完全替代Navicat和PowerDesigner,Oracle官方免费可视化工具workbench!!
  13. 凯恩帝1000对刀图解_KND数控车床对刀方法
  14. matlab海龟交易策略,海龟交易策略
  15. IDAPython 让你的生活更滋润 part1 and part2
  16. h5获取视频的第一帧
  17. 2022年电工(技师)考试题及电工(技师)模拟试题
  18. shapely库的基础学习
  19. 【懒懒的Python学习笔记六】
  20. 洛谷P2678 Java解法

热门文章

  1. Html学习总结(2)——Html页面head标签元素的意义和应用场景
  2. 自定义UINavigationBar的背景【转】
  3. 约束布局(ConstraintLayout)1.1.2 版本的新特性
  4. 特斯拉亚洲最大超级充电站正式运营,可同时提供20辆车的快充服务
  5. Tomcat可以实现Session共享方案
  6. 我用系统的思想来编程
  7. 移动应用的一般测试流程和需要注意的测试项
  8. CentOS7.2 network.service NetworkManager.service 冲突
  9. Servlet Request
  10. Thinking in ReactJS and Flux