一、安装pygame

如果你使用的是spyder,那么安装pygame请参考这篇博客

https://blog.csdn.net/holly_Z_P_F/article/details/99860467

下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
选择跟你自己对应的版本cp36就是3.6版本的
下载好了之后,创建一个文件夹,名字叫alien_invasion,把下载好的文件放入文件夹
然后打开命令行窗口,进入到alien_invasion文件夹下,输入pip install pygame-1.9.6-cp36-cp36m-win_amd64.whl
(当然,得先确认你安装了pip,才能使用这个命令)
如果你输入了pip install pygame-1.9.6-cp36-cp36m-win_amd64.whl,报错了,错误如下

那么你就根据提示,先输入python -m pip install --upgrade pip
再输入pip install pygame-1.9.6-cp36-cp36m-win_amd64.whl
检查是否安装成功:

二 项目源码

十二到十四章完成了《外星人入侵》这个项目

功能介绍

我写的这个,虽然是照着书上学的,但是和书上还略有不同,比书上多了一些内容(上下移动和显示飞船分值)
整体功能主要分为三部分:

飞船

飞船可以左右上下移动,可以发射子弹,不能移出屏幕外,每消灭一群外星人后,等级会提升,随着等级的提升,外星人速度会变快,飞船的速度和子弹速度也可以设定变快。可以设定初始拥有几艘飞船。

外星人

外星人按照一定的速度往右飞–>碰到墙壁就向下—>再向左飞,循环移动,外星人不能碰到飞船,也不能碰到屏幕底边,如果碰到,就损失一个飞船
每个外星人有初始分值,每消灭一个,就获得对应分值,随着等级提高,对应分值也增大

界面

项目架构

项目素材

这里面有
https://blog.csdn.net/holly_Z_P_F/article/details/99854975

源代码

1、alien_invasion.py


import pygame  #模块pygame包含开发游戏所需的功能
from settings import Settings
from ship import Ship
import game_functions as gf
from game_stats import GameStats
from pygame.sprite import Group
from button import Button
from scoreboard import Scoreboarddef run_game():#初始化pygame、设置、屏幕对象pygame.init()#初始化背景设置#为创建Settings实例并使用它来访问设置ai_settings=Settings()#创建一个名为screen的显示窗口 并且设置宽高screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))pygame.display.set_caption("外星人入侵") #设置窗口的标题#创建Play按钮play_button=Button(ai_settings,screen,"Play")#创建一个用于存储游戏统计信息的实例stats=GameStats(ai_settings)#创建记分牌sb=Scoreboard(ai_settings,screen,stats)#创建一艘飞船实例ship=Ship(ai_settings,screen)#创建一个用于存储子弹的编组bullets=Group()#一个外星人编组aliens=Group()#创建外星人群gf.create_fleet(ai_settings,screen,ship,aliens)#开始游戏的主循环while True:gf.check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets) #监视键盘和鼠标事件if stats.game_active==True:  #游戏处于活动状态ship.update() #更新飞船gf.update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets)  #更新子弹gf.update_aliens(ai_settings,stats,sb,screen,ship,aliens,bullets)  #更新外星人gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button) #更新屏幕       run_game()

2、Bullet.py


import pygame
from pygame.sprite import Spriteclass Bullet(Sprite): #继承Sprite类"""一个对飞船发射的子弹进行管理的类"""def __init__(self,ai_settings,screen,ship):"""在飞船所处的位置创建一个子弹对象"""super().__init__()  #调用super()来继承Sprite。self.screen=screen#使用pygame.Rect()类从(0,0)开始创建一个矩形self.rect=pygame.Rect(0,0,ai_settings.bullet_width,ai_settings.bullet_height)#将其移动到正确的位置self.rect.centerx=ship.rect.centerxself.rect.top=ship.rect.top#存储用小数表示子弹的位置,只需要设置y坐标就好了self.y=float(self.rect.y)#子弹颜色和速度self.color=ai_settings.bullet_colorself.speed_factor=ai_settings.bullet_speed_factordef update(self):"""向上移动子弹"""#更新表示子弹位置的小数#在Pygame中,原点(0, 0)位于屏幕左上角,右下角为最远点。self.y -= self.speed_factorself.rect.y=self.ydef draw_bullet(self):"""在屏幕上绘制子弹"""pygame.draw.rect(self.screen,self.color,self.rect)   

