A12_for循环与遍历演示档_Python教学视频

Python海龟宝典含200多个原创的用turtle模块制作的创意程序,原名《Python趣味编程200例》。准备参加全国创意编程与智能设计大赛的同学们可以用来做参考。

这是风火轮编程Python初级教程的第12课,下面是用python制作的学习大纲。

李兴球Python for循环与遍历
李兴球Python for循环与遍历

用Python制作的幻灯片类型的作品,本课程主要学习for循环以及遍历等。
以下是完整源代码。
本程序需要sprites模块支持,安装方法为在命令提示符下输入以下命令安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites –upgrade

"""
   第十二课 for循环与遍历
"""
from sprites import *

s = '第十二课 for循环与遍历'
screen = Screen()
screen.bgcolor('blue')
screen.titlebar(False)
root = screen._root              # 窗口对象
root.wm_attributes('-alpha',0.7) # 设置窗口为全透明(0到1.0)
screen.setup(800,800)
screen.tracer(0,0)

# 下面的代码让窗口可以拖动.
oldx = 0
oldy = 0
def startmove(event):
    global oldx,oldy
    oldx = event.x
    oldy = event.y
def stopmove(event):
    global oldx,oldy
    oldx = 0
    oldy = 0        
def movewindow(event):
    global oldx,oldy     
    dx = event.x - oldx
    dy = event.y - oldy
    root.move(dx,dy)
screen.cv.bind("", startmove)
screen.cv.bind("", stopmove)
screen.cv.bind("",movewindow)

# 下面的代码按方向箭头则窗口能上下左右移动
screen.onkeypress(lambda:root.move(10),'Right')
screen.onkeypress(lambda:root.move(-10),'Left')
screen.onkeypress(lambda:root.move(0,-10),'Up')
screen.onkeypress(lambda:root.move(0,10),'Down')
screen.listen()

ft_title = ('楷体',30,'bold')
ft_context = ('宋体',18,'normal')
t = Sprite(visible=False,pos=(-500,100))
t.color('magenta')
clock = Clock()
for x in range(100):
    t.clear()
    t.write(s,align='center',font=ft_title)
    t.wait()
    t.fd(5)
    clock.tick(60)

spacekey = Key('space')     # 空格键
m1 = Mouse()                # 鼠标左键
while not spacekey.down():screen.update()

# 简介
brief ="""
在编程的过程中,我们经常需要重复一些语句的执行。

这个时候就要用到循环控制结构。在Python中主要有

for循环和while循环能重复一些语句的执行。本课主

要学习的内容就是for循环。然后通过做练习对for循环

的学习进行巩固。
"""
if brief!='':  # 如果有课程简介,则生成一个角色,
    ftx = ('宋体',18,'normal')
    简介 = Sprite(visible=False,pos=(0,-200))
    简介.color('white')
    简介.write(brief,align='center',font=ftx)    
    while  spacekey.down():screen.update()    
    while not spacekey.down():screen.update()    

for x in range(66):              # 标题向右消失
    t.clear()
    t.write(s,align='center',font=ft_title)    
    t.fd(10)
    if brief!='':        
        简介.clear()
        简介.write(brief,align='center',font=ftx)
        简介.bk(10)
    clock.tick(60)
简介.clear()     

#以下是显示学习的内容段
studycontent = """
主要学习内容

1、print命令的end参数

2、for循环语法

3、遍历序列

4、求自然数的和

5、求100以内3的倍数和

6、练习与作业
"""
t.color('white')
t.clear()
t.sety(-260)              # 这里修改菜单的显示y坐标
ft = ('楷体',24,'bold')
s = studycontent
while not spacekey.down():screen.update()
#  下面的代码显示主菜单
for x in range(130):
    t.clear()
    t.write(s,align='center',font=ft)    
    t.bk(5)
    clock.tick(60)

def slow_write(t,string):
    """
       t:角色,string:要显示的字
       本函数慢慢的显示字。
    """
    string = string.split('\n') # 换成列表     
    oldxy = t.position()   # 记录老的坐标
    t.goto(-360,330)       # 定位到标题的坐标
    # 显示标题,注意string[0]是一个空行
    t.write(string[1],font=ft_title)
    t.addy(-50)
    for line in string[2:]:    # 每一行字
        for char in line:     # 每一个字符
            t.write(char,align='center',font=ft_context)
            t.wait(0.1)
            cd = len(bytes(char,'gb2312'))
            if cd == 1:
                t.addx(16)
            else:
                t.addx(24)
        t.setx(-360)
        t.addy(-30)
    t.goto(oldxy)
     
