1.函数的多个返回值(random.choice() )
我们知道range可以返回函数的值,但是range也会中断函数
但我们如果要返回多个函数的化改怎么办了???其实我们可以使用random.choice()
假如餐厅搞活动,消费5元以下随机赠送一碟小菜,消费5-10元随机赠送一碟餐前小菜和一个咸鸭蛋。
让你使用代码将它的方式打印下来的化要怎么办了?其实可以这样
import random app=['拍黄瓜','小葱拌豆腐','凉菜'] def song(money): if money<5: a=random.choice(app) return a elif 5<=money<10: c=random.choice(app) return c,'咸鸭蛋' print(song(3)) print(song(9))
然后它就会返回这样的数据
小葱拌豆腐
('小葱拌豆腐', '咸鸭蛋')
2.多个函数的配合使用:
我们先运行一下,?的代码
rent = 3000 def cost(): utilities = int(input('请输入本月的水电费用')) food_cost = int(input('请输入本月的食材费用')) variable_cost = utilities + food_cost print('本月的变动成本是' + str(variable_cost)) def sum_cost(): sum = rent + variable_cost print('本月的总成本是' + str(sum)) cost() sum_cost()
就会发现它报错了,因为sum_cost()函数内的变量variable_cost没有被定义 这就涉及一个变量作用域的问题:
程序中的变量并不是在哪个位置都可以被使用的, 使用权限决定于这个变量是在哪里赋值的。
关于这个概念,目前我们只需要掌握下面两点即可
1.一个在函数内部赋值的变量仅能在该函数内部使用(局部作用域) 2.在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),它们被称作【全局变量】
那我们该如何解决这个问题呢?
其实解决方法有2种
1.把局部变量都放在函数外,变成全局变量
注:x1表示房租 x2表示水电费 x3表示伙食费 x4表示可控制成本 x5为总成本
x1=3000 x2=int(input('请输入水电费')) x3=int(input('请输入伙食费')) x4=x2+x3 #也上都为全局变量 print('本月可控制成本是'+str(x4)) def chengben(): money=x1+x4 print('本月总成本为:'+str(money)) chengben()
2.使用global语句(会使某个局部变量变成全局变量)
x1=3000 def money1(): global x4 #global 使x4成了全局变量 x2=int(input('请输入水电费')) x3=int(input('请输入伙食费')) x4=x3+x2 print('本月可变成本为'+str(x4)) def qian(): zcb=x4+x1 print('本月总成本为'+str(zcb)) money1() qian()
这样我们就可以让多个函数配合这使用了。
3.函数的嵌套
其实我们也可以吧多个函数嵌套在另一个函数中
def div(num1, num2): growth = (num1 - num2) / num2 percent = str(growth * 100) + '%' return percent def warning(): print('Error: 你确定上个月一毛钱都不赚不亏吗?') def main(): while True: num1 = float(input('请输入本月所获利润')) num2 = float(input('请输入上月所获利润')) if num2 == 0: warning() else: print('本月的利润增长率:' + div(num1,num2)) break main()
它的具体方法如下图所示:
版权声明:本文为blaxk原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。