老师,为什么最后的不显示呢?

老师,为什么最后的不显示呢?

相关代码:

相关截图:

http://img1.sycdn.imooc.com//climg/6098eb72097e1c7912060888.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,你好!同学可以将程序的代码以复制粘贴的形式提供下,方便更好的解决。祝学习愉快!

慕粉4143306 提问者 2021-05-10 16:26:36

def introduction(str):

    a = '*' * 22

    print('{0}{1}{2}'.format(a, str, a))



def prepare_course():

    dict1 = {

        "01": "网络爬虫", "02": "数据分析",

        "03": "人工智能", "04": "机器学习",

        "05": "云计算", "06": "大数据",

        "07": "图像识别", "08": "Web开发"

    }

    list1 = []

    for i, j in dict1.items():  # 以列表返回可遍历的(键, 值) 元组数组

        result_c = Course(i, j)

        list1.append(result_c)  # 获得Course类的属性

        return list1  # 获得课程信息属性列表



def create_teacher():

    list_t = ["T1", "张亮", "13301122001"], ["T2", "王朋", "13301122002"], \

             ["T3", "李旭", "13301122003"], ["T4", "黄国发", "13301122004"], \

             ["T5", "周勤", "13301122005"], ["T6", "谢富顺", "13301122006"], \

             ["T7", "贾老师", "13301122007"], ["T8", "杨老师", "13301122008"]

    list2 = []

    for i in list_t:

        result_t = Teacher(i[0], i[1], i[2])  # 返回教师编号和姓名的值

        list2.append(result_t)

        return list2  # 返回教师编号和姓名的列表



def course_to_teacher():

    list_ct = []

    ls_course = prepare_course()  # 课程信息的列表,列表中的每个元素是Course类对象

    ls_teacher = create_teacher()  # 返回教师编号和姓名的列表,列表中的每个元素是Teacher类对象

    for i in range(0, len(ls_course)):

        rest = ls_course[i].binding(ls_teacher[-(i + 1)])

        # ls_course列表中的对象可以调用Course类中binding(),binding()方法中的teacher是对象,获取课程名称和教师姓名

        list_ct.append(rest)

    return list_ct



def create_student():

    ls_student = ["小亮", "小明", "李红", "小丽", "Jone", "小彤", "小K", "慕慕"]

    student_num = list(range(1000, 1008))

    list_st = []

    for i in range(0, len(ls_student)):

        rest = Student(student_num[i], ls_student[-(i + 1)])

        list_st.append(rest)

    return list_st  # 返回的是学生学号和姓名列表对象



if __name__ == '__main__':

    rest1 = course_to_teacher()  # 教师编号和姓名列表对象,获取课程名称和教师姓名的列表

    rest2 = create_student()  # 返回的是学生学号和姓名对象列表,create_student()中绑定了Student类

    introduction("慕课学院(1)班学生信息")

    for i in rest2:

        print(i)

    introduction("慕课学院(1)班选课结果")

    for i in range(0, len(rest1)):

        rest2[i].add_course(rest1[i])

    for j in rest2:

        print("Name:{0},Selected:{1}".format(j.st_name, j.st_course))


  • 同学,你好!在prepare_course()和create_teacher()函数中,return语句应放在for循环外边,执行完循环后再返回列表

    http://img1.sycdn.imooc.com//climg/6098f006095189f710010440.jpg

    http://img1.sycdn.imooc.com//climg/6098f01b09859ab110370275.jpg

    祝学习愉快!

    2021-05-10 16:36:40
  • 提问者 慕粉4143306 回复 好帮手慕美 #2

    def course_to_teacher():

        list_ct = []

        ls_course = prepare_course()  # 课程信息的列表,列表中的每个元素是Course类对象

        ls_teacher = create_teacher()  # 返回教师编号和姓名的列表,列表中的每个元素是Teacher类对象

        for i in range(0, len(ls_course)):

            rest = ls_course[i].binding(ls_teacher[-(i + 1)])

            # ls_course列表中的对象可以调用Course类中binding(),binding()方法中的teacher是对象,获取课程名称和教师姓名

            list_ct.append(rest)

        return list_ct


    老师这一段话中 : rest = ls_course[i].binding(ls_teacher[-(i + 1)])

    这一段不是很理解,ls_ocurse中的【i】 是指{01:网络爬虫},还是单指网络爬虫,,那然后调用的binding中的【-(i+1)】,为什么输出的结果会是只有单独的姓名呢:


    Name:慕慕,Selected:[{'课程名称': '网络爬虫', '教师名称': '杨老师'}]



    还有这段列表中的\ 是代表什么意思呢?

     list_t = ["T1", "张亮", "13301122001"], ["T2", "王朋", "13301122002"], \

                 ["T3", "李旭", "13301122003"], ["T4", "黄国发", "13301122004"], \

                 ["T5", "周勤", "13301122005"], ["T6", "谢富顺", "13301122006"], \

                 ["T7", "贾老师", "13301122007"], ["T8", "杨老师", "13301122008"]


    有没有这个有什么区别

    2021-05-11 16:36:47
  • 好帮手慕美 回复 提问者 慕粉4143306 #3

    同学,你好!

    1、ls_cocurse中的[i]是下标,ls_course[i]得到的是对应的Course()类的实例对象

    http://img1.sycdn.imooc.com//climg/609a44850995066a10040403.jpg

    http://img1.sycdn.imooc.com//climg/609a44a60911f15306790392.jpg

    2、 ls_course[i].binding(ls_teacher[-(i + 1)])调用的是课程类中的binding()方法,得到的值是该方法的返回值,教师名称对应的值调用的是teacher中的t_name属性,因此只有教师姓名

    http://img1.sycdn.imooc.com//climg/609a450d0978406010760438.jpg

    3、\是同一行代码的换行,不写是会报错的;若不换行的话不写是可以的,或者是将元素值放到一个列表中

    http://img1.sycdn.imooc.com//climg/609a46ad090840ac06310279.jpg

    祝学习愉快!

    2021-05-11 16:57:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师