3、game_function.py


import sys     #使用模块sys来退出游戏
import pygame
from Bullet import Bullet
from time import sleep
from alien import Aliendef check_keydown_events(event,ai_settings,screen,ship,bullets):"""响应按键"""if event.key==pygame.K_RIGHT:  #按下右箭头键ship.moving_right = Trueelif event.key==pygame.K_LEFT: #按下左箭头键ship.moving_left=Trueelif event.key==pygame.K_UP: #按下上箭头键ship.moving_up=Trueelif event.key==pygame.K_DOWN: #按下下箭头键ship.moving_down=Trueelif event.key==pygame.K_SPACE: #按下空格fire_bullet(ai_settings,screen,ship,bullets)elif event.key==pygame.K_q: #玩家按Q时结束游戏pygame.quit()sys.exit()def check_keyup_events(event,ship):"""响应松开"""if event.key==pygame.K_RIGHT:  #松开右箭头键ship.moving_right=Falseelif event.key==pygame.K_LEFT: #松开左箭头键ship.moving_left=Falseelif event.key==pygame.K_UP: #松开上箭头键ship.moving_up=Falseelif event.key==pygame.K_DOWN: #松开下箭头键ship.moving_down=Falsedef check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets):"""响应键盘和鼠标事件"""for event in pygame.event.get():if event.type==pygame.QUIT: #如果鼠标单击关闭pygame.quit()#停止运行pygamesys.exit()#退出游戏elif event.type==pygame.KEYDOWN:check_keydown_events(event,ai_settings,screen,ship,bullets)elif event.type==pygame.KEYUP:check_keyup_events(event,ship)elif event.type==pygame.MOUSEBUTTONDOWN: #点击开始按钮mouse_x,mouse_y=pygame.mouse.get_pos()check_play_button(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets,mouse_x,mouse_y)def check_play_button(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets,mouse_x,mouse_y):"""在玩家单击Play按钮时开始新游戏"""#使用collidepoint()检查鼠标单击位置是否在Play按钮的rect内button_clicked=play_button.rect.collidepoint(mouse_x,mouse_y)if button_clicked and not stats.game_active:#重置游戏设置ai_settings.initialize_dynameic_settings()#隐藏光标pygame.mouse.set_visible(False)#重置游戏统计信息stats.reset_stats()stats.game_active=True#清空外星人列遍和子弹列表aliens.empty()bullets.empty()#创建一群新的外星人,并且让飞船居中create_fleet(ai_settings, screen, ship, aliens)ship.center_ship() #重新记分牌图像sb.prep_score()sb.prep_value(stats.value)sb.prep_high_score()sb.prep_level()sb.prep_ships()sb.show()def update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button):"""更新屏幕上的图像,并且切换到新屏幕"""#每次循环时都重绘屏幕screen.fill(ai_settings.bg_color)#方法screen.fill()设置背景色#重绘所有子弹for bullet in bullets.sprites():bullet.draw_bullet()ship.blitme() #将飞船绘制到屏幕上,确保它出现在背景前面aliens.draw(screen)#将外星人绘制到屏幕上#显示得分和分值sb.show()#如果游戏处于非活动状态就绘制Play按钮if not stats.game_active:play_button.draw_button()#让最近绘制的屏幕可见pygame.display.flip()def update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets):"""更新子弹的位置,并删除已经出界的子弹"""#更新位置bullets.update()#删除抵达边界的子弹for bullet in bullets.copy(): #使用copy()遍历编组的副本if bullet.rect.bottom <= 0:bullets.remove(bullet)#处理碰撞check_bullet_alien_collisions(ai_settings,screen,stats,sb,ship,aliens,bullets)def check_bullet_alien_collisions(ai_settings,screen,stats,sb,ship,aliens,bullets):"""响应子弹和外星人的碰撞"""#有子弹撞到外星人时,Pygame返回一个字典(collisions)collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)#计算得分#如果字典collisions存在,我们就遍历其中的所有值。#每个值都是一个列表,包含被同一颗子弹击中的所有外星人。#对于每个列表,都将一个外星人的点数乘以其中包含的外星人数量,并将结果加入到当前得分中if collisions:for aliens in collisions.values():stats.score += ai_settings.alien_points * len(aliens)sb.prep_score()check_high_score(stats, sb)#如果外星人被杀完了if len(aliens)==0:bullets.empty()  #删除现有子弹ai_settings.increase_speed() #加快游戏节奏sb.prep_value(ai_settings.alien_points)#显示外星人的最新分值的新图像create_fleet(ai_settings,screen,ship,aliens) #新建一群外星人stats.level += 1 #提高等级sb.prep_level()def check_high_score(stats,sb):"""检查是否诞生了新的最高得分"""if stats.score > stats.high_score:stats.high_score = stats.scoresb.prep_high_score() def fire_bullet(ai_settings,screen,ship,bullets):"""如果屏幕上子弹还没超过上限,就发射一颗子弹"""#创建一颗子弹,并将其加入到编组中if len(bullets) < ai_settings.bullet_allowed:new_bullet=Bullet(ai_settings,screen,ship)bullets.add(new_bullet)def get_number_aliens_x(ai_settings,alien_width):"""计算一行能容纳几个外星人  外星人间距为外星人宽度"""available_space_x =ai_settings.screen_width-2*alien_widthnumber_aliens_x =int(available_space_x/(2*alien_width)) return number_aliens_xdef get_number_rows(ai_settings,ship_height,alien_height):"""计算屏幕上可以容纳多少行外星人"""available_space_y=(ai_settings.screen_height-(3*alien_height)-ship_height)number_rows=int(available_space_y/(2*alien_height))return number_rowsdef create_alien(ai_settings,screen,aliens,alien_number,row_number):"""创建一个外星人将其放在当前行"""alien=Alien(ai_settings,screen) #创建一个外星人alien_width=alien.rect.width  #获取其宽度alien.x = alien_width + 2 * alien_width * alien_numberalien.rect.x = alien.xalien.rect.y = alien.rect.height + 2 * alien.rect.height * row_numberaliens.add(alien)def create_fleet(ai_settings,screen,ship,aliens):"""创建外星人群"""#创建一个外星人,并计算每行可容纳多少个外星人alien = Alien(ai_settings, screen) number_aliens_x=get_number_aliens_x(ai_settings,alien.rect.width)number_rows = get_number_rows(ai_settings, ship.rect.height,alien.rect.height)#创建外星人群for row_number in range(number_rows):for alien_number in range(number_aliens_x):create_alien(ai_settings,screen,aliens,alien_number,row_number)def check_fleet_edges(ai_settings,aliens):"""有外星人到达边缘时采取相应的措施"""for alien in aliens.sprites():if alien.check_edges():change_fleet_direction(ai_settings,aliens)breakdef change_fleet_direction(ai_settings,aliens):"""将整群外星人向下移,并改变方向"""for alien in aliens.sprites():alien.rect.y += ai_settings.fleet_drop_speedai_settings.fleet_direction *= -1def ship_hit(ai_settings,stats,sb,screen,ship,aliens,bullets):"""响应被外星人撞到的飞船"""#将ships_left减1stats.ships_left -= 1if stats.ships_left > 0:#清空外星人和子弹aliens.empty()bullets.empty()#创建一群新的外星人,飞船移回初始位置create_fleet(ai_settings, screen,ship,aliens)ship.center_ship()#更新飞船数量图像sb.prep_ships()#暂停sleep(0.5)else:stats.game_active=Falsepygame.mouse.set_visible(True)def check_aliens_bottom(ai_settings,stats,sb,screen,ship,aliens,bullets): """检查是否有外星人到达了屏幕底端"""screen_rect=screen.get_rect()for alien in aliens.sprites():if alien.rect.bottom >= screen_rect.bottom:#像飞船被撞一样处理ship_hit(ai_settings, stats,sb,screen,ship,aliens,bullets)breakdef update_aliens(ai_settings,stats,sb,screen,ship,aliens,bullets):"""检查是否有外星人位于屏幕边缘"""check_fleet_edges(ai_settings,aliens)"""更新整群外星人的位置"""aliens.update()#检测外星人和飞船之间的碰撞if pygame.sprite.spritecollideany(ship,aliens):ship_hit(ai_settings,stats,sb,screen,ship,aliens,bullets) #检查是否有外星人到达屏幕底端check_aliens_bottom(ai_settings,stats,sb,screen,ship,aliens, bullets)

