小甲鱼Python3学习笔记之第十九讲(仅记录学习)

第十九讲:函数,我的地盘听我的

一、知识点:

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)
----------------------------------------------------我是一条分割线------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/huashu2017/article/details/80774430