三、函数
1、def语句和参数
def hello(name):
print('Hello'+name)
hello('帅哥')
结果:
def语句和参数包含以下几部分
def 函数名(参数):
函数体(函数内操作)
2、返回值和return语句
def getanswer(num):
if num==1:
return 'this is one '
elif num==2:
return 'this is two'
answer=getanswer(2)
print(answer)
结果:
3、None值
None中的N必须大写
对于所有没有return语句的函数定义,Python都会在末尾加上return None。这类似于while或for循环隐式地以continue语句结尾。同时不带返回值的return语句,也是返回None。
>>> None==print('这是空指')
这是空指
True
>>>
4、关键子参数和print()
1)python换行符:\r\n 如图:
2)print()函数中:end关键字
print('你好')
print('帅哥')
print('-------------------')
print('你好',end='')
print('帅哥')
print('--------------------')
print('你好',end=':大家都是')
print('帅哥')
结果:
解析:
前两行字符串出现在独立的两行里,是因为:print()函数自动在传入的字符串末尾添加了换行符。
当设置了end关键字参数,print()函数就会自动在传入的字符串末尾添加该end关键字参数值。
3)print()函数中:sep关键字
print('帅哥','美女','小可爱')
print('-----------------')
print('帅哥','美女','小可爱',sep='和')
print('-----------------')
print('帅哥','美女','小可爱',sep='\r\n')
结果:
解析:
第一行:当想print()传入多个字符串值,该函数回自动调用一个空格分隔多个字符串值。
当传入sep关键字参数,替换掉默认的分隔字符串,此时函数调用传入的sep关键字参数值分隔多个字符串值。
5、局部和全局作用域
1)局部变量不能再全局作用域中内使用
2)局部作用域不能使用其他局部作用域内的变量
3)全局变量可以在局部作用域中读取:局部变量没有此变量名,单全局有此变量名。
4)名称相同的局部变量和全局变量
def A():
name='帅哥'
print(name)
def B():
name='美女'
print(name)
name='小可爱'
A()
print(name)
结果:
6、global语句
def A():
global name
name='帅哥'
print(name)
def B():
name='美女'
print(name)
name='小可爱'
A()
B()
print(name)
结果:
7、异常处理
举例:获取一个除数为0的错误,但不影响程序的执行
此时使用:try和except语句来处理
def divide(num):
try:
return 12/num
except ZeroDivisionError:
return 'num作为除数,不能为0'
print(divide(1))
print(divide(2))
print(divide(0))
print(divide(-2))
print(divide(-1))
结果: