0.下边程序会输出什么?
def?next():??
????print('我在next()函数里...')??
????pre()??
??
def?pre():??
????print('我在pre()函数里...')??
??
next()??
输出如下:
我在next()函数里...??
我在pre()函数里...??
1.请问以下这个函数有返回值吗?
def?hello():??
????print('Hello?FishC!')??
这个函数返回值 None,python的函数都是有返回值的,所以17课的动动手的习题2才会那样打印的。
>>>?print(hello())??
Hello?FishC!??
None??
2.请问Python的return语句可以返回多个不同类型的值吗?
可以,默认用逗号隔开,是以元组的形式返回,也可以用列表包含起来返回。
>>>?def?MyFunction():??
????return?1,'allen','小甲鱼'??
??
>>>?MyFunction()??
(1,?'allen',?'小甲鱼')??
>>>?def?MyFunction():??
????return?[1,'allen','小甲鱼']??
??
>>>?MyFunction()??
[1,?'allen',?'小甲鱼']??
3.请目测以下程序会打印什么内容?
def?fun(var):??
????var?=?1314??
????print(var,?end?=?'')??
??
var?=?520??
fun(var)??
print(var)??
会打印1314520。因为函数对var的赋值操作只在函数内有效。
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())??
结果如下:
Baby?I?love?you??
0.编写一个函数,判断传入的字符串参数是否为“回文联”
def?huiwen(string):?
'判断传入的字符串是否为回文联'?
????list1?=?list(string)??
????list2?=?list(reversed(string))??
????if?list1?==?list2:??
????????return?'是回文联'??
????else:??
????????return?'不是回文联'??
??
print(huiwen('上海自来水来自海上'))??
运行结果:
是回文联??
写程序的时候写错了一个版本,如下:
def?huiwen(string):??
'判断传入的字符串是否为回文联'
????list1?=?list(string)??
????list2?=?list1.reverse()??
????if?list1?==?list2:??
????????return?'是回文联'??
????else:??
????????return?'不是回文联'??
??
print(huiwen('上海自来水来自海上'))??
运行结果:
不是回文联??
原因是list的reverse()方法是返回None的,只会对列表内的元素逆序排序。而string的reserved()方法是会返回逆序后的字符串的。
1.编写一个函数,分别统计传入字符串参数(可能不止一个参数)的英文字母、空格、数字和其它字符的个数。
def?tongji(*param):
'判断传入的参数中英文字母,空格,数字,其他字符的个数'??
????length?=?len(param)??
????for?i?in?range(length):??
????????letters?=?0??
????????space?=?0??
????????number?=?0??
????????other?=?0??
????????for?each?in?param[i]:??
????????????if?each.isalpha():??
????????????????letters?+=?1??
????????????elif?each.isspace():??
????????????????space?+=?1??
????????????elif?each.isdigit():??
????????????????number?+=?1??
????????????else:??
????????????????other?+=?1??
????????print('第%d个字符串共有:%d个英文字母,%d个空格,%d个数字,%d个其他字符'%(i+1,letters,space,number,other))???
??
tongji('1?love?y0u~~~','i?am?better?1314?###?&1')??
运行结果:
第1个字符串共有:6个英文字母,2个空格,2个数字,3个其他字符??
第2个字符串共有:9个英文字母,5个空格,5个数字,4个其他字符??