三、函数

关于《python编程快速上手-让繁琐工作自动化》的学习笔记

1.def语句和参数

在hello()函数定义中,有一个名为name的变元。‘变元’是一个变量,当函数调用时参数就存放在其中
关于变元有一件事值得注意:保存在变元中的值,在函数返回后就丢失了

def hello(name):   #函数定义
    print('hello '+name)

hello('Alice')   #函数调用
hello('Bob')    #函数调用

2.返回值和return语句

一般来说,函数调用求值的结果称为函数的“返回值”。用def语句创建函数时,可以用return语句指定应该返回什么值

def sum():
    i=1+2
    return i   
print(sum())    

3.None值

None是NoneType数据类型的唯一值,它表示没有值

>>>spam=print('hello')
hello
>>>None==spam
True

4.关键字参数

大多数参数是由它们在函数调用中的位置来识别的。但是“关键字参数”是由函数调用时加在它们前面的关键字来识别的。关键字参数通常用于可选变元

例如:print()函数有可选的变元end和sep。print()函数自动在传入的字符串末尾添加换行符,可以设置end关键字参数将它变成另一个字符串;向print()函数传入多个字符串值,该函数会自动用一个空格符分隔它们,可以传入sep关键字参数,替换掉默认的字符串

print('hello')
print('world')

hello
world
print('hello',end=' ')
print('world')

helloworld
>>>print('cats','dogs','mice')
cats dogs mice
>>>print('cats','dogs','mice',sep=',')
cats,dogs,mice

5.局部和全局变量

  • 作用域
    • 全局作用域中的代码不能使用任何局部变量
    • 局部作用域可以访问全局变量
    • 一个函数的局部作用域中的代码不能使用其他局部作用域中的变量
    • 不同作用域中可以使用相同的名字命名不同的变量
  • 局部变量不能在全局作用域中使用
  • 局部作用域不能使用其他局部作用域内的变量
  • 全局变量可以在局部作用域中读取

6.global语句

  • 在函数内使用global语句修改全局变量
def spam()
    global egggs
    eggs='spam'

eggs='global'
spam()
print(eggs)
# 输出: spam
  • 判断变量是处于局部作用域还是全局作用域
    • 如果变量在全局作用域中使用(即在所有函数之外),它就是全局变量
    • 如果在一个函数中且有针对该变量的global语句,它就是全局变量,否则如果该变量用于函数的赋值语句,它就是局部变量;但是如果该变量没有用在赋值语句中,它就是全局变量

7.异常处理

  • try和except语句
    • 可能出错的语句放在try子句,如果发生错误,程序执行就转到except语句开始处
    • 一旦执行跳转到except子句的代码,就不会再回到try语句,会接着往下执行
def spam(n):
    return 42/n

try:
    print(spam(2))
    print(spam(12))
    print(spam(0))
    print(spam(1))
except ZeroDivisionError:
    print('Error:Invalid argument.')
'''
输出: 
    21.0
    3.5
    Error:Invalid argument.
 '''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值