【鱼C·零基础入门学习python】第16课到第22课习题答案

来源:互联网 发布:cache数据库优点缺点 编辑:程序博客网 时间:2024/06/05 10:11

【前言】
做了一下感觉题量很多,所以精简了我觉得还挺有意思的题目放在上面,偷了个懒提高效率,大家见谅哈。
1. 请问分别使用什么BIF,可以把一个可迭代对象转换为列表、元祖和字符串?

答:
list([iterable]) 把可迭代对象转换为列表

tuple([iterable]) 把可迭代对象转换为元祖

str(obj) 把对象转换为字符串

只是码一波。

  1. 请问这个函数有多少个参数?
  2. def MyFun((x, y), (a, b)):
  3. return x * y - a * b
    答:答案是0,因为这种写法不合法。
    我一开始有点懵逼,觉得应该是两个,思考了一下,觉得不对。因为形参应该是个变量,而元组是只读的不是变量,所以不能用元组传递,但是元组可以作为实参。

  4. 寻找所有三位水仙花数
    答:水仙花数就是数字每一位的立方之和等于这个数字本身。

def Narcissus():    num=0    for each in range(100,999):        temp=each        sum=0        num+=1        while temp:            sum+=(temp%10)**3            temp=temp//10        if each==sum:            print("%d: %d" %(num,each))
  1. 写一段函数判断字符串是否为回文联
    答:判断回文联,其实就是比较字符串与其翻转过来是否一致就可以了,但是字符串貌似没有反转函数(我没看到。。。。。。如果有请提醒我),所以将其转化为list然后用reversed函数翻转后进行比较,但是注意reversed函数转换得到的结果是字符串,这个字符串的形式也不能直接与原字符串比较,故需再用list()转化后比较
def palindrome(string):    """   对给定字符串判断是否为回文联    """     list1=list(string)    if string==list(reversed(list1)):        print("yes!")    else:        print("nope")str = input("please input a string")palindrome(str)

下面在用递归的方式实现

def palindrome(string,start,end):    """   对给定字符串判断是否为回文联(递归方法)    """     if start>=end:        return 1    else:        if string[start]==string[end]:            return palindrome(string,start+1,end-1)        else:            return 0str = input("please input a string:")if palindrome(str,0,len(str)-1):    print("yes")else:    print("nope")

与下一题相区别,注意两者返回值的而采取不同的访问方式

只看第四题
这里写图片描述

小甲鱼闭包这个例子给的很好,解释的很到位,所以就直接搬过来啦。
阅读全文
0 0
原创粉丝点击