s1 = """
1、print命令的end参数

我们学习过print命令,它有一个叫sep的参数。这是指定分隔符号的。
print命令还有一个叫end的参数,它是用来指定结束符号的。
其实print命令默认的结束符号为换行符。所以print()这样的语句
就是打印一个换行。而print(32,end='Py')则会打印32Py。
像print('a','b',sep='#',end='c') 则会打印a#bc。
"""
def press1():
    t.clear()
    slow_write(t,s1)
    while not spacekey.down():screen.update()
    t.clear()
    t.write(s,align='center',font=ft)    
screen.onkeypress(press1,'1')


s2 = """
2、for循环语法

for循环的语法如下所示:

   for 变量  in 序列:

      语句组

在for循环的语法中,变量的名称是自己取的,序列则是元组、
列表、字符串、range。for循环中序列后面的冒号是必不可少
的。语句组中的每一条语句相对于for的缩进要一样。
如果语句组只有一条语句,则可以放在冒号后面。

for循环的本质是逐个访问序列中的数据并赋值给变量,
然后就执行一次语句组,直到所有数据访问完毕或执行相关命令强制退出。
   
如下面的for循环会依次打印range命令所产生的每个数据。

for n in range(10):
    print(n,end=',')   

这个for循环中的n会依次得到从0到9的数字,每得到一次就会打印一次自己,
所以这个for循环中的print语句执行了10次。
"""
def press2():
    t.clear()
    slow_write(t,s2)
    while not spacekey.down():screen.update()
    t.clear()
    t.write(s,align='center',font=ft)    
screen.onkeypress(press2,'2')


s3 = """
3、遍历序列

用for循环逐个访问序列中的每一个数据叫遍历序列。其实,
我们刚才遍历了range序列。当然也可以遍历字符串、元组及列表。

下面的程序遍历了一个字符串。
    for char in '风火轮编程':
        print(char,end='')

下面的程序打印列表中的每个数据。
    for n in [32,76,8]:
        print(n,end=' ')

下面的程序也是遍历了序列。
    numbers = [61,32,76,89]
    for index in range(len(numbers)):
        print(numbers[index],end=' ')

下面的程序打印了列表中的颜色单词。
    for c in ['red','blue','cyan']:
       print('这是',end=':')
       print(c)
"""
def press3():
    t.clear()
    slow_write(t,s3)
    while not spacekey.down():screen.update()
    t.clear()
    t.write(s,align='center',font=ft)    
screen.onkeypress(press3,'3')


s4 = """
4、求自然数的和

现在,我们来用for循环来求从1到10的所有自然数的和。
怎么编呢?我们可以首先把这些数字遍历一下。写出下面的代码:
 
    for n in range(1,11):
        print(n)

接下来,我们只要稍微修改程序,把n都累加到一个变量中去就行了。
这个变量用来保存所有自然数的和,把它叫s。程序就变成下面这样了。
    s = 0
    for n in range(1,11):
        s = s + n

上面的程序相当于对s进行了累加,累加的数字就是从1到10这些数。

如果还不能理解上面的程序,可以这样来理解,首先,
n 是等于1的,那么 s 就等于 0 + 1,结果s的值变成1了,然后
n 变成了2,那么 s 就等于 1 + 2,结果s就变成了3,接着
n 变成了3,那么 s 就等于 3 + 3,结果s的值是6了,依此类推...
n 变成了10,那么 s 就等于45 + 10,结果s变成了55。

最后,当for循环结束后,我们应该打印一下s的值。
"""
def press4():
    t.clear()
    slow_write(t,s4)
    while not spacekey.down():screen.update()
    t.clear()
    t.write(s,align='center',font=ft)    
screen.onkeypress(press4,'4')


s5 = """
5、求100以内3的倍数和

要求出100以内所有3的倍数的和的话。首先,需要找个方法,

至少我们能把所有是3的倍数这些数能列出来。

那么如何才能得到这些数据呢,我们可以使用range(3,100,3)。

由于步长为3,所以它产生的所有数据都是3的倍数。

那么程序就较简单了,用for x in range(3,100,3)遍历这些数据,

依次把它们的和累加起来就可以了。
      
"""
def press5():
    t.clear()
    slow_write(t,s5)
    while not spacekey.down():screen.update()
    t.clear()
    t.write(s,align='center',font=ft)    