4、settings.py


class Settings():"""存储《外星人入侵》的多个设置的类"""def __init__(self):"""初始化游戏的静态设置"""#屏幕设置self.screen_width=1000  #窗口宽度self.screen_height=600  #窗口长度self.bg_color=(230,230,230)  #背景颜色#飞船的设置self.ship_limit=3 #玩家拥有的飞船数量#子弹设置 深灰色子弹self.bullet_width=8self.bullet_height=17self.bullet_color=60,60,60self.bullet_allowed=6 #屏幕上允许同时存在的子弹数上限#外星人设置self.fleet_drop_speed = 5 #向下移动的速度#加快游戏节奏的速度self.speedup_scale=1.1#外星人点数每次增大self.score_scale=50#初始化随游戏进行而变化的属性self.initialize_dynameic_settings()def initialize_dynameic_settings(self):"""初始化随游戏进行而变化的属性"""self.ship_speed_factor=1.5 #飞船移动速度self.bullet_speed_factor=3 #子弹速度self.alien_speed_factor=0.5 #外星人移动速度# fleet_direction为1表示向右移,为-1表示向左移self.fleet_direction = 1 #分值self.alien_points=50 #更新分值的时候使用 初始化使用stats.valuedef increase_speed(self):"""提高速度设置"""#self.ship_speed_factor *= self.speedup_scale #提高飞船速度self.bullet_speed_factor *= self.speedup_scale#提高子弹速度self.alien_speed_factor *= self.speedup_scale#提高外星人速度"""提高外星人点数设置"""self.alien_points=int(self.alien_points+self.score_scale)

