欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    初中信息技术-python编程【用Python让生活更美好】.docx

    • 资源ID:35579875       资源大小:1.47MB        全文页数:58页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    初中信息技术-python编程【用Python让生活更美好】.docx

    初中信息技术python编程【用Python让生活更美好】作为“胶水语言”的Python以简单易学、免费开源、可移植性强等特点成为了人类 工作和生活中的好帮手,并在Web开发、大数据开发、人工智能开发和嵌入式开发等 领域均有广泛的使用。由于Python语言自身的语法结构比拟简单易学,而且有丰富的 开发库支撑,所以未来Python的应用前景还是非常广阔的,接下来我们就认识下 Python语言在数据爬取、数据可视化、人工智能等方面的应用吧。通过本章的学习,你将掌握以下技能:* 爬取网络数据* 制作二维码名片* 创作Python弹球游戏* 考试成绩可视化* 识别图片中的数字* 用microbit识别姿势微工程1网络爬虫爬数据随着信息化社会的到来,万维网已经堆积了大量信息,这就需要我们寻找一种方 式来帮助我们过滤掉无用的信息,并且筛选更多有用的信息作为反应,于是网络爬虫 技术应运而生。在日常生活中,同学们可能听说过网络爬虫这个词,但到底什么是爬 虫,如何利用网络爬虫爬取自己需要的数据呢?通过本节的学习,你将掌握以下技能:* 了解网络爬虫的工作过程*编写程序爬取B站弹幕B、站点不让爬取的数据偷偷爬取不被发现就好C、遵守Robots协议,不做“恶意爬虫”D、网络爬虫有风险,最好不要学微工程2二维码名片自己做二维码这个由黑白小方块组成的图案已经成为了我们生活当中很重要的一局部, 付款的时候我们可以扫它、聊天软件相互加好友也可以扫它、登录网站时也提供了二 维码登录功能总而言之,二维码无处不在,通过扫描二维码总能得到你想要的东 西,那么二维码的工作原理是什么呢?如何制作属于自己的二维码名牌呢?通过本章的学习,你将掌握以下技能:*明确二维码的工作原理*制作自己的二维码名片专题一:初识二维码对于二维码我们已经很熟悉了,那么二维码中的黑白小方块儿究竟奇妙在哪里,为什么随便一扫总能给你带来你所需要的东西?1.1 二维码的诞生S/N33501061提起二维码(QR Code)的诞生就不得不 提到一维码(Bar Code ),也就是大家熟悉的 条形码。一维码诞生于上个世纪60年代至70 年代,条形码联合创造人诺曼约瑟夫伍德兰德创造了一维码,该技术的诞生几乎 改变了全球的商业活动形式,使得收银员的工作效率变得更高效,顾客也可以节省更 多时间。二维码的诞生可以追溯到上个世纪60年代之后的日本,首个公开发布的二维码是1994年日本电装公司公布的QR Code , QR的全称就是“Quick Response”,翻译过来就是快速响应,意味着追求高速读取能力的研发概念,相较于一维码数据容量较小、只能 包含字母和数字、条形码尺寸相对较大、条形码遭到损坏后便不能阅读等缺点,二维 码具有数据容量更大、超越了字母数字的限制、条形码相对尺寸小、具有抗损毁能力 等优势。其实在发布二维码之初,日本电装公司并没有很大的把握可以让二维码完全 取代传统的条形码,真正让二维码发扬光大的是两个第三方支付公司:支付宝和微信, 这种新型的支付方式支付宝是第一个吃螃蟹的人,并且让二维码支付正式步入了普通 人的视野并被人们所熟知。1.2 二维码的工作原理二维码是一种矩阵式二维条码(又称棋盘式二维条码),它是在一个矩形空间通 过黑、白像素在矩阵中的不同分布而进行编码的。在矩阵相应元素位置上,用点(方 点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排 列组合确定了矩阵式二维条码所代表的意义。它边上有三个起到定位作用的大方块, 这能保证我们在扫码时不管手机怎样放置都能得到信息。简单来说,二维码其实是一种开放性的信息存储器,它能将固定的信息存储在自 己的黑白小方块之间。而且它可以无限使用,并且对识别器没有任何要求,任何设备 只要带扫一扫的功能,都可以将它所存储的信息读取出来。二维码可以存储各种信息, 主要包括网址、名片、文本信息、特定代码等。二维码一共有40个尺寸,官方叫版本Version。Version 1是21 X21的矩阵, Version2是25 x 25的矩阵,Version3是29义29的矩阵,每增加一个Version ,就会增加4的尺寸,公式是:(V-1)*4 +21 ( V是版本号),最高Version是40 ,尺寸为 (40-1)X4+21 =177 ,所以最高是177X177的正方形。这里说的尺寸大小不是指生成图 片的大小,而是指二维码的长宽被平均分成多少份1.3 二维码应用场景二维条码具有储存量大、保密性高、追踪性高、抗损性强、备援性大、本钱廉价 等特性,这些特性特别适用于表单、平安保密、追踪、证照、存货盘点、资料备援等 方面,总得来说,二维码在生活中主要应用于以下场景:1)电子名片传统的纸质名片能囊括的信息非常有限,很多商务人士都开始将个人信息做成电 子名片二维码,打印在自己的纸质名片上,不仅可以比传统纸质名片囊括更多的信息, 而且扫描电子名片二维码即可保存联系人信息到手机通讯录,提供了非常大的便利性。 此外,二维码名片对于信息的维护非常方便,当个人信息发生变化时,只需在后台修 改即可。2)产品包装将有关产品的品牌故事、使用方法、制作过程做成一个视频、音频或者图文二维 码,顾客扫描二维码即可观看,在让顾客更了解产品的同时也增加了顾客的粘性。此 外,使用动态二维码还可以在后台看到这个二维码被扫描了多少次,在什么地点,什 么时间被扫描的等市场详细信息。3)食品二维码溯源将食品的生产和物流信息加载在二维码里,可实现对食品追踪溯源,消费者只需 用手机一扫,就能查询食品从生产到销售的所有流程。通过为每件产品建立唯一的“身 份证条码”,可以实现对每件产品的物流、信息流的监管和控制,具备了强大的原材料 采购追溯、生产环节追溯与销售流向追溯等功能,实现从产品生产到消费终端的全程 监控和管理。4)餐厅的应用通过二维码为商家建立一个手机电子菜单,餐饮店可以很轻松的将餐饮文化、菜 品介绍等信息按照相关的指引录入。用户通过扫码获得该手机网站的跳转链接获取商 家相关信息。5)手机购物“以二维码为入口的移动超市”是移动终端普遍应用和电子商务模式趋向成熟的标 志和产物。“移动超市”将移动电子商务推向一个新台阶,它主要研究开发基于移动终 端的移动交易和商家营销的应用,以二维码为通道,实现了消费者随时随地快速浏览 真实商品,快速购物的过程。此外,二维码还被广泛应用于二维码印章、票务销售、证照应用、产品溯源、会 议服务等方面,随着物联网产业的蓬勃开展,相信更多的二维码技术应用解决方案被 开发出来,应用到各行各业的日常经营生活中来,届时,二维码成为移动互联网入口 真正成为现实。专题二:制作二维码名片我们日常接触到的二维码以支付二维码和网站、公众号二维码为主,其实利用二 维码我们也可以制作个人名片,让我们借助QRCode库制作属于自己的二维码名片吧。2.1 安装第三方库在编写程序前,我们需要先安装QRCode库。找到QRCcode库的方法有两种:1、点击离线版海龟编辑器菜单栏中的库管理,在弹出的库管理界面选择数据处理, 下拉找到qrcode库;2、在搜索框内输入“qrcode”点击搜索即可找到qrcode库。然后点击安装即可O库管理库管理qrcodeQ Q X;1 r-yi . 1 吊用库官方璇或爬虫数据处理图表数学计算图像处理人工智能界面panoasd® 一Pandas库经常被用于数据读取与处理。强大易用的数据分析方法,以及优 化的数据处理速度,使得Pandas成为数据科学家最钟爱的Python库之一。rjiebajieba是一个中文分词库,它可以把中文句子划分成词组,以便进一步进行 自然语言处理。wordcloudworddoud意为“词云”,它可以生成词云图,对文本中出现频率较高的“关键 词”予以视觉化的展现,直双展示文本关键内容及主旨。qrcodeqrcodel一个二维码库,它可以生成二维码。支持设置二维码图像的尺寸 等信息。2.2 制作二维码名片第一步:导入qrcode库,并编写生成第一个带有文字的二维码图片。注意,在运 行程序前,需要将代码文件先保存起来。2 import qrcode 3img = qrcode.make('HelloPython!1)4 img.save('我的名片.png')img.show()程序中调用了 qrcode的make函数生成了一张包含了“Hello , Python ! ”的二维码图 像,然后通过save函数将图像以我的名片.png”的形式保存了下来。当运行程序时, 就会在程序文件保存的目录下生成一张二维码图片,该图片是qrcode以默认方式生成 的二维码,qrcode.make()是qrcode提供简单调用接口,其生成的二维码图片尺寸为 21 X21o最后调用show函数自动翻开图片。注意,在生成二维码前,一定要将程序文件先保存到计算机。我的名片.png制作二维码名片.py第二步:生成更复杂的二维码图片。在第一步中生成的二维码尺寸太小,那么如 何生成不同尺寸的二维码呢?接下来我们一起学习qrcode的高级应用qrcode类。 正常生成二维码的步骤为创立QRCode对象、add_data()添加数据、make_image()创立 二维码图像、保存或自动翻开图片。1 #制作二维码名片2 import qrcode34 qr = qrcode.QRCode(5 version=56 error_correction=qrcode.constants.ERROR_CORRECT_L>7 box size=10a8 border=49 )10 qr.add_data('HelloPython!')11 qr.make(fit=True)12 img = qr.make_image()13 img. save('我的名片. png .)14 img.show()程序中生成了一张带有“Hello,Python!”的二维码图片,翻开图片会发现图片的尺寸 比qrcode默认的尺寸大了很多。为了创立不同大小的二维码图片,在程序中调用 QRCode函数定义了一个qrcode类qr , QRCode类的参数有6个,可以根据需要自行选 择,参数的具体含义为:1)version:表示二维码的版本号,取值范围为1到40,最小的版本号是1,对应的尺寸是21X21;2) error.correction:二维码的纠错范围,纠错范围有四个级别,分别是:1 . ERROR_CORRECT_L级另!J : 7%以下的错误会被纠正;2 .ERR0R_C0RRECT_M级另!J : 15%以下的中昔误会被纠正,也是qrcode的默认 级别;.ERROR_CORRECT_Q级别:25%以下的错误会被纠正;3 . ERROR_CORRECT_H级另!J : 30%以下的专笥吴会被纠正。3) boxsize:每个点(方块)中的像素个数;border:二维码距图像外围边框距离,默认为4,而且相关规定最小为 4;4) image_factory:选择生成图片的形式,默认为PIL图像;5) mask_pattern:选择生成图片的的掩模。随后对象qr调用add_data函数传入数据,add_data函数原型为:add_data(str,optimize=20)其中str为需要传入的数据;optimize为优化参数,optimize的值决定了数据将被 拆分为多个块来进行优化,以找到一个长度至少为这个值的足够简洁的方式来生成二 维码,默认值为0o传入数据后qr调用make函数,fit=true的意思是将会找到适合数据的最小尺寸, 随后调用makejmage函数创立二维码图像,函数原型为:make_image(fill_color=None, back_color=None, imagefactory=None)如果要让二维码有颜色,可以在这里设置fiLcolor属性,filLcolor为像素点的颜 色,back_color为背景色,imagefactory为生成图像的形式,默认为PIL图像,三个参 数可以为空。最后保存图片并自动翻开图片即可。第三步:生成带图片的二维码名片。通常我们看到的二维码中间都有一张图片或 者用户头像,如何才能生成这样的二维码图片呢?我们需要利用PIL库中image模块 的paste函数实现,函数原型为:img.paste (path, where, mask=None)其中,img为image对象;path为所添加图片;where为表示图片所在二维码的横 纵坐标,为一个元组;mask为填充所用的模板图像,可以为空。我们接着步骤二的程 序继续编写为二维码添加图片的程序。14 img = qr.make_image(fill_color='orange'back_color='white')#导入logo图像,与程序在同一目录下15 logo_img=Image.open('Panda.jpg')img_h = img.size16 #参数设置:Log。的大小factor = 417 size_w = int(img_w / factor)size_h = int(img_h / factor)18 logo_wi, logo_h = logo_img.size部艮制10go图片的尺寸19 if logo_w > size_w:20 logo_w = size_wif logo_h > size_h:21 logo_h = size_h#重新设置logo的尺彳22 logo_img = logo_img.resize(logo_wJ logo_h), Image.ANTIALIAS)#得到画图的x, y坐标,居中显示23 x= int(img_w - logo_w) / 2)y = int(img_h - logo_h) / 2)24 #黏贴10go照img.paste(logo_img> (x> y), mask=None)25 #保存图片img.save('我的名片.png')26 img.show()程序中make_image()将二维码图像设置成了白底橙点的 图片,并随后导入作为logo的一张熊猫图片,如果logo图 片和程序不在同一目录,注意要写全路径。接下来就需要设 定logo图片在二维码图片中的大小了,程序中定义了 factor 变量来限制log。图片占据二维码图片的最大尺寸,如果logo 图片过大那么log。的宽和高设定为计算出的Size_w. size_h的值,随后通过resize函数 重设logo图片的大小,Image.ANTIALIAS是抗锯齿的意思;最后根据二维码尺寸、 logo图片尺寸得出logo图片的黏贴位置即可。扫描生成的二维码发现无法出现扫描结果,还记得QRCode函数中的 errojcorrection对应的四个纠错级别吗?我们需要将提高二维码的纠错级别,即将 error_correction 的值由 ERROR_CORRECT_L 改为 ERROR_CORRECT_Ho 重新生成二 维码,看看是否可以正常扫描。牛刀小试将factor的值修改为2 ,扫一下重新生成二维码,出现什么情况了 ?为什么?巩固与提高1、QRCode函数的容错等级有()个级别。A、3B、4C、5D、62、在利用制作二维码名片时,为了让二维码名片更大一些,需要修改QRCode函 数中的()A、versionB、error_correctionC、boxsizeD、border3、请自己设计一张包含自己信息的二维码名片。专题一:初识爬虫在编写爬虫程序之前,我们需要先了解下网络爬虫的概念、爬虫的基本过程和爬虫的基本架构。1.1什么是爬虫网络爬虫,也叫网络蜘蛛,它是一段自动访问互联网并从中提取数据的程序。我 们浏览的每一个网页都对应着唯一的网页地址,即URL,而一个网页中又包含着指向 其他网页的URL ,这种URL相互指向的关系就形成了互联网。为了从互联网中获取需 要的信息,以前我们需要人工翻开网页进行检索,但是有了爬虫后,我们就可以借助 网络爬虫自动获取网络上的信息并从中提取有价值的数据。网络爬虫按照系统结构和 实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络 爬虫、深层网络爬虫。URL是统一资源定位符(Uniform Resource Locator )的英文缩写,也就是我们常 说的网址,比方大家熟悉的百度搜索地址就是一个URLO互联 网上的每一个URL都是唯一的,URL指出了资源的具体位置以及浏览器如何处理这些 资源。在大数据时代,信息的采集是一项重要的工作,因此我们可以使用网络爬虫对数 据信息进行自动采集并合理处理这些信息以方便我们的工作和生活,比方我们可以爬 取热门新闻形成一个新闻聚合阅读器、爬取好笑的故事制作一款爆笑故事APP、爬取微工程3游戏创作初体验在学习图形化编程的时候想必同学们做过许多好玩的游戏,既然Python如此强大, 那么使用Python能不能做游戏呢?当然可以,只是Python游戏编写需要借助一个叫做Pygame的第三方库,想不想试试使用Python编写小游戏呢?让我们开始吧!通过本章的学习,你将掌握以下技能:*明确Pygame的使用方法*制作弹球小游戏专题一:Hello, Pygame还记得我们如何使用Python打印输出“Hello , Python"吗?如果想将“Hello , Python”在单独的窗口中显示,要如何做呢?我们可以借助Pygame实现。Pygame是一组功能 强大而有趣的模块,可以用于管理图形、动画乃至声音,让你能够更加轻松的开发复杂的游戏。让我们从“Hello , Pygame”开始认识下Pygame吧!L1 初识 Pygame在编写程序前,我们需要先安装Pygame库,点击菜单栏中的库管理,在库管理界面选择游戏中的Pygame ,然后点击安装即可。库管理例pygame、pygame L9Q Q X俞常用库 官方 游戏 爬虫 数据处理 图表 和学计苴Pygame,Pygam上用于开发2D游戏的Python库,也是最受欢迎的Py&on库之一。学会使用"game库,我们能做出各种好玩有趣的游戏及互动程序。Pygame Zero约后 Pygame Zero,是一个基于Pygam呦)游或编程框架。它可以更容易地编辑游 宓出 戏,无需模板、不用编写事件循环,也无需学习复杂的Pygame API。爬虫在使用Pygame之前我们需要将Pygame库导入到Python程序中,然后就可以使用Pygame编写游戏了 ,首先我们先看下Pygame编写游戏的基本结构。1 # pygame初识import pygame2 import sys 4#初始化游戏并创立第一个屏幕对象5 pygame.init()screen = pygame.display.set_mode(600 500)6 pygame.display. set_caption(' Hello., Pygame')#开始游戏主循环7 while True:8 #监视键盘和鼠标事件for event in pygame.event.get():9 if event.type = pygame.QUIT:10 sys.exit()pygame.display.flip()运行该程序可以看到一个标题为“Hello , Pygame”黑色的Pygame窗口。程序中除 了导入pygame模块外还导入了 sys模块,这是因为玩家在退出游戏的时候,需要使用 是sys模块的exit。退出游戏。pygame.init()用于初始化背景设置,让Pygame能正确的 工作,初始化完后需要创立一个显示窗口 screen ,游戏中的所有图形元素都将在其中 被绘制。$0匚1110(函数的参数(600,500)为一元组,指定了游戏窗口的尺寸, display.set_caption0主要是用于为游戏窗口设定标题。对象screen是一个Surface对象, 什么是Surface对象?不单screen是一个Surface对象,Pygame游戏中的每一个元素都是一个Surface对 象,你可以将Surface简单理解成一个需要不断刷新的画布。如果在生成的Surface对 象screen上绘制图像时,就需要我们通过游戏主循环不停的在screen上进行游戏其他 图形元素的绘制。游戏的主循环由while循环控制,循环结束的条件由for循环内的程序决定,for循 环主要用于负责监测键盘和鼠标事件,if语句里表示如果检测到鼠标点击了窗口右上 方的关闭按钮时,那么调用sys模块的exit。退出游戏。因此screen是不断刷新的,因为我们需要调用了 。让最近绘制 的屏幕是可见的,display.flip。负责不断更新屏幕以显示游戏中其他元素的新位置,并 在原来的位置隐藏元素,从而营造平滑移动的效果。1.2 Hello, Pygame那么如何跟Pygame打招呼呢?如果想在Pygame中显示文本内容就需要先创立文 本对象,然后将文本“绘”到screen中。891011121314151617181920pygame.display. set_caption(' Hello.,Pygame')#创立文本对象(None, 60)textimage = myfont. render('Hello,Pygame,True, (255, 255,255)#开始游戏主循环while True:#监视键盘和鼠标事件for event in pygame.event.get():if event.type = pygame.QUIT:sys.exit()screen.fill(255, 0, 0)screen. blit (textImage., (200, 200)pygame.display.flip()Hello,PygameHello,PygameHello5Pygame程序中创立了一个文本Font 对象 myfont , font.Font。里第一个 参数表示文本的字体,None的话 那么表示使用Python的默认字体, 第二参数表示字体的大小;因为 文本绘制进程是一个重量级的进 程,比拟耗费时间,常用的做法 是先在内存中创立文本图像,然 后将文本当作一个图像来渲染,render。里的第一个参数是文本内容,第二个参数是抗锯齿,第三个参数是一个RGB颜色值。最后通过screen.blit()将文本绘制在screen 上,blit()的第二个参数为文本显示的位置,要注意:Pygame的坐标原点在屏幕的左上 角,X轴为水平方向向右并逐渐增加,y轴为垂直方向向下并逐渐增加。为了让屏幕更 好看些,程序中通过screen.fW(255,0,0)为窗口填充了红色背景。通常,对于RGB值,我们可以提前定义变量,比方RED=(255,0,0),那么为窗口填 充背景色时为语句就变成了 screen.fill(RED)o专题二:制作弹球游戏在学习图形化编程时,想必大家都做过弹球游戏,那么使用Pygame要如何实现呢? 在编写程序之前,我们需要先学习Python中很重要的概念类。2.1 类的初识我们之前学习过很多的库,Requests库、Pygame库在使用这些库制作作品时我们都会创立一个对应的对象,对象其实是程序组织代码的方法。在Python中, 对象是由“类”定义的,我们可以把“类”当成一种把对象分组归类的方法。例如动物是 一个类,那么熊猫就是动物的一个具体实例,也就是对象。在Python中以关键字class 定义类,格式为:class name:def func():动物可以有吃东西、跑、跳等一系列动作,我们可以称之为函数或方法,作为对 象的熊猫具备动物的一切动作(函数),当然不同动物跑的方式可以不同,但是他们 都会跑。那么“类”到底怎么使用呢?接下来我们通过弹球游戏体验下Python中的类。2.2 编写弹球游戏玩过弹球游戏的同学都知道,弹球游戏中需要有一个用于接球的挡板和一个在舞 台中随意弹跳的球。所以我们需要创立挡板和球类。第一步:创立挡板类,选好用于表示挡板的图像后,我们需要将其显示在屏幕底 部中间,我们创立的挡板的类命名为Paddle ,程序编写完成后保存为paddle.py.1 #挡板类 2 import pygame 34 class Paddle:5 def _init_(self,screen):6 丽始施板并设置其初始位置7 self.screen=screen8 #加载挡板图像并获取其外接矩形9 self.image=pygame.image.load('paddle.png')self.rect = self.image.get_rect()10 self.screen_rect=screen.get_rect()#将挡板放在扇幕底部中间一1112 def blitme(self):13 #在指定位置绘制挡板self.screen.blit(self.imageself.rect)Paddle类有两个方法,其中_init_()接受两个参数:引用self和screen , self就是 实例对象本身,此外,第二个参数指定了挡板绘制到什么地方。我们调用了 。加载图像,并将该图像存储到了 self.image中。加载图像后,我们 使用get_rect()获取相应挡板的属性rect , rect为挡板的外接矩形,在处理rect对象时, 可使用矩形的四角和中心的x、y坐标。随后程序中设置了挡板中心的x坐标centerx 为屏幕的矩形的属性centerx,挡板的下边缘坐标bottom为屏幕矩形下边缘的坐标 bottom ,这样就将挡板的位置定在了屏幕下方的居中位置。方法法blitme()根据self.rect 指定的位置将挡板绘制到屏幕上。第二步:在屏幕上绘制挡板。因为我们为挡板类单独建立了一个文件,因此我们 需要在弹球游戏文件中导入Paddle类:from paddle import Paddle ,要在屏幕中绘制挡 板,需要先创立挡板对象paddle,随后在程序主循环中paddle需要调用自己的blitme 方法,将自己绘制在屏幕中。为了让屏幕好看些,也可以将屏幕的背景色调整为白色。1 #弹球小游戏import pygame2 import sys5678910111213141516171819205678910111213141516171819203 from paddle import Paddle# 初始化游戏并创立第一个屏幕对象pygame.init()screen = pygame.display. set_mode( (600, 500) pygame.displayset_caption('弹球游戏')# 创立挡板对象paddle=Paddle(screen)# 开始游戏主循环while True:#监视键盘和鼠标事件for event in pygame.event.get():if event.type = pygame.QUIT: sys exit()paddle.blitme()pygame.display.flip()第三步:通过一、第三步:通过一、一键控制挡板的左右移动。因为挡板也需要监测键盘的操作,因此我们可以将游戏主循环中for循环局部的程序和挡板的键盘监测程序结合起来编写。#挡板移动def paddle_move(self):#监测键盘和鼠标的事件for event in pygame.event.get():if event.type = pygame.QUIT: sys.exit()elif event.type = pygame.KEYDOWN:if event.key = pygame.K_RIGHT:self.rect.centerx += 20elif event.key = pygame.K_LEFT: self.rect.centerx -= 20在Paddle类中,我们另外定义了一个新的函数paddle_move(),参数只有一个:引用self, for循环内的程序一方面监测玩家是否点击了窗口右上角的关闭按钮,另一方面还要监测是否有键盘被按下,如果按下的键为箭头-pygame.K一RIGHT,那么将挡板centerx增加20 ,如果按下的键是箭头-pygame.K_LEFT ,那么将挡板centerx减少20 ,这里的程序暂时没有考虑超出屏幕的情况。最后在游戏主循环里通过执行paddle. paddle_move()来控制挡板的移动。14 #开始游戏主循环while True:17181916 screen.fill(255 255, 255)paddle.paddle_move() paddle.blitme() pygame.display.flip()第四步:创立球类。现在已经有挡板,接下来我们编写球的脚本,和挡板一样,选择用于表示球的图像后,需要将其显示到屏幕上,我们创立一个名为Ball类,球的脚本和挡板是差不多的,编写脚本后将程序保存文件名为ball.pyo1 #创立球类import pygame2 import sys3 class Ball:7891011121314151617181920def _init_(self, screen):# "初始鬲球并设置其初始位置self.screen = screen# 加载弹球图像并获取其外接矩形self.image = pygame.image.load('ball.png') self.rect = self.image.get_rect() self.screen_rect = screen.get_rect()为弹球设定五屏幕上的位置一self.rect.x = self.screen_rect.width*©.5self.rect.y = self.screen_rect.height*©.25def blitme(self):#在指定位置绘制弹球self. screen, blit (self. image., self. rect)程序中将球的x坐标和y坐标分别设定为屏幕宽度的一半和高度的四分之一。其 他的脚本和挡板的相同。第五步:让球弹跳起来。球的弹跳其实就是坐标的变化,因此我们在球的_init_() 函数中增加速度变量speed ,并赋值-2,1。除此之外,在编写程序时,我们需要考虑 球碰到边缘的情况,我们需要考虑上、下、左、右四个边缘。181920212223242526272829#球的弹跳def ball_move(self):#球的x、y坐标变化,列表中self.rect.x += self.speed0self.rect.y += self.speedl#如果球碰到左边或右边的边缘,那么将x坐标的增量取反if self.rect.left < 0 or self.rect.right > self.screen_rect.width: self.speed0 = -self.speed0#如果球碰到上边或右边的边缘,那么将y坐标的增量取反if self.rect.top < 0 or self.rect.bottom > self.screen_rect.height: self.speedl = -self.speed1pygame.time.delay(5)程序中定义了一个balLmove的函数,参数为引用self,随后将小球的x坐标增加speed0 , y坐标增力口 speedl,在变化了小球的x、y坐标后检测小球是否碰到了边缘, 当小球外接矩形框的左侧坐标小于0或右侧坐标超过了屏幕的宽度那么说明小球分别碰 到了左边缘和右边缘,那么我们将小球的X坐标增量speedO取反,这样小球就可以原 路返回了;同样的,对于小球碰到上、下边缘的情况处理也是一样的,只不过是将小 球的y坐标增量speed 1 取反。最后一行代码pygame.time.delay(5)的意思是每隔5毫米 变化一次小球的坐标,这是为了防止小球运动的太快人为控制了小球的运动。11 #创立挡板对象paddle = Paddle(screen)12 #创立球对象ball = Ball(screen)13 #开始游戏主循环while True:14 screen.fill(255, 255, 255)paddlepaddle_move()15 ball.ball_move()paddle.blitme()16 ball.blitme()pygame.display.flip()在程序中创立ball对象前我们需要执行from ball import Ball将Ball类导入到弹球 游戏程序中,然后在随后的游戏主循环中调用ball_move()和balLblit(),执行程序后即可看到小球在舞台中弹跳。181920212223242526272829303132333435第六步:小球碰到挡板的反弹。当小球碰到挡板时,小球应该反弹,并且我们需 要设定游戏结束的条件,在编写程序前,我们需要清楚的是:当小球碰到挡板时,运 动状态发生变化的是小球。#球的弹跳def ball_move(selfpaddle):I#球的x、y坐标变化,列表中self.rect.x += self.speed0self.rect.y += self.speedl如果球碰到左边或右边的边缘,那么将x坐标的增量取反if self.rect.left < 0 or self.rect.right > self.screen_rect.width: self.speed0 = -self.speed0如果球碰到上边或右边的边缘,那么将y坐标的增量取反if self.rect.top < 0 or self.rect.bottom

    注意事项

    本文(初中信息技术-python编程【用Python让生活更美好】.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开