• Python教学案例 - 三天打渔、两天晒网


    郭、王两位大侠同上终南山习武,两人最初的战力值均为100。王大侠骨骼清奇,天赋较高,每练功一天,战力增加2‰,郭大侠比较愚笨,每练功一天,战力增加1‰。如果休假一天不练,两人的战力均减少1‰。相较于王大侠,郭大侠更加勤奋,日日练功,从不休息,而王大侠,则三天打渔,两天晒网,也就是每5天的前三天练功,后两天休假。

    本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载,但需要注明原作者"海洋饼干叔
    叔";本文不允许以纸质及电子出版为目的进行抄摘或改编。
    1.《Python编程基础及应用》,陈波,刘慧君,高等教育出版社。免费授课视频 Python编程基础及应用
    2.《Python编程基础及应用实验教程》, 陈波,熊心志,张全和,刘慧君,赵恒军,高等教育出版社Python编程基础及应用实验教程
    3. 《简明C及C++语言教程》,陈波,待出版书稿。免费授课视频

    请编写程序,完成下述任务。

    1. 10年(3650天)之后,郭大侠和王大侠战力分别是多少?

    2. 将郭王二位大侠每天的战力值存储在两个列表中,然后参考下述代码绘制两位大侠的战力增长曲线并进行比较。绘制出来的战力增长曲线如图1所示。

    from matplotlib import pyplot as plt
    plt.plot(list(range(365*10)),guoPowers,label="Master GUO")
    plt.plot(list(range(365*10)),wangPowers,label="Master WANG")
    plt.legend()
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5

     图1  战力增长曲线

    解题提示

    • 使用for循环,逐天计算两位大侠的新战力,并置入各自的战力列表;
    • 郭大侠的每日战力 = 前日战力* 1.001;
    • 如果打渔日,王大侠的当日战力 = 前日战力 * 1.002;如果是晒网日,王大侠的当日战力 = 前日战力 * 0.999;
    • 使用表达式 x % 5 in [0,1,2]来判断第x天是王大侠的打渔日还是晒网日;
    • matplotlib模块需要提前安装,安装方法请参考实验18。

    完整源代码

    guoPowers = []    #天天练的郭大侠
    wangPowers = []   #三天打渔、两天晒网的王大侠
    
    guoPower,wangPower = 100,100
    for x in range(365*10):
        guoPower *= 1.001
        if x % 5 in [0,1,2]:
            wangPower *= 1.002
        else:
            wangPower *= 0.999
        guoPowers.append(guoPower)
        wangPowers.append(wangPower)
    
    print(guoPower,wangPower)
    
    from matplotlib import pyplot as plt
    plt.plot(list(range(365*10)),guoPowers,label="Master GUO")
    plt.plot(list(range(365*10)),wangPowers,label="Master WANG")
    plt.legend()
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    为了帮助更多的年轻朋友们学好编程,作者在B站上开了两门免费的网课,一门零基础讲Python,一门零基础C和C++一起学,拿走不谢!

    简洁的C及C++

    由编程界擅长教书,教书界特能编程的海洋饼干叔叔打造
    Python编程基础及应用
    由编程界擅长教书,教书界特能编程的海洋饼干叔叔打造

    如果你觉得纸质书看起来更顺手,目前Python有两本,C和C++在出版过程中。

    Python编程基础及应用

    Python编程基础及应用实验教程

    在这里插入图片描述

  • 相关阅读:
    17. 电话号码的字母组合
    ElasticSearch ( 五 ) ik中文分词
    初识 WebSocket
    X86 SMAP(Supervisor Mode Access Prevention)机制引入的一个问题分析
    新能源科学与工程专业概述
    深入理解MongoDB的CRUD操作
    第五篇Android--EditText详解
    C. Swap Letters
    vue中keep-alive怎么清除组件的缓存
    hash 表 --- 链地址法解决冲突
  • 原文地址:https://blog.csdn.net/SeaBiscuitUncle/article/details/126551741