鱼C论坛

 找回密码
 立即注册
查看: 4257|回复: 0

[学习笔记] 019函数:我的地盘听我的

[复制链接]
发表于 2017-6-23 23:24:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.函数与过程:函数和过程都是指一段实现特定功能的代码段,如果该代码有返回值则称为函数,否则称为过程,即便函数体内没有return语句返回一个值,Python程序也会返回一个空的返回值;
函数(function):有返回值
过程(procedure):简单、特殊没有返回值的
  1. Python严格来说只有函数没有过程
  2. >>> def hello():
  3.         print('Hello FishC!')

  4.        
  5. >>> temp = hello()
  6. Hello FishC!
  7. >>> temp
  8. >>> print(temp)
  9. None
  10. >>> type(temp)
  11. <class 'NoneType'>
复制代码

2.函数的返回值
Python可以拥有多个返回值,可以以列表和元组的形式返回;
  1. >>> def back():
  2.         return [1, '小甲鱼', 3.14]

  3. >>> back()
  4. [1, '小甲鱼', 3.14]
  5. >>> def back():
  6.         return 1, '小甲鱼', 3.14

  7. >>> back()
  8. (1, '小甲鱼', 3.14)
复制代码

3.局部变量(Local Variable)和全局变量(Global Variable)
1)函数变量的作用域——局部或全局,在函数体内定义的变量称为局部变量,其作用域仅限该函数体内部;全局变量则是在函数体外定义的变量,它的作用域为整个代码段;
  1. def discounts(price,rate):
  2.     final_price = price * rate
  3.     print('这里试图打印全局变量old_price的值:',old_price)
  4.     return final_price

  5. old_price = float(input('请输入原价:'))
  6. rate = float(input('请输入折扣率:'))
  7. new_price = discounts(old_price, rate)
  8. print('打折后价格是:', new_price)
  9. 请输入原价:100
  10. 请输入折扣率:0.8
  11. 这里试图打印全局变量old_price的值: 100.0
  12. 打折后价格是: 80.0
复制代码

2)当在函数体内对全局变量修改时,程序会自动生成一个和全局变量名一样的局部变量;
  1. def discounts(price,rate):
  2.     final_price = price * rate
  3.     # print('这里试图打印全局变量old_price的值:',old_price)
  4.     old_price = 50
  5.     print('修改后old_price的值是1:', old_price)
  6.     return final_price

  7. old_price = float(input('请输入原价:'))
  8. rate = float(input('请输入折扣率:'))
  9. new_price = discounts(old_price, rate)
  10. print('修改后old_price的值是2:', old_price)
  11. print('打折后价格是:', new_price)
  12. 请输入原价:100
  13. 请输入折扣率:0.8
  14. 修改后old_price的值是1: 50
  15. 修改后old_price的值是2: 100.0
  16. 打折后价格是: 80.0
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
小甲鱼 + 3 + 3 支持楼主!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 14:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表