专栏首页石开之旅小甲鱼《零基础学习Python》课后笔记(十九):函数——我的地盘听我的

小甲鱼《零基础学习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.请问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个其他字符  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小甲鱼《零基础学习Python》课后笔记(二十):函数——内嵌函数和闭包

    首次使用makedown进行博客书写,使用起来感觉也不难,主要是功能需要比较少,不过编写出来的文章很美观。 测试题 0.如果希望在函数中修改全局变量的值,应...

    小火柴棒
  • 小甲鱼《零基础学习Python》课后笔记(四):改进我们的小游戏

    会一直打印直到电脑内存被占用完。字符串‘C’是一个非0值,所以while语句判断为真,就会一直打印。

    小火柴棒
  • 小甲鱼《零基础学习Python》课后笔记(十七):函数——Python的乐高积木

    1) 可以降低维护成本(函数只需修改def部分内容,而拷贝黏贴则需要每一处出现的地方都作修改)

    小火柴棒
  • JavaScript深入浅出第4课:V8引擎是如何工作的?

    大神Fabrice Bellard发布了一个新的JS引擎QuickJS,可以将JavaScript源码转换为C语言代码,然后再使用系统编译器(gcc或者clan...

    Fundebug
  • 解决因为机器性能问题导致docker-compose运行容器超时的问题

    就是一到一个docker-compose文件里面要运行的容器变多,或者因为机器性能差导致没有在60s之内把docker-compose文件中的容器完全运行起来都...

    bboysoul
  • logistic回归建模指南

    昨天的logistic回归:从生产到使用【上:使用篇】(在微信公众号“数说工作室”中回复“logit1”查看),有不少数说网友们建议把最后的建模指南图单独发一下...

    数说君
  • 面试官:Java的重写和重载有什么区别?

    老读者都知道了,七年前,我从美女很多的苏州回到美女更多的洛阳(美化了),抱着一幅“从二线城市退居三线城市”的心态,投了不少简历,也“约谈”了不少面试官,但仅有两...

    沉默王二
  • web前端设计布局基础知识点图解

    web前端设计布局基础知识点图解

    用户1730674
  • 95个可见字符生成的6位密码词典有多大?

    -rw-r--r-- 1 root root 4.7T Apr 14 07:41 /data3/ccc.txt

    我爱你的一诺
  • [ASP.NET Core 3框架揭秘] 依赖注入:IoC模式

    正如我们在《依赖注入:控制反转》提到过的,很多人将IoC理解为一种“面向对象的设计模式”,实际上IoC不仅与面向对象没有必然的联系,它自身甚至算不上是一种设计模...

    蒋金楠

扫码关注云+社区

领取腾讯云代金券