Python教程

Python教程:包含了所有代写案例以及部分答案

  • 上节课中,我们的飞机已经可以发射子弹了,尽管只有一颗。为什么我只加了一颗?试着多加几颗你就会发现,你得用好几个变量去分别记录它们的xy坐标,在主循环中判断每一颗子弹的状态。你可以用list把程序写得稍稍不那么复杂,但这还没完。别忘了你打飞机的对手–敌机还没有加入到游戏。到时候你又需要更多的变量去记录它们的坐标,去判断它们的状态,去处理敌机、子弹、玩家飞机之间的关系。想想都觉得头大。   于是乎,我之前煞费苦心讲解的面向对象就该派上用场了。我要把子弹相关的东西都封装在一起。 … 继续阅读“【Pygame 课堂】第6课—— 面向对象的游戏设计”

    :
  • 昨天大家是不是都在自己的电脑上搞定了Python环境?或是试用过了在线环境?对了,这里补充两点:我今天发现昨天提供的compileonline.com网站有时候会很慢,甚至无法正常运行,于是我又找了一个:pythonfiddle.com,似乎要快一点,不过好像只能在电脑上的浏览器打开。另外就是,昨天忘了给Mac的同学们说一下怎么打开命令行。Mac上叫做“终端”或者“Terminal”,可以在“应用程序”里找到,也可以直接在& … 继续阅读“【Python 课堂】第2课——print”

    :
  • 字符串和list之间有很多不得不说的事。比如有同学想要用python去自动抓取某个网页上的下载链接,那就需要对网页的代码进行处理。处理的过程中,免不了要在字符串和list之间进行很多操作。   我们先从最基本的开始。假设你现在拿到了一个英语句子,需要把这个句子中的每一个单词拿出来单独处理。   sentence = 'I am an Englist sentence'   这时就需要对字符串进行分割。   sentence.split( … 继续阅读“【Python 课堂】第28课—— 字符串的分割”

    :
  • 在游戏中,一般都有个宿敌什么的。在我们这个打飞机小游戏中,宿敌就是不断从天而降的敌机。它与本机、子弹构成了这个游戏的三个要素:   本机会发射子弹,子弹向上运动 敌机会不停产生,向下运动 子弹碰到敌机,敌机和子弹都销毁,加分 本机碰到敌机,本机和敌机都销毁,游戏结束   这节课就来创造这个宿敌。   同样,为敌机创建一个类:Enemy,类的内容大致与Bullet相似。   class Enemy:     def __init__(se … 继续阅读“【Pygame 课堂】第7课—— 多变的宿敌”

    :
  • 现在到处都说“大数据”,我也跟着标题党一下。今天要说的这个,还算不上大数据,只能说跟以前的习题相比,数据量略大了一点。 前阵子我们做了个抓取热映电影的程序。有个朋友看到了就说,他正好需要一项数据:豆瓣上的电影按评价人数从高到底排序视频教程。他认为,单是评分高低并不能说明一部电影的受关注度,比如有些分超低的奇葩大烂片照样火得很。但豆瓣本身并没有提供类似的功能。所以他想找我帮忙。我说你要排出多少?他说三千部。我说你这是要开录像厅吗!一天看一部也得看个八、九年。他说这你甭管,我 … 继续阅读“Python大数据习题:如何抓取豆瓣上的电影”

    :
  • 昨天的课发出去之后,有不少同学发来了反馈,有完成截屏的,也有遇到问题的。一些问题突然让我意识到,很多地方自己描述得不是很到位,会产生歧义,或者干脆就很难听懂。比如:       我自己不是Mac党,手边也没有Mac,所以不知道Mac上还有控制台(console)和终端(Terminal)之分。我想说的其实是终端。Mac的同学们可能要多自己摸索一下了。       另外我之前说了命令行下和在线编辑器两种输代码的方式,但其实这两种是不太一样 … 继续阅读“【Python 课堂】第3课——IDE”

    :
  • break是彻底地跳出循环,而continue只是略过本次循环的余下内容,直接进入下一次循环。   在我们前面写的那个统计分数的程序里,如果发现有成绩不足60分,就不记入总成绩。当然,你可以用if判断来实现这个效果。但我们今天要说另一种方法:continue。   for score in data[1:]:    point = int(score)    if point < 60:       &nb … 继续阅读“【Python 课堂】第35课—— continue”

    :
  • 游戏中的几个主要角色我们都有了,接下来就是去完善它们,用它们来组成一个完整的游戏。   首先我们要处理的是子弹。只有一发子弹显然是不够的,群众表示要火力全开!   所以,我们要有一个list,这里list里面存放着一些Bullet的对象。但一个list的Bullet都按之前的方法创建是不行的,那样所有的子弹都会在同一时间发射出去,同时到达屏幕上方,又同时再次发射,这样的视觉效果和一发子弹没什么区别。所以我们要让它们按照一定的时间间隔,一个一个地发射。   另外,之前 … 继续阅读“【Pygame 课堂】第8课—— 火力全开”

    :
  • 写代码,不可避免地会出现bug。很多人在初学编程的时候,当写完程序运行时,发现结果与自己预料中的不同,或者程序意外中止了,就一时没了想法,不知道该从何下手,只能反复重新运行程序,期待忽然有次结果就对了。   今天我就来讲讲代码遇到问题时的一些简单处理方法。   1. 读错误信息 来看如下一个例程: import random a = 0 for i in range(5):     b = random.choice(range(5))   &n … 继续阅读“【Python 课堂】第62课—— 调试程序”

    :