7月15日学习总结

1、IDLE的交互模式和编辑器模式有什么区别?

交互模式主要是输入一句系统就会回复一句,编辑模式就可以把自己所有想的代码全部写完,然后保存再开始运行。

2、如何查看Python的内置函数?

在交互模式中输入dir(_builtins_)就可以查看所有的内置函数

3、Tap键的功能

首先,Tap在python中相当于缩进功能,一个Tap相当于4个空格(默认滴)

其次,是自动填充功能,比如输入pr,按下Tap键就会出现提示款,让你大概回忆起函数的含义

4、变量名通常由字母、数字和下划线组成,但不能以数字开头

5、有些时候怕弄混淆引号,就可以用\进行转义。原始字符串r""" """中间的字符默认不转义。

6、单独一个=是赋值运算符,目的是把等号右边的值赋值到左边,两个==是比较运算符,通过判断两边是否相等,只有Ture和False两种结果。

一些比较运算符:

“!=”是判断左右两边是否不相等

"is"判断两个对象的id 是否相等

"is not"判断两个对象的id是否不相等

7、如果要为一个函数写说明文档,三引号字符,也就是长传字符串合适。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用Python实现俄罗斯方块的代码: ```python import pygame import random # 初始化游戏 pygame.init() # 设置游戏窗口大小 WIDTH = 800 HEIGHT = 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) # 定义颜色 BLACK = (0, 0, 0) WHITE = (255, 255, 255) BLUE = (0, 0, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) # 设置字体 font = pygame.font.SysFont(None, 25) # 定义方块大小 BLOCK_SIZE = 20 # 定义俄罗斯方块类 class Block(pygame.sprite.Sprite): def __init__(self, x, y, color): super().__init__() self.image = pygame.Surface([BLOCK_SIZE, BLOCK_SIZE]) self.image.fill(color) self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y # 定义俄罗斯方块组类 class BlockGroup(pygame.sprite.Group): def __init__(self): super().__init__() self.create_block() # 创建新的方块 def create_block(self): block_type = random.choice(['I', 'O', 'T', 'S', 'Z', 'J', 'L']) if block_type == 'I': self.add(Block(400, 0, BLUE)) self.add(Block(400, BLOCK_SIZE, BLUE)) self.add(Block(400, BLOCK_SIZE * 2, BLUE)) self.add(Block(400, BLOCK_SIZE * 3, BLUE)) elif block_type == 'O': self.add(Block(400, 0, GREEN)) self.add(Block(400 + BLOCK_SIZE, 0, GREEN)) self.add(Block(400, BLOCK_SIZE, GREEN)) self.add(Block(400 + BLOCK_SIZE, BLOCK_SIZE, GREEN)) elif block_type == 'T': self.add(Block(400, 0, RED)) self.add(Block(400 - BLOCK_SIZE, BLOCK_SIZE, RED)) self.add(Block(400, BLOCK_SIZE, RED)) self.add(Block(400 + BLOCK_SIZE, BLOCK_SIZE, RED)) elif block_type == 'S': self.add(Block(400, 0, BLUE)) self.add(Block(400 + BLOCK_SIZE, 0, BLUE)) self.add(Block(400, BLOCK_SIZE, BLUE)) self.add(Block(400 - BLOCK_SIZE, BLOCK_SIZE, BLUE)) elif block_type == 'Z': self.add(Block(400, 0, GREEN)) self.add(Block(400 - BLOCK_SIZE, 0, GREEN)) self.add(Block(400, BLOCK_SIZE, GREEN)) self.add(Block(400 + BLOCK_SIZE, BLOCK_SIZE, GREEN)) elif block_type == 'J': self.add(Block(400, 0, RED)) self.add(Block(400, BLOCK_SIZE, RED)) self.add(Block(400 - BLOCK_SIZE, BLOCK_SIZE, RED)) self.add(Block(400 - BLOCK_SIZE, BLOCK_SIZE * 2, RED)) elif block_type == 'L': self.add(Block(400, 0, BLUE)) self.add(Block(400, BLOCK_SIZE, BLUE)) self.add(Block(400 + BLOCK_SIZE, BLOCK_SIZE, BLUE)) self.add(Block(400 + BLOCK_SIZE, BLOCK_SIZE * 2, BLUE)) # 判断方块是否可以移动 def can_move(self, x, y): for block in self.sprites(): if block.rect.x + x < 0 or block.rect.x + x >= WIDTH: return False if block.rect.y + y < 0 or block.rect.y + y >= HEIGHT: return False return True # 移动方块 def move(self, x, y): if self.can_move(x, y): for block in self.sprites(): block.rect.x += x block.rect.y += y # 判断是否可以旋转 def can_rotate(self): # 获取中心点 center_x = self.sprites()[1].rect.x center_y = self.sprites()[1].rect.y # 计算旋转后的位置 for block in self.sprites(): delta_x = block.rect.x - center_x delta_y = block.rect.y - center_y block.rect.x = center_x - delta_y block.rect.y = center_y + delta_x if block.rect.x < 0 or block.rect.x >= WIDTH or block.rect.y < 0 or block.rect.y >= HEIGHT: return False return True # 旋转方块 def rotate(self): if self.can_rotate(): center_x = self.sprites()[1].rect.x center_y = self.sprites()[1].rect.y for block in self.sprites(): delta_x = block.rect.x - center_x delta_y = block.rect.y - center_y block.rect.x = center_x - delta_y block.rect.y = center_y + delta_x # 创建方块组 block_group = BlockGroup() # 设置时钟 clock = pygame.time.Clock() # 开始游戏循环 running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: block_group.move(-BLOCK_SIZE, 0) elif event.key == pygame.K_RIGHT: block_group.move(BLOCK_SIZE, 0) elif event.key == pygame.K_DOWN: block_group.move(0, BLOCK_SIZE) elif event.key == pygame.K_UP: block_group.rotate() # 检测方块是否可以下落 if block_group.can_move(0, BLOCK_SIZE): block_group.move(0, BLOCK_SIZE) else: # 方块到达底部,创建新的方块 block_group = BlockGroup() # 绘制背景 screen.fill(WHITE) # 绘制方块 block_group.draw(screen) # 绘制分数 score_text = font.render('Score: 0', True, BLACK) screen.blit(score_text, (10, 10)) # 更新屏幕 pygame.display.flip() # 设置帧率 clock.tick(30) # 退出游戏 pygame.quit() ``` 这个代码可以在Python IDE的交互模式下运行,也可以保存为.py文件后运行。运行后,可以使用方向键左右移动方块,使用方向键下加速方块下落,使用方向键上旋转方块。游戏结束时,可以按ESC键退出游戏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值