【零基础】Python3学习课后练习题(十七)
本文是跟着鱼C论坛小甲鱼零基础学习Python3的视频学习的,课后题也是跟随每一课所附属的题目来做的,根据自己的理解和标准答案记录的笔记。
第十九课
测试题:
0.下边程序会输出什么?
[code]def next(): print('我在next()函数里...') pre() def pre(): print('我在pre()函数里...') next()
答:会输出
[code]我在next()函数里... 我在pre()函数里...
1.请问以下这个函数有返回值吗?
[code]def hello(): print('Hello FishC!')
答:有,返回值是 none 。
[code]>>> print(hello()) Hello FishC! None
2.请问Python的return语句可以返回多个不同类型的值吗?
答:可以,但是要用元组和列表进行打包起来形成一个整体。(这样是返回一个整体,整体包含了多个不同类型的值)
3.请目测以下程序会打印什么内容?
[code]def fun(var): var = 1314 print(var, end = '') var = 520 fun(var) print(var)
答:会打印出 1314 与 520 。(变量赋值如果是在函数域内进行赋值的话,作用效果只在函数域内有效。全局变量则会在整个代码区产生效果并且可以随时访问。而函数内的局部变量则不行。所以不要在函数内试图定义一个全局变量,就算名字相同,也不能够影响到全局变量,而只能在函数过程生效。)
[code]1314 520
4.目测以下程序会打印什么内容?
[code]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’。
[code]>>> print(fun1()) Baby I love you >>>
分析整个代码我们可以发现,首先在全局声明了一个变量 var ,接着定义函数 fun1() 并且将全局变量 var 代入函数域内(声明域内的 var 是全局变量),然后将变量 var 改为 'Baby' ,函数 fun1() 返回的是 第二个定义函数 fun2(var) 的值。第二个定义的函数 fun2(var) 定义为 var -= 'I love you' 并且返回的是 var 的值。第三个函数 fun3(var) 定义为将变量 var 改变为 '小甲鱼' 。我们最后运行的是 print(fun1()) ,但实际上已经定义好三个函数里面只引用了两个函数,即在函数fun1()内将全局变量声明并改变之后运行函数fun2(var)代入var进行函数过程并且得到最终返回值var,函数fun1()的返回值即是将函数fun1()过程后所得返回值代入函数fun2(var)过程之后所得的返回值。
动动手:
0.编写一个函数,判断传入的字符串参数是否为“回文联”。
【回文联,它是我国对联中的一种。用回文形式写成的对联,既可顺读,也可倒读。不仅它的意思不变,而且颇具趣味。例如:
斗鸡山上山鸡斗,龙隐岩中岩隐龙,上海自来水来自海上之类都是 “回文联” 的形式。】
答:
[code]#方法一: def hwlpd(words): length = len(words) count = 0 for x in range(length): if words[x] == words[-x-1]: count += 1 if count == length: print('该句子是回文联') else: print('该句子不是回文联') #方法二: def hwlpd(words): lista = list(words) listb = list(reversed(words)) if lista == listb: print('该句子是回文联') else: print('该句子不是回文联')
1.编写一个函数,分别统计传入字符串参数(可能不止一个参数)的英文字母、空格、数字和其它字符的个数。
答:
[code]def tongji(*words): length = len(words) for x in range(length): letter = 0 space = 0 number = 0 another = 0 ler = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' spr = ' ' nur = '0123456789' for each in words[x]: if each in ler: letter += 1 elif each == spr: space += 1 elif each in nur: number += 1 else: another += 1 print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (x + 1, letter, number, space, another))
阅读更多
- 【零基础】Python3学习课后练习题(二十六)
- 【零基础】Python3学习课后练习题(二十五)
- 【零基础】Python3学习课后练习题(十九)
- 【零基础】Python3学习课后练习题(二十七)
- 【零基础入门学习Python笔记001】我和Poyhon的第一次亲密接触:课后测试集答案
- 【鱼C·零基础入门学习Python】课后习题答案 第14课
- 【零基础入门学习Python笔记002】用Python设计第一个游戏:课后测试集答案
- python中numpy基础学习及进行数组和矢量计算
- python基础学习之——使用list和tuple
- python基础学习笔记(九)
- 零基础入门学习Python(15)--格式化
- python基础知识学习地址
- python基础学习10----集合
- python基础学习--元组
- Python学习系列(一)(基础入门)
- 静态方法 分类: python基础学习 2014-04-05 19:34 228人阅读 评论(0) 收藏
- Python学习之路一--(基础知识)
- Python基础学习笔记三
- 一个开发十年的程序员论:学习Python最正确的步骤(0基础必备)