栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础:第013课——动画及人机交互初步

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础:第013课——动画及人机交互初步

观看视频

内容介绍
  1. 本次课将通过示例来复习:
    • pygame游戏开发的总体结构
    • while、for循环
    • if条件语句
    • rect对象的移动
  2. 学习键盘事件的处理
    事件说明
学习 while 循环示例

示例1:

i = 1
while i <= 5:
	print("current number: %d"  % i)

上面示例是一个无限循环,因为,i <= 5 这个条件的值总是True,要避免无限循环,就需要让while语句的条件的值为False,因此,需要这样更改:

i = 1
while i <= 5:
	print("current number: %d"  % i)
	i = i + 1  #或者:i +=1

示例2:
下面的示例是,只有当输入的值为e时结束循环

str = input("请输入一个字符: ")
while str != 'e':
	str = input("请输入一个字符: ")
print("Game Over! ")
for循环

为序列(或其他可迭代对象)中每个元素执行代码块。我们已经学过的有:list、tuple、string
示例3

list1 = [1,3,5]
tuple1 = (2, 4, 6)
str = 'bird.'
for e in list1:
	print(e)
print('-'*10)
for e in tuple1:
	print(e)
print('-'*10)
for e in str:
	print(e)

关于range函数:

>>> range(0, 10) 
range(0, 10) 
>>> list(range(0, 10)) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> tuple(range(0, 10)) 
(0, 1, 2, 3, 4, 5, 6, 7, 8,9)

pygame游戏开发的总体结构


查看事件种类

import pygame, sys

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("小小工坊")

ball = pygame.image.load("pygame/images/ball.gif")
ball_rect = ball.get_rect()
speed = 1

while True:

    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if e.type == pygame.KEYDOWN:
            if e.key == pygame.K_RIGHT:
                ball_rect.left = ball_rect.left + 5
            if e.key == pygame.K_LEFT:
                ball_rect.left = ball_rect.left - 5
    screen.fill((255,0,0))
    ball_rect.move(speed, speed)
    screen.blit(ball, ball_rect)
    pygame.display.update()
range() 函数用法

Python3 内置函数

Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型。

Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。

函数语法
range(stop)
range(start, stop[, step])

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
实例
>>>range(5)
range(0, 5) 
>>> for i in range(5):
...     print(i)
...
0 1 2 3 4
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(0)) []

有两个参数或三个参数的情况(第二种构造方法):

>>>list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25] 
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8] 
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(1, 0))
[] 

Python3 内置函数

Python3 日期和时间

Python MongoDB

2 篇笔记

Python3.x 中 range() 函数返回的结果是一个整数序列的对象,而不是列表。

>>> type(range(10))

当你 help(range) 时会看到:

Return an object...

所以,不是列表,但是可以利用 list 函数返回列表,即:

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range 与 list:

a=range(5)     # 默认从 0 开始, 在 5 以内, 到不了 5
print(list(a)) # [0, 1, 2, 3, 4]

a=range(1,5) # 给出起点, 终点(到不了的)
print(list(a)) # [1, 2, 3, 4]

a=range(1,11,2) #  给出起点, 终点(到不了的), 步长(正整数,负整数)
print(list(a)) # [1, 3, 5, 7, 9]

a=range(2,2468,2) # 最大下标这样获得:len(a)-1
print(a[0],a[1],a[2],a[len(a)-1]) #  2 4 6 2466

a=range(100,80,-2) # 前大后小的,步长应该是负数
print(list(a)) # [100, 98, 96, 94, 92, 90, 88, 86, 84, 82]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号