学习笔记-小甲鱼Python3学习第十九
函数和过程
函数(function)有返回值
过程(procedure)是简单、特殊并且没有返回值的
变量:
局部变量(Local Variable):在整个py文件中声明,全局范围内都可以调用
全局变量(Global Variable):在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序会报错
-----------------分割线,哈哈哈-----------------
测试题
0.下边程序会输入什么?
>>> def next():
print('我在next()函数里……')
pre()
>>> def pre():
print('我在pre()函数里……')
>>> next()
我在next()函数里......
我在pre()函数里......
1.请问一下这个函数有返回值吗?
>>> def hello():
print('Hello FishC!')
有返回值,返回值是None
如果没有使用return语句指定返回值,它会返回一个None对象,所以说Python所有的函数都有返回值。
2.请问python的return语句可以返回多个不同类型的数据吗?
可以。默认使用逗号隔开,以元组的形式返回。也可以使用列表包含起来返回。
3.目测以下程序会打印什么内容?
def fun(var):
var = 1314
print(var,end='')
var = 520
fun(var)
print(var)
>>>
1314520
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 = '小甲鱼'
print(fun1())
>>>
BabyI love python.
这串代码真蛋疼,我的理解是在fun1()中声明全局变量var后,在给var赋值Baby,那么全局变量var的值已经由Hi变更为了Baby,而Baby这个值随即又传递给了fun2(var)的形参var,然后执行fun2(),var的值变为了BabyI love you
fun2()中虽然调用了fun3(),但fun3('小甲鱼')也就仅限于此了,没有任何实际意义。随后fun2()返回var的值为BabyI love you给fun1(),fun1()又返回这个值,执行print(fun1())后打印出来
------------------分割线,哈哈哈----------------
三、动动手:
0.编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
def hwl(string):
list1 = list(string)
list2 = reversed(list1)
if list1 == list(list2):
return '是回文联!'
else:
return '不是回文联!'
>>> hwl('上海自来水来自海上')
'是回文联!'
>>> hwl('123321')
'是回文联!'
>>> hwl('abcda')
'不是回文联!'
1.编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
def count(*args):
length = len(args)
chars = 0
nums = 0
spaces = 0
others = 0
for i in range(length):
for each in str(args[i]):
if each.isalpha():
chars += 1
elif each.isdigit():
nums += 1
elif each.isspace():
spaces += 1
else:
others += 1
print('第%d个字符串中:字母一共%d个,数字一共%d个,空格一共%d个,其他字符一共%d个'%(i+1,chars,nums,spaces,others))
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341