小甲鱼《零基础学习Python》课后笔记(十九):函数——我的地盘听我的

测试题

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.请问Pythonreturn语句可以返回多个不同类型的值吗?

可以,默认用逗号隔开,是以元组的形式返回,也可以用列表包含起来返回。

>>> 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的赋值操作只在函数内有效。

扫描二维码关注公众号,回复: 3286350 查看本文章

 

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

猜你喜欢

转载自blog.csdn.net/qq_24546137/article/details/81349311