5、ship.py


import pygame
from pygame.sprite import Spriteclass Ship(Sprite):def __init__(self,ai_settings,screen):"""初始化飞船并且设置其初始位置"""super(Ship,self).__init__()self.screen=screenself.ai_settings= ai_settings#加载飞船图像并且获取其外接矩阵self.image=pygame.image.load('images/ship.bmp') #加载图像self.rect=self.image.get_rect()#获取图像的外接矩形self.screen_rect=screen.get_rect()#将表示屏幕的矩形存储在self.screen_rect中#将每艘新飞船放在屏幕底部中央#将self.rect.centerx(飞船中心的x坐标)设置为表示屏幕的矩形的属性centerx#将self.rect.bottom(飞船下边缘的y坐标)设置为表示屏幕的矩形的属性bottom。#Pygame将使用这些rect属性来放置飞船图像,使其与屏幕下边缘对齐并水平居中。self.rect.centerx=self.screen_rect.centerxself.rect.bottom=self.screen_rect.bottom#在飞船的属性center中存储小数self.center=float(self.rect.centerx)#定义了一个可存储小数值的新属性self.bottom=float(self.rect.bottom)#移动标志#飞船不动时,标志moving_right将为False。#玩家按下右箭头键时,我们将这个标志设置为True;#玩家松开时,我们将这个标志重新设置为False。self.moving_right=Falseself.moving_left=Falseself.moving_up=Falseself.moving_down=Falsedef update(self):"""根据移动标志调整飞船的位置"""#更新飞船的center值 更新前要检查位置 确保飞船不出屏幕if self.moving_right and self.rect.right < self.screen_rect.right : self.center += self.ai_settings.ship_speed_factorif self.moving_left and self.rect.left > 0 :self.center -= self.ai_settings.ship_speed_factor#更新飞船的bottom值if self.moving_up and self.rect.top > 0 :self.bottom -= self.ai_settings.ship_speed_factorif self.moving_down and self.rect.bottom < self.screen_rect.bottom:self.bottom += self.ai_settings.ship_speed_factor#根据self.center更新rect对象self.rect.centerx = self.centerself.rect.bottom = self.bottom#方法blitme根据self.rect指定的位置将图像绘制到屏幕上def blitme(self):"""在指定位置绘制飞船"""self.screen.blit(self.image,self.rect)def center_ship(self):"""让飞船在屏幕上居中"""self.center=self.screen_rect.centerxself.bottom=self.screen_rect.bottom

