第十九讲:函数,我的地盘听我的
一、知识点:
0.函数与过程:过程(procedure)是简单的,特殊且没有返回值。函数有返回值。
Python严格来说只有函数没有过程。
1.局部变量:在局部生效的变量,如在函数中定义的变量。
2.全局变量:在函数外定义的变量,作用于整个模块。
函数内若试图修改全局变量,Python会新建一个同名局部变量用于存储修改值,原全局变量的值不变
def discount(price,rate):
final_price=price*rate #局部变量
#print('打印全局变量:',old_price)
old_price=50 #创造一个名字一样的局部变量
print('修改后old_price的值是:',old_price)
return final_price
old_price=float(input("请输入原价:")) #全局变量
rate=float(input("请输入折扣率:"))
new_price=discount(old_price,rate)
print("折后价",new_price)
----------------------------------------------------我是一条分割线------------------------------------------------------
0.下边程序会输入什么?
>>> def next():
print('我在next()函数里……')
pre()
>>> def pre():
print('我在pre()函数里……')
>>> next()
我在next()函数里……
我在pre()函数里……
1.请问一下这个函数有返回值吗?
>>> def hello():
print('Hello FishC!')
有。会返回一个none对象。
如果没有使用return语句指定返回值,Python也不是什么都不返回的,Ta会返回一个None对象,所以我们说Python所有的函数都有返回值。
2.请问python的return语句可以返回多个不同类型的数据吗?
可以。默认用逗号隔开,以元组形式返回。也可以使用列表包含起来返回。
3.目测以下程序会打印什么内容?
>>> def fun(var):
var = 1314
print(var,end='')
>>> var = 520
>>> fun(var)
1314
>>> print(var)
520
4.目测以下程序会打印什么内容?>>> var = 'Hi'
>>> def fun1():
global var
var = 'Baby'
return fun2(var)
>>> def fun2(var):
var += 'I Love You'
fun3(var)
return var
>>> def fun3(var):
var = '小甲鱼'
BabyI Love You
----------------------------------------------------我是一条分割线------------------------------------------------------
三、动动手:
0. 编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
>>> def hwl(string):
list1=list(string)
list2=reversed(list1)
if list1 == list(list2):
return '是回文联!'
else:
return '不是回文联!'
1.编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。>>> def countn(*paras):
length = len(paras)
engnum = 0
spanum = 0
digitnum = 0
othnum = 0
for i in range(length-1):
for each in str(paras[i]):
if each.isalpha():
engnum += 1
elif each.isspace():
spanum += 1
elif each.isdigit():
digitnum += 1
else:
othnum += 1
print('英文字符个数:%d'%engnum)
print('空格个数:%d'%spanum)
print('数字个数:%d'%digitnum)
print('其他字符个数:%d'%othnum)
----------------------------------------------------我是一条分割线------------------------------------------------------