少儿编程:python趣味编程第一课
本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的
大家好,我是C大叔,从事少儿编程行业三年有余(2016年从事少儿编程行业,少儿编程概念是2015年在中国正式提出的)。一直以来都是在做scratch,JavaScript以及信息学奥赛C++的讲师,教研等工作,但目前发现python课程非常火爆,为了让小朋友也能更好的学python课程,因此准备开启一系列的专栏,介于我对少儿编程,少儿编程理念,以及对小学生编程学习能力的培养较为熟练,但对于python这门编程语言不是特别熟练(三年内都在从事scratch,JavaScript以及信息学奥赛C++的讲师及教研工作),所以有不足的地方希望大家能够指出来,互相学习。。。先谢谢大家了
- 准备工作
- 环境搭建
- 新建python项目
- 在pycharm中安装pygame
- 正式学习
- 代码及文件导入
- 学习
1.准备工作
1)环境搭建:参考https://www.runoob.com/python3/python3-install.html
2)新建python项目:参考https://blog.csdn.net/discover_thinker/article/details/80238506
3)在pycharm中安装pygame:参考https://www.cnblogs.com/LHJL8023/p/8441016.html
2.正式学习
1)代码及文件导入
复制下面代码到新建的python项目中
import pygame
import sys
pygame.init()
screen = pygame.display.set_mode((1173,502))
pygame.display.set_caption('压扁小鸟')
bg = pygame.image.load("img/bg.jpg")
logo = pygame.image.load("img/logo.png")
bird = pygame.image.load("img/bird.png")
angrybird = pygame.image.load("img/angrybird.png")
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
新建一个文件夹命名为img(如下图)

将下面素材复制到img文件夹中




如图所示

2)学习
(1)编译运行
我们已经复制过来一段代码了,那怎么运行呢?现在点击Run-->Run,选择test01(这里老师新建的python文件命名为test01),如果跟参考教程一样的话应该是demo1,这里默认tese01,选择test01,会弹出一个pygame运行框.


(2)坐标
图上粉红衣服小女孩在第3列,第2排,我们可以简称为她的坐标为(3,2),即可以用(x,y)来表示位置

下图是计算机的坐标系,是以左上角为坐标原点,向右出发x轴上的坐标会增大,向下出发y轴的坐标会增大

刚刚运行出来的框框同学们还记得吗,它的左上角的坐标就是(0,0),向右出发x轴上的坐标会增大,向下出发y轴的坐标会增大,现在我们来给运行出来的这个框框添加一张背景图,也就是画一个背景,图片是一个面,它的坐标点在哪呢?其实跟计算机一样,它的坐标点也是在左上角,也就是说图片是以左上角为坐标点的。那么在哪里画呢?同学们可以看到我们的12行是空着的,我们把鼠标点在第12行,在上面输入下面代码:
screen.blit(bg,(0,0))
上面代码表示的是,把bg(背景)这张图片画在pygame屏幕的左上角,运行后会发现图片左上角与屏幕左上角重叠了
接下来我们再画一只小鸟,我们把它画在(100,200)的位置,即:
screen.blit(bird,(100,200))
这样的话屏幕上就会出现一张背景和一只小鸟了!!!
现在还剩下两张图片,请同学们自己试一下吧?
如果还有疑问可以评论或者私聊哦,也可以关注我的公众号给我发私信,WX公众号为:NOIP信奥网,哈哈哈,听这公众号的名字就知道老师是教信奥赛的。
少儿编程:python趣味编程第一课的更多相关文章
- 少儿编程:python趣味编程第二课,如何在pygame中写文字
python趣味编程第二课:本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的 大家好,我是C大叔,上一篇文章已经跟大家介绍了一款开发 ...
- 第九章:Python高级编程-Python socket编程
第九章:Python高级编程-Python socket编程 Python3高级核心技术97讲 笔记 9.1 弄懂HTTP.Socket.TCP这几个概念 Socket为我们封装好了协议 9.2 cl ...
- Python之路第一课Day7--随堂笔记(面向对象编程进阶...未完待续 )
本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 一.静态方法 通过@s ...
- Python之路第一课Day8--随堂笔记(socket 承接上节---网络编程)
本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程 ...
- Python之路第一课Day6--随堂笔记(面向对象 )
本节内容: 1. 面向对象编程介绍 2. 为什么要用面向对象进行开发? 3. 面向对象的特性:封装.继承.多态 4. 类.方法 一.面向过程 VS 面向对象 1. 编程范式 编程是 程序 员 用 ...
- Python之路第一课Day4--随堂笔记(迭代生成装饰器)
上节回顾: 1.集合 a.关系测试 b.去重 2.文件操作及编码 3.函数 4.局部变量和全局变量 上节回顾 本节课内容: 1.迭代器生成器 2.装饰器 3.json pickle数据序列化 4.软件 ...
- Python之路第一课Day3--随堂笔记(文件操作)
一.集合的介绍 1.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = se ...
- Python之路第一课Day1--随堂笔记
课堂大纲: 一.Python介绍 二.发展史 三.Python 2 or 3? 四.安装 五.Hello World程序 六.变量 七.用户输入 八.模块初识 九..pyc是个什么鬼? 十.数据类型初 ...
- Python之路第一课Day10--随堂笔记(异步IO\数据库\队列\缓存)
本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SS ...
随机推荐
- Spring 中Controller 获取请求参数的方法笔记
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/ ...
- Docker(一)Docker概述
Docker概述 概述 Docker是供开发人员和系统管理员 使用容器构建,运行和共享应用程序的平台.使用容器来部署应用程序称为容器化.容器不是新的,但用于轻松部署应用程序的容器却是新的. 容器化越来 ...
- 尚学堂 217 java中的字节码操作2
package com.bjsxt.test; @Author(name="gaoqi", year=2014) public class Emp { private int em ...
- 观察者模式(Observer Pattern)(二):HeadFirst中的气象站的实现
1 观察者模式的原理,首先由一个主题,当主题发送变化的时候,通知该主题的订阅者 按照上面的分析我们来进行设计 1.抽象主题Subject public interface Subject { publ ...
- 一起玩转微服务(13)——AOP
一.什么是AOP编程 AOP: Aspect Oriented Programming 面向切面编程. 面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP), ...
- 深入浅出腾讯BERT推理模型--TurboTransformers
Overview TurboTransformers是腾讯最近开源的BERT推理模型,它的特点就是一个字,快.本人用BERT(huggingface/transformers)在V100上做了测试,测 ...
- Flask02-Template
## 基础使用 $ vim app/templates/index.html > <html> > <head> > <title>{{title ...
- caffe训练数据流程
cifar10训练实例 1. 下载数据 # sudo sh data/cifar10/get_cifar10.sh 2. 转换数据格式为lmdb # sudo sh examples/cifar10/ ...
- Vue 封装axios(四种请求)及相关介绍(十三)
Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...
- EntityFramework Core 迁移忽略主外键关系
前言 本文来源于一位公众号童鞋私信我的问题,在我若加思索后给出了其中一种方案,在此之前我也思考过这个问题,借此机会我稍微看了下,目前能够想到的也只是本文所述方案. 为何要忽略主外键关系 我们不仅疑惑为 ...