6、alien.py


import pygame
from pygame.sprite import Spriteclass Alien(Sprite):"""表示单个外星人的类"""def __init__(self,ai_settings,screen):"""初始化外星人并且设置其起始位置"""super().__init__()self.screen=screenself.ai_settings=ai_settings#加载外星人图像 并设置其rect属性self.image=pygame.image.load('images/alien.bmp')self.rect=self.image.get_rect()#每个外星人最初都在屏幕左上角附近self.rect.x=self.rect.widthself.rect.y=self.rect.height#存储外星人的位置self.x=float(self.rect.x)def blitme(self):"""在指定的位置绘制外星人"""self.screen.blit(self.image,self.rect)def check_edges(self):"""如果外星人撞到边缘,就返回True"""screen_rect=self.screen.get_rect()if self.rect.right >= screen_rect.right:return Trueelif self.rect.left <= 0:return Truedef update(self):"""向左或者向右移动外星人"""self.x += (self.ai_settings.alien_speed_factor*self.ai_settings.fleet_direction) self.rect.x=self.x 

7、game_stats.py


class GameStats():"""跟踪游戏的统计信息"""def __init__(self,ai_settings):"""初始化统计信息"""self.ai_settings=ai_settingsself.game_active=Falseself.reset_stats()#任何情况下都不应该重置最高分self.high_score=0def reset_stats(self):"""初始化在游戏运行期间可能变化的统计信息"""self.ships_left=self.ai_settings.ship_limitself.score = 0 #重置得分self.level=1#等级self.value=50 #重置分值

8、button.py


import pygame.font
class Button():def __init__(self,ai_settings,screen,msg):"""初始化按钮的属性"""self.screen=screenself.screen_rect=screen.get_rect()#设置按钮的尺寸和其他属性self.width,self.height=200,50#按钮宽高self.button_color=(0,255,0)#按钮颜色self.text_color=(255,255,255)#文字颜色self.font=pygame.font.SysFont(None,48)#文字的字体以及字号#创建按钮的rect对象,并使其居中self.rect=pygame.Rect(0,0,self.width,self.height)self.rect.center=self.screen_rect.center#按钮的标签只需要创建一次self.prep_msg(msg)def prep_msg(self,msg):"""将msg渲染为图像,并使其在按钮上居中"""self.msg_image = self.font.render(msg, True, self.text_color,self.button_color)self.msg_image_rect = self.msg_image.get_rect()self.msg_image_rect.center = self.rect.center def draw_button(self):# 绘制一个用颜色填充的按钮,再绘制文本self.screen.fill(self.button_color, self.rect)self.screen.blit(self.msg_image, self.msg_image_rect)  

9、scoreboard


