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个其他字符