python--11 函数和过程

过程(procedure)是简单/特殊并且没有返回值的

函数 有返回值

python 严格来说只有函数没有过程

  >>> def hello():
    ... print('Hello Junjie!')
    ...
  >>> temp = hello()
  Hello Junjie!

  >>> temp
  >>> print(temp)
  None
  >>> type(temp)
  <class 'NoneType'>

python 动态确定类型  python没有变量,只有名字

返回多个值    用一个数据类型封装多个返回的值

  >>> def back():
    ... return [1,'junjie',3.14]
    ...
  >>> back()
  [1, 'junjie', 3.14]
  >>> def back():
    ... return 1,'junjie',3.14
    ...
  >>> back()
  (1, 'junjie', 3.14)

函数变量作用域  变量的可见性

局部变量(Local Variable)  函数中定义的变量,用栈进行存储  方法结束弹栈

全局变量(Grobal Variable) 作用域整个文件

  >>> def discounts(price,rate):
  ... final_price = price * rate
  ... old_price = 88 #这里试图修改全局变量
  ... print('修改后old_price的值是:', old_price)
  ... return final_price
  ...
  >>> old_price = float(input('请输入原价:'))
  请输入原价:999
  >>> rate =float(input('请输入折扣'))
  请输入折扣0.5
  >>> new_price = discounts(old_price,rate)
  修改后old_price的值是: 88
  >>> print('修改后old_price的值是',old_price) 
  修改后old_price的值是 999.0
  >>> print('打折后的价格是',new_price)
  打折后的价格是 499.5

 

  >>> print('试图打印局部变量的值',final_price)
  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  NameError: name 'final_price' is not defined

全局变量  函数中修改全局变量

  >>> count = 5
  >>> def myFun():
  ... count = 10
  ... print(count)
  ...
  >>> myFun()
  10
  >>> print(count)
  5

old_price = 88 #这里试图修改全局变量

python会使用屏蔽(Shadowing)去保护 全局变量

试图去修改全局变量时,python会创建一个与全局变量名字一样的变量 局部变量和全局便利存储的位置不一样

global 关键字 函数中修改全局变量

 

  >>> print(count)
  5
  >>> count = 5
  >>> def myFun():
  ... global count
  ... count = 10
  ... print(count)
  ...
  >>> myFun()
  10
  >>> print(count)
  10

转载于:https://www.cnblogs.com/fengjunjie-w/p/7490709.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值