import pygame.font
from pygame.sprite import Group
from ship import Shipclass Scoreboard():"""显示得分信息的类"""def __init__(self,ai_settings,screen,stats):"""初始化显示得分涉及的属性"""self.screen=screenself.screen_rect=screen.get_rect()self.ai_settings=ai_settingsself.stats=stats#显示得分信息时使用的字体设置self.text_color=(30,30,30)self.font=pygame.font.SysFont(None,48)#准备初始得分图像self.prep_score() #将要显示的文本转换为图像#准备等级图像self.prep_level()#准备分值图像self.prep_value(self.stats.value)#准备最高分图像self.prep_high_score()#飞船数量self.prep_ships()def prep_score(self):"""将得分转化为一副渲染的图像"""#字符串格式设置指令,它让Python将数值转换为字符串时在其中插入逗号score_str="{:,}".format(self.stats.score)"""函数round()通常让小数精确到小数点后多少位,其中小数位数是由第二个实参指定的如果将第二个实参指定为负数,round()将圆整到最近的10、100、1000等整数倍rounded_score=int(round(self.stats.score,-1))"""#将这个字符串传递给创建图像的render()self.score_image=self.font.render(score_str,True,self.text_color,self.ai_settings.bg_color)#将得分放在屏幕右上角self.score_rect=self.score_image.get_rect()#得分增大导致这个数字更宽时让它向左延伸#让其右边缘与屏幕右边缘相距20像素self.score_rect.right=self.screen_rect.right - 20#让其上边缘与屏幕上边缘也相距20像素self.score_rect.top = 20def show(self):"""在屏幕上显示得分"""#将得分图像显示到屏幕上,并将其放在score_rect指定的位置#右上角显示得分self.screen.blit(self.score_image,self.score_rect)#中间显示最高分self.screen.blit(self.high_score_image, self.high_score_rect) #得分下边显示等级self.screen.blit(self.level_image, self.level_rect) #等级下边显示当前分值self.screen.blit(self.value_image,self.value_rect)#绘制飞船self.ships.draw(self.screen)def prep_high_score(self):"""将最高得分转换为渲染的图像"""high_score_str = "{:,}".format(self.stats.high_score)self.high_score_image = self.font.render(high_score_str, True,self.text_color, self.ai_settings.bg_color)#将最高得分放在屏幕顶部中央self.high_score_rect = self.high_score_image.get_rect()self.high_score_rect.centerx = self.screen_rect.centerxself.high_score_rect.top = self.score_rect.top def prep_level(self):"""将等级转换为渲染的图像"""self.level_image = self.font.render(str(self.stats.level), True,self.text_color, self.ai_settings.bg_color)# 将等级放在得分下方self.level_rect = self.level_image.get_rect()self.level_rect.right = self.score_rect.rightself.level_rect.top = self.score_rect.bottom + 10 def prep_value(self,v):"""将分值转化为一副渲染的图像"""value_str=str(v)#将这个字符串传递给创建图像的render()self.value_image=self.font.render(value_str,True,self.text_color,self.ai_settings.bg_color)#分值放在等级下方self.value_rect=self.value_image.get_rect()self.value_rect.right=self.level_rect.rightself.value_rect.top = self.level_rect.bottom + 10 def prep_ships(self):"""显示还余下多少艘飞船"""self.ships = Group() #创建一个空编组self.ships存储飞船实例for ship_number in range(self.stats.ships_left):ship = Ship(self.ai_settings, self.screen)ship.rect.x = 10 + ship_number * ship.rect.widthship.rect.y = 10self.ships.add(ship)

项目总结

去吃饭了,有空再总结吧

