【零基础】Python3学习课后练习题(十七)

版权声明:未经授权请勿转载,否则需承担相应法律责任。 https://blog.csdn.net/RonyLance/article/details/82942348

本文是跟着鱼C论坛小甲鱼零基础学习Python3的视频学习的,课后题也是跟随每一课所附属的题目来做的,根据自己的理解和标准答案记录的笔记。

第十九课

测试题:

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

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

答:会输出

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

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

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

答:有,返回值是 none 。

>>> print(hello())  
Hello FishC!  
None  

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

答:可以,但是要用元组和列表进行打包起来形成一个整体。(这样是返回一个整体,整体包含了多个不同类型的值)

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

3.请目测以下程序会打印什么内容?

def fun(var):  
    var = 1314  
    print(var, end = '')  
  
var = 520  
fun(var)  
print(var)  

答:会打印出 1314 与 520 。(变量赋值如果是在函数域内进行赋值的话,作用效果只在函数域内有效。全局变量则会在整个代码区产生效果并且可以随时访问。而函数内的局部变量则不行。所以不要在函数内试图定义一个全局变量,就算名字相同,也不能够影响到全局变量,而只能在函数过程生效。)

1314
520

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’。

>>> 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.编写一个函数,判断传入的字符串参数是否为“回文联”。

【回文联,它是我国对联中的一种。用回文形式写成的对联,既可顺读,也可倒读。不仅它的意思不变,而且颇具趣味。例如:

斗鸡山上山鸡斗,龙隐岩中岩隐龙,上海自来水来自海上之类都是 “回文联” 的形式。】

答:

#方法一:
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.编写一个函数,分别统计传入字符串参数(可能不止一个参数)的英文字母、空格、数字和其它字符的个数。

答:

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

猜你喜欢

转载自blog.csdn.net/RonyLance/article/details/82942348