第十九课:函数:我的地盘听我的

内容来源于网络,本人只是在此稍作整理,如有涉及版权问题,归小甲鱼官方所有。

练习题(来自小甲鱼官方论坛)

0. 下边程序会输入什么?

def next():
    print('我在next()函数里...')
    pre()
def pre():
    print('我在pre()函数里...')
    
next()

答:

我在next()函数里...
我在pre()函数里...

1. 请问以下这个函数有返回值吗?

def hello():
    print('Hello FishC!')

答:答:有。 会返回一个None的对象。如果没有使用return语句指定返回值,Python也不是什么都不返回的,Ta会返回一个None对象,所以我们说Python所有的函数都有返回值。

>>> def hello():
        print("hello fishc")
>>> temp = hello()
hello fishc
>>> temp
>>> print(temp)
None
>>> 

2. 请问Python的return语句可以返回多个不同类型的值吗?

答:可以,默认用逗号隔开,是以元祖的形式返回,你当然也可以用列表包含起来返回。

>>> def myFun():
        return '测试测试', 520, 3.14, True
>>> myFun()
('测试测试', 520, 3.14, True)
>>> def myFun2():
        return ['小甲鱼', 1314, 5.12, False]
>>> myFun2()
['小甲鱼', 1314, 5.12, False]
>>>

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())

答:

Baby I love you

编程题

0. 编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)。

答:
代码一

def palindrome(string):
    length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
        if string[each] != string[last]:
            flag = 0
        last -= 1
    if flag == 1:
        return 1
    else:
        return 0
string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')

代码二

def palindrome(string):
    list1 = list(string)
    list2 = reversed(list1)
    if list1 == list(list2):
        return '是回文联'
    else:
        return '不是回文联'

print(palindrome('1234abcdedcba4321'))

1. 编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。

答:

def count(*param):
    length = len(param)
    for i in range(length):
        word = 0
        num = 0
        spa = 0
        oth = 0
        for j in param[i]:
            if j.isalpha():
                word += 1
            elif j.isspace():
                spa += 1
            elif j.isdigit():
                num += 1
            else:
                oth += 1
        print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个'
               % (i + 1, word, num, spa, oth))

count('I love fish.com 123', 'I love you', 'you love 123')

输出:

第 1 个字符串共有:英文字母 12 个,数字 3 个,空格 3 个,其他字符 1 个
第 2 个字符串共有:英文字母 8 个,数字 0 个,空格 2 个,其他字符 0 个
第 3 个字符串共有:英文字母 7 个,数字 3 个,空格 2 个,其他字符 0 个

2.请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

答:

  • 函数与过程:过程(procedure)是简单的,特殊且没有返回值的;函数(Function)有返回值,Python严格来说只有函数没有过程
  • 返回值可以是一个int类型,可以返回一个列表,可以返回一个元组
  • 局部变量:在局部生效如在函数中定义的变量
  • 全局变量:作用于整个模块。函数内若试图修改全局变量,Python会新建一个同名局部变量用于存储修改值,原全局变量的值不变

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,875评论 0 10
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,645评论 1 118
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,122评论 17 410
  • 接触了解“零秒思考”概念以及操作方法后,相信很多人都会跃跃欲试,尝试将“零秒思考”应用到自己当前的学习生活中以以便...
    小长卿阅读 306评论 0 0
  • When designing a User Interface you may want to change th...
    8565661100af阅读 246评论 0 0