python学习(八)----外星人入侵(项目篇)相关推荐

  1. Python学习---入门导学篇

    Python学习---入门导学篇 Python的特点 Python受人喜欢的原因 Python的缺点 Python能做什么? Python基础语法 Python的特点 1.Python是一门编程语言, ...

  2. python学习[第十四篇] 文件的输入与输出

    python学习[第十四篇] 文件的输入与输出 标准文件类型 一般来说只要程序一执行,就会访问3个文件: 标准输入(键盘) stdin 标准输出(显示器缓冲区) stdout 默认输出到屏幕 标准错误 ...

  3. Python学习日记-day1基础篇 字符 输出 注释

    Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...

  4. python学习[第十五篇] 文件系统

    python学习[第十五篇] 文件系统 对文件系统访问大多数都通过os模块实现. os 模块文件/目录访问函数 文件处理 mkfifo() 创建命名通道只用于linux remove(path)/un ...

  5. C语言学习历程--小项目篇(1)

    C语言学习历程–小项目篇–基于winpcap的UDP数据发送 开发环境介绍 1.操作系统:windows10(基于x64处理器).IDE:vs 2019(微软官网个人免费版).winpcap安装包及开 ...

  6. Python 学习笔记 第三篇 Python实现网易云评论网页爬虫+词云展示 (Pycharm+Mysql)

    初始条件,具体可见我的其他文章. 1.安装Python.Python 学习笔记 第一篇 Python的安装与配置 2.安装Pycharm,并导入第三方包.Python 学习笔记 第二篇 Python ...

  7. 案例驱动式Python学习笔记【第一篇】便捷水果店

    前言 后续的此系列博文用于记录案例式Python学习笔记记录,供本人和感兴趣的小伙伴一起学习!!人生苦短,我学Python! 驱动案例 便捷水果店:请为水果店开发一个收银的小程序,已知水果单价和购买重 ...

  8. python学习之路基础篇(第八篇)

    一.作业(对象的封装) 要点分析 1.封装,对象中嵌套对象 2.pickle,load,切记,一定要先导入相关的类二.上节内容回顾和补充 面向对象基本知识: 1.类和对象的关系 2.三大特性: 封装 ...

  9. python学习之路基础篇(第四篇)

    一.课程内容回顾 1.python基础 2.基本数据类型  (str|list|dict|tuple) 3.将字符串"老男人"转换成utf-8 s = "老男人" ...

  10. Python学习【第1篇】:Python简介以及入门

    python第一篇-------python介绍 一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语 ...

最新文章

  1. 富文本编辑_博客的后台富文本编辑和阅读计数
  2. leetcode算法题--和为s的两个数字
  3. html盒子移动动画代码,HTML5/Canvas 盒子追踪动画
  4. Ant和Junit使用的一些问题
  5. leetcode-Minimum Size Subarray Sum-209
  6. python format用法
  7. linux git中央仓库地址,如何在Linux上搭建一个Git中央仓库
  8. java安装显示更改_java 安装与配置
  9. 谈Flash中的鼠标响应
  10. visual studio如何用低版本打开高版本项目
  11. 程序员励志视频_5个最适合程序员的励志视频
  12. Feasibility of Learning
  13. js判断移动终端(手机浏览器)
  14. servlet那边处理完登录,在jsp这边弹框显示结果
  15. 基于51单片机的智能无线LED灯控制 蓝牙手机APP控制灯亮灭亮度方案原理图设计
  16. 格式英语计算机,计算机英语论文大纲格式 计算机英语论文提纲如何写
  17. 2019.04.05【NOIP提高组】模拟 A 组 T_OY(踢欧阳^_^)
  18. java解析sgf格式文件简单实现
  19. python画椭圆形函数算法_python数字图像处理(12):基本图形的绘制
  20. 【转】Linux TC(Traffic Control)框架原理解析

热门文章

  1. Docker-registry + GlusterFS
  2. 自动更改IP地址反爬虫封锁,支持多线程(转)
  3. .NET URL 301转向方法的实现
  4. linux下 根目录扩展
  5. 无盘工作站与VMware View虚拟桌面对比
  6. 为何不让AI做更正确的抉择?人类要逐渐交出控制权
  7. oracle11g导入导出
  8. 网易云课堂Java模拟面试笔记(31-40)
  9. 同步异步阻塞非阻塞杂记 1
  10. /var/log/messages Logging not working on Centos 7