Python 函数(三)
一、返回值
#使用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 函数(三)相关推荐
- 第六课.Python函数(三)
函数的嵌套与闭包 函数的嵌套是指在函数内再定义一个函数,举个例子: def outter():name='jack'#被下层函数使用age=20#被下层函数使用address='YN'#被下层函数做返 ...
- python 函数中参数的传递方式(三分钟读懂)
python 函数中参数的传递方式 第一种:指定默认值 def fn1(a = 1): # 函数中的(a)是形参 和外面的变量无关 (这里的是定义函数中指定默认值)print("fn1&qu ...
- No.002 关于Python函数返回值的三种情况
关于Python函数返回值的三种情况,无返回值.有1个返回值,以及有多个返回值 # 本批次所有文章都是跟着马士兵的杨淑娟老师的视频教学所得,视频地址在下面: # https://www.bilibil ...
- python学习027-----python之函数(三):函数返回值、局部变量与全局变量
1.函数的返回值 1) 过程(procedure)是简单.特殊并且无返回值的: 2) 函数(Function)是有返回值的. python严格来说,只有函数,没有过程.当没有写返回值时,python函 ...
- Pass算子python 函数
Pass算子python 函数 函数 • 函数是代码的一种组织形式 • 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 • 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数 ...
- python函数第二次运行报错_Python学习笔记2-函数、高级特性
函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...
- python函数参数*arg和**kwargs分别代表什么?
python函数参数*arg和**kwargs分别代表什么? 注意: 注意:参数arg.*args.**kwargs三个参数的位置必须是一定的.必须是(arg,*args,**kwargs)这个顺序, ...
- Python的零基础超详细讲解(第十二天)-Python函数及使用
基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...
- python函数装饰函数_Python精进-装饰器与函数对象
本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...
- python函数只有被调用才会执行_Python函数调用
转载自链接: http://www.cnblogs.com/feixuelove1009/p/5541632.html 1.python函数基础 函数名: fun 函数体:1~3行 返回值:2 调用函 ...
最新文章
- 一个简单的Spring的AOP例子(JAVA面向切面编程)
- AI时代的神马搜索!神马智能对话技术深度解读
- matlabrvctools主要功能及实际应用_【从业必备 | 收藏】ISO26262功能安全标准白皮书:关键组成、软硬件认证、测试过程、合规认证工具...
- Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
- sharepoint 到底是什么
- ubuntu中 不同JDK版本之间的切换
- 编码技术新突破:字节跳动AVG让视频缩小13%
- oracle子接点与父节点上下级关系数据库查询语句,及联查询,
- Github Projects 项目管理 怎么用
- paip.python错误解决10
- DEDECMS短信宝短信插件
- Mac数据库可视化工具,workbench完全替代Navicat和PowerDesigner,Oracle官方免费可视化工具workbench!!
- 凯恩帝1000对刀图解_KND数控车床对刀方法
- matlab海龟交易策略,海龟交易策略
- IDAPython 让你的生活更滋润 part1 and part2
- h5获取视频的第一帧
- 2022年电工(技师)考试题及电工(技师)模拟试题
- shapely库的基础学习
- 【懒懒的Python学习笔记六】
- 洛谷P2678 Java解法
热门文章
- Html学习总结(2)——Html页面head标签元素的意义和应用场景
- 自定义UINavigationBar的背景【转】
- 约束布局(ConstraintLayout)1.1.2 版本的新特性
- 特斯拉亚洲最大超级充电站正式运营,可同时提供20辆车的快充服务
- Tomcat可以实现Session共享方案
- 我用系统的思想来编程
- 移动应用的一般测试流程和需要注意的测试项
- CentOS7.2 network.service NetworkManager.service 冲突
- Servlet Request
- Thinking in ReactJS and Flux