screen.onkeypress(press5,'5')


s6 = """
6、练习与作业 

★ 用for循环编制程序让海龟前进20个单位打一个直径为10的红点,
   如此重复10次。
  
★ 用for循环编制程序打印10行星号,每行有10个星号。

★ 用for循环编制程序让海龟画一个红色的边长为100的正方形。

★ 用for循环编制程序求100以内(不包括100)的所有偶数的和。

★ 用for循环编制程序用海龟从上到下每隔10个单位画10条
   长度为100的平行线条。
      
"""
def press6():
    t.clear()
    slow_write(t,s6)
    while not spacekey.down():screen.update()
    t.clear()
    t.write(s,align='center',font=ft)    
screen.onkeypress(press6,'6')


byebye = """
下次再见!
"""
def pressq():
    t.clear()
    t.color('cyan')
    t.home()
    t.write(byebye,align='center',font=('宋体',38,'bold'))
    while not spacekey.down():screen.update()
    screen.bye()    
screen.onkeypress(pressq,'q')


screen.mainloop()

以下是付费内容,包括播放视频、python源代码及素材等等。

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » A12_for循环与遍历演示档_Python教学视频

李兴球Python微信公众号文章列表

Python游戏海龟模块教程说明书与案例若干免费发放

爱的纪念_Python创意情景动画源代码解析

少儿Python编程到底学些什么?这些代码或许回答了问题.

Python编程家长会花絮_萍乡中小学Python家长会现场

火星路上等着你_少儿从小学什么最好呢?

国家大力整顿教育培训机构,Scratch或Python少儿编程还有得教吗?

鸿蒙系统支持Python开发_可视化编程特别兴趣小组

Scratch作品转Python作品_小猴接桃

python海龟数据可视化。第七次全国人口普查历年数据图表

你的孩子Python编程学到哪个阶段了?给孩子报编程的家长,务必仔细一读。

五一神女来对话,看看她们聊什么?赠Python教案等。

五一快乐有大礼,告诉大家我是如何上Python课的。

Python名堂多,趣味到处有,劈开机械手,帧帧是图片。速算达人之猫狮大战正在进行。 逐字动画不独享,自动生成皆有它。2行代码自动生成字幕gif动画。 Python之潮来临,我在安源区教师科技创新能力的Python讲座

小心你的Python程序,它会是你的一面镜子。小方块闯迷宫.py源代码简析。送Scratch算法集。?

铃儿响钉铛_音效怎能忘_Python配音之Pygame混音器

人面桃花相映红_winsound模块简介

《Python昨晚我想你了》_开源的游戏海龟模块实例案例浅析

《八猫联动初体验》_来自游戏海龟模块的问候

喜爱春天的人儿啊 心地纯洁的人_Python逐行像素显示

旋转之三叶炫彩扇_蟒蛇与海龟的表演

彩虹欢迎字幕_三模合体滚图形

《Python海龟宝典》简介

100%错误的算法还在用,明明没有错别字,说我有11个错别字

奇怪的Python代码,谁能帮我解释一下??

人造地球系统让人类文明充满整个宇宙之Python32768版

深夜,是什么把你的大脑搞成一团浆糊!再谈少儿编程!

5线城市萍乡的少儿Python寒假班学的是什么内容?

关于纯少儿编程课程进化的自然选择

Python海龟画图经典作品_国庆中秋双重喜庆源代码免费下载

海龟为什么要自杀!turtle制作游戏秘籍之一

朋友,你是否知道我在仰望着你_Python神笔马良案例集

酷酷的爆炸效果_Python海龟画图不仅仅是画图

虫子满屏爬_三bug多线程示例程序浅析 少儿Python视频课程A级简介

给的gif图片加文字水印_拆帧与合帧(免费下载180个Python创意源码

用Python制作酷炫图形之如意金箍棒_颜色增加模块应用

简单的用Python做酷炫图形与动画

sb3转exe,sb3素材提取器,编程小子apk, 未公开的pygame游戏集/scratch/python少儿编程免费下载集合

夜幕下的霓虹

学本领,探索更大的世界!

李兴球博客 风火轮编程主页
error: Content is protected !!