第18关精华笔记

第18关精华笔记pdf版——同学记得打开电脑浏览器下载哦!

 第18关精华笔记.pdf 0.3MB 

本关的主要目的,是让大家在代码的设计上更有框架条理。

先把功能框架理清,再丰富每个部分的细节。





顺序结构:

三种图形(带方向的线段,椭圆形,长方形)

解释:

带方向的线段-将流程图中的图形元素连接起来表示流转方向,可在线上添加备注文字

椭圆形-流程图的开始和结束

长方形-流程图中的主要表达的元素,表示一个动作(业务动作、功能动作等)

条件结构:

四种图形(带方向的线段,椭圆形,长方形,菱形

解释:

带方向的线段-将流程图中的图形元素连接起来表示流转方向,可在线上添加备注文字

椭圆形-流程图的开始和结束

长方形-流程图中的主要表达的元素,表示一个动作(业务动作、功能动作等)

菱形:表示逻辑判断,一般会连接Yes或No,两条分支流程

循环结构:

四种图形(带方向的线段,椭圆形,长方形,菱形)

解释:

带方向的线段-将流程图中的图形元素连接起来表示流转方向,可在线上添加备注文字

椭圆形-流程图的开始和结束

长方形-流程图中的主要表达的元素,表示一个动作(业务动作、功能动作等)

菱形:表示逻辑判断,一般会连接Yes或No,两条分支流程

***循环有两种情况,一种是条件判断后进行循环(菱形),一种是结束某个流程后进入循环(长方形)

第18关课后练习

练习-拯救

选择困难症-参考

【参考】

# 帮你做选择之我要吃什么
import random
# 将需要用到的表格和变量放在开头
list_food = ['KFC', '蒸菜馆', '楼下快餐店', '桂林米粉', '东北饺子', '金牌猪脚饭', '三及第汤饭']  # 备选菜单,可自定义。
list_choice = []
# 由于两个原因都包含判断过程,所以,为了让代码更简洁,可将其封装成函数。
def choose(list):,
    while True:
        food = random.choice(list)
        judgement = input('去吃【%s】好不好啊?同意的话输入y,不想吃直接回车即可。'%(food))
        if judgement == 'y':
            print('去吃【%s】!就这么愉快地决定啦!'%(food)) 
            break
# 判断环节
reason = int(input('你不知道吃什么的原因是:1.完全不知道吃什么;2.在几家店之间徘徊(请输入1或2):'))
if reason == 1:
    choose(list_food)
elif reason == 2:
    add = True
    while add:
        choice = input('请输入让你犹豫的店名(注:一家一家输,完成后输入y):')
        if choice != 'y':  # 这个判断语句,是为了不将 y 也添加到菜单里。
            list_choice.append(choice)
        if choice == 'y':
            add = False
    choose(list_choice)          
else:
    print('抱歉,目前还不支持第三种情况——不过,你可以加代码哦。')

练习-模拟广告牌-参考

练习目标

我们会通过今天的作业,用代码模拟一种现实中的场景:滚动的广告牌。

练习要求

实际生活中,有些广告牌是单行滚动的字体。

这个练习会通过新旧知识的结合,用Python实现对这种效果的模拟。

【讲解】

明确目标很重要(所以重复三遍)。

做到后面的步骤,可再点开左侧的“练习介绍”查看。

提出产品需求,形成技术方案

由于是练习,所以是没有让每个人根据自己的生活经验来提需求。

而是直接给定了产品需求:用Python代码模拟单行的滚动广告。

初步形成的技术方案是:print+字符串+循环+time模块(控制滚动速度)。

【讲解】

在这个需求下,稍稍分析即可得:

广告显示:打印字符串;

广告滚动:字符串的改变和循环(注:字符串和列表一样,可以用偏移量来提取数据)。另外,循环的速度影响滚动速度,可以用 time.sleep() 来控制。

为了让这种模拟和实际的更接近,补充一个模块中的方法。

请你试着运行右侧的代码,然后将其注释掉,再用代码完成对广告牌的模拟,广告词可以自己起。

对了,正常的滚动广告是无限循环的。不过,你可以在代码中设置循环次数,只要保证效果即可。

【提示】

关键代码:

`content = content[1:] + content[0]`

【解答】

import os, time
def main():
    content = ' 风变编程,陪你一起学Python '  # 广告词可自定义。
    while True:
        os.system('clear')
        print(content)
        content = content[1:] + content[0]
        time.sleep(2)
if __name__ == '__main__':  # 类里面学到的检测方法,在函数中其实也可以用。
    main()
(0)

相关推荐