python课后作业总结

课后作业1. 一个列表中有多种字符型的元素,要求一将非字符型的全部改成字符型,要求二将所有字符型中的大写字母改成小写。
需要用到的知识有:
1.lower()函数,功能:将大写字母改成小写
2.列表生成式[s.lower() for s in L],其中s为列表中的元素而非列表
3.isinstance(元素 , 数据类型)函数,功能:判断元素是否为某一数据类型
4.L.index(需要查找的元素)函数,功能:查找列表中元素的下标
5.L.insert(位置,需要插入的元素)函数,功能:将元素 插入列表的指定位置
实现的代码为:
这里写图片描述
课后作业2. 将字符串首尾的空格去掉
方法一:使用while循环与slice功能实现
方法二:使用递归函数与slice功能实现
这里写图片描述
课后作业3. 汉诺塔的实现
需要使用到的知识是:递归,以及一些数学总结
该博客对python递归法解决汉诺塔问题的解释更加清晰

扩展作业:求出列表某元素的下标,列表中含有0个,一个或者多个该元素。
假设列表为:org = [1, 2, 2, 33, 2, 4, 5, 2],分别求出元素1、元素2的下标,其中元素2的所有下标都要求出。
方法一:先判断元素的个数,然后判断该个数的值,若为0则…若为1则..若大于1则以该个数为循环次数逐一获取元素下标。
方法二:比方法一简单,使用enumerate()函数
这里写图片描述

课后作业4. 利用迭代寻找出列表中的最大最小值,并返回一个tuple值。
1.列表是否可以迭代,使用isinstance(L,Iterable)函数判断,不满足迭代条件时,应该给出错误提示“raise TypeError(‘error’)”
2.列表为空时的情况

#iteration 迭代的使用

# for i,ch in enumerate(['S','H','E']):
    # print(i,ch)

# for x,y in [(1,1),(2,4),(3,9)]:
    # print(x,y)

# for i,x in enumerate ([(1,1),(2,4),(3,9)]):
    # print(i,x)
#比较此三者的不同从而掌握enumarate()函数的应用及在for循环中引入两个变量。for循环中最多也只能引入两个变量



#功能:使用迭代找出list中的最大最小值,然后返回一个tuple

# def ite(L):
    # min=L[0]
    # max=L[0]
    # for i in L:
        # if i<min:
            # min=i
        # if i>max:
            # max=i
    # print(min,max)
    # return (min,max)
# L=[96,11,17]
# L=[]#会报错
# tuple=ite(L)
# print(tuple)



#完善以上程序,需要加上的功能:1.判断数据类型是否可以迭代,若不可以应该输出类型错误
#2.当输入的数据长度为0或者小于0时应该输出“None”,否则会报"indexError",可令L为空值进行测试
#3.实现类似Java的小标循环输出

from collections.abc import Iterable

def ite(L):
    if(not isinstance(L,Iterable)):#在python中注意严格区分大小写,eg:iterable会报错,none与None也是不同的
        raise TypeError('error')
        return None#功能1
    elif len(L)==0 :
        return(None,None)#功能2
    else:   
        min=L[0]
        max=L[0]
        for i in L:
            if i<min:
                min=i
            if i>max:
                max=i
        #print(min,max)
        return (min,max)

L=[96,11,17]
# L=123
# L=[]
tuple=ite(L)
#下标循环输出tuple
for i,ch in enumerate(tuple):#功能3
    print(i,ch)


猜你喜欢

转载自blog.csdn.net/weixin_42069167/article/details/82180984