外星人入侵游戏--python实战 (附完整代码)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

目录

    • 一、前提准备
    • 二、效果展示
    • 三、代码
      • alien_invasion.py
      • settings.py
      • game_functions.py
      • ship.py
      • bullet.py
      • alien.py
      • game_stats.py
      • scoreboard.py
      • button.py
    • 四、图片领取位置

一、前提准备

  1. 在pycharm的project创建一个文件夹命名:alien_invasion 用来装这个项目的所有python文件

就大概是这样在这里插入图片描述

  1. 安装pygame :
    https://blog.csdn.net/qq_43597899/article/details/88619736

注:也可直接在Anaconda终端输入以下命令就可安装好
pip install -I https://pypi.douban.com/simple pygame

二、效果展示

左上角为玩家所有的存活的飞船数量,正中央的0表示最高分,右上角的0表示得分,1表示当前等级为1,点击Play游戏开始,随着关卡的提升,难度也会加强。
在这里插入图片描述

三、代码

alien_invasion.py

# coding=utf-8
"""使用pygame来编写游戏的基本结构"""# 玩家退出游戏时,我们使用sys模块来退出
# import sys   在此文件中不需要导入sys,因为在game_functions使用了sys
import pygame
from settings import Settings
from ship import Ship
import game_functions as gf
from pygame.sprite import Group
from game_stats import GameStats
from button import Button
from scoreboard import Scoreboarddef run_game():"""初始化游戏并创建一个屏幕对象"""pygame.init()  # 初始化背景设置ai_settings = Settings()screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))pygame.display.set_caption('Alien Invasion')# 创建play按钮play_button = Button(ai_settings, screen, "Play")# 创建一个用于存储游戏统计信息的实例,并创建计分牌stats = GameStats(ai_settings)sb = Scoreboard(ai_settings, screen, stats)# 创建一艘飞船:注意,必须在while循环前面创建,以免每次循环都创建一艘飞船ship = Ship(ai_settings, screen)# 创建一个用于存储子弹的编组bullets = Group()# 创建一个空编组用于存储所有外星人aliens = Group()# 设置背景色bg_color = (230, 230, 230)# 创建外星人群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:ship.update()gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets)gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets)gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)run_game()

settings.py

# coding=utf-8"""将所有的设置储存在同一个地方"""class Settings():# 储存外星人入侵所有设置的类def __init__(self):"""初始化游戏的设置"""# 外星人设置# 添加一个控制外星人速度的设置self.alien_speed_factor = 1self.fleet_drop_speed = 10# fleet_direction 为1表示向右移,为-1表示向左移self.fleet_direction = 1# 添加子弹设置self.bullet_speed_factor = 3self.bullet_width = 3self.bullet_height = 15self.bullet_color = 60, 60, 60# 限制子弹数量6个self.bullets_allowed = 6# 屏幕设置self.screen_width = 1200self.screen_height = 800self.bg_color = (230, 230, 230)# 飞船设置# 调整飞船的速度,将初始值1设置为1.5self.ship_speed_factor = 1.5self.ship_limit = 3# 以1.1倍速加快游戏节奏self.speedup_scale = 1.1# 提高外星人点数的速度self.score_scale = 1.5# 初始化随游戏进行而变化的属性self.initialize_dynamic_settings()def initialize_dynamic_settings(self):"""初始化随游戏进行而变化的设置"""self.ship_speed_factor = 1.5self.bullet_speed_factor = 3self.alien_speed_factor = 1# fleet_direction为1表示向右,fleet_direction为-1表示向左self.fleet_direction = 1# 每击落一个外星人将得到50个点self.alien_points = 50def increase_speed(self):"""提高速度和外星人点数设置"""self.ship_speed_factor *= self.speedup_scaleself.bullet_speed_factor *= self.speedup_scaleself.alien_speed_factor *= self.speedup_scaleself.alien_points = int(self.alien_points * self.score_scale)

game_functions.py

# coding=utf-8
import sys
from time import sleep
import pygame
from bullet import Bullet
from alien import Alien"""重构:模块game_functions将管理事件的代码移到check_events()函数当中再将check_events()放在一个名为game_function的模块中
"""def 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_SPACE:fire_bullet(ai_settings, screen, ship, bullets)def fire_bullet(ai_settings, screen, ship, bullets):# 按下空格键,创建一颗新子弹,并将其加入到bullets中if len(bullets) < ai_settings.bullets_allowed:new_bullets = Bullet(ai_settings, screen, ship)bullets.add(new_bullets)def check_keyup_events(event, ship):"""响应松开"""if event.key == pygame.K_RIGHT:ship.moving_right = Falseelif event.key == pygame.K_LEFT:ship.moving_left = Falsedef check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets):"""响应按键和鼠标事件"""for event in pygame.event.get():if event.type == pygame.QUIT:sys.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按钮时才开始新游戏"""button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)if button_clicked and not stats.game_active:# 重置游戏设置,需要将发生变化了的设置重置为初始值,否则新游戏开始时,速度设置将是前一次游戏增加了的值ai_settings.initialize_dynamic_settings()# 隐藏光标pygame.mouse.set_visible(False)# 重置游戏统计信息stats.reset_stats()stats.game_active = True# 重置记分牌图像sb.prep_score()sb.prep_high_score()sb.prep_level()sb.prep_ships()# 清空外星人和子弹列表aliens.empty()bullets.empty()# 创建一群新的外星人,并让飞船居中create_fleet(ai_settings, screen, ship, aliens)ship.center_ship()def update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button):"""更新屏幕上的图像,并切换到新屏幕,每次循环都要重绘屏幕"""# 每次循环都重新绘屏幕,用背景色填充屏幕,这个方法只接受一个实参,一种颜色screen.fill(ai_settings.bg_color)# 在飞船和外星人后面重新绘制所有子弹for bullet in bullets.sprites():bullet.draw_bullet()# 填充背景后,调用ship.blitem()将飞船绘制到屏幕上,确保它出现在背景前面ship.blitem()# 在屏幕上绘制编组中的每个外星人aliens.draw(screen)# 显示得分sb.show_score()# 如果游戏处于非活动状态,就绘制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():if bullet.rect.bottom <= 0:bullets.remove(bullet)check_bullet_alien_conllsions(ai_settings, screen, stats, sb, ship, aliens, bullets)def check_bullet_alien_conllsions(ai_settings, screen, stats, sb, ship, aliens, bullets):"""响应子弹和外星人的碰撞"""# 删除发生碰撞的子弹和外星人collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)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()# 外星人都被消灭,就提高一个等级stats.level += 1sb.prep_level()create_fleet(ai_settings, screen, ship, aliens)def get_number_aliens_x(ai_settings, alien_width):"""计算每行可容纳多少个外星人"""# 放置外星人的水平空间为屏幕宽度减去外星人宽度的两倍(需要在屏幕两边留下一定的间距)available_space_x = ai_settings.screen_width - 2 * alien_width# 确定一行可容纳多少个外星人,用空间除以外星人宽度的两倍(为什么是两倍?因为外星人自身的宽度还要算两个外星人之间的间距,间距也算一个外星人)number_alien_x = int(available_space_x / (2 * alien_width))return number_alien_xdef get_number_rows(ai_settings, ship_height, alien_hight):"""计算屏幕可容纳多少外星人"""# 可用垂直空间=屏幕高度-第一行外星人的高度,最初外星人高度,外星人间距,飞船高度available_space_y = (ai_settings.screen_height - (3 * alien_hight) - ship_height)# 可容纳的函数number_rows = int(available_space_y / (2 * alien_hight))return number_rowsdef create_alien(ai_settings, screen, aliens, alien_number, row_number):"""创建一个外星人,并将其放入当前行"""# 创建一个外星人,并计算一行可容纳多少个外星人# 外星人间距为外星人宽度alien = Alien(ai_settings, screen)alien_width = alien.rect.widthalien.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, screen, stats, sb, ship, aliens, bullets):"""响应被外星人撞到的飞船"""if stats.ship_left > 0:# 将ship_left-1stats.ship_left -= 1# 更新计分牌sb.prep_ships()else:stats.game_active = Falsepygame.mouse.set_visible(True)# 清空外星人列表和子弹列表aliens.empty()bullets.empty()# 创建一群新的外星人,并将飞船放到屏幕底端中央create_fleet(ai_settings, screen, ship, aliens)ship.center_ship()# 暂停sleep(0.5)def check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets):"""检查是否有外星人到达了屏幕底端"""screen_rect = screen.get_rect()for alien in aliens.sprites():if alien.rect.bottom >= screen_rect.bottom:"""像飞船被撞到一样处理"""ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)breakdef update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets):"""检查是否有外星人位于屏幕边缘,并更新外星人群中所有外星人的位置"""check_fleet_edges(ai_settings, aliens)aliens.update()# 检查外星人和飞船之间的碰撞if pygame.sprite.spritecollideany(ship, aliens):ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets)"""检查是否有外星人到达屏幕底端"""def check_high_score(stats, sb):"""检查是否诞生了最高得分"""if stats.score > stats.high_score:stats.high_score = stats.scoresb.prep_high_score()

ship.py

# coding=utf-8
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')# get_rect获取相应的surface属性rectself.rect = self.image.get_rect()"""我们要将飞船放在屏幕底部中央,为此,首先将表示屏幕的矩形存储在self.screen_rect中"""self.screen_rect = screen.get_rect()# 将每艘新飞船放在屏幕底部中央self.rect.centerx = self.screen_rect.centerxself.rect.bottom = self.screen_rect.bottom# 在飞船属性center中存储小数值,这里是因为我们在settings中将初始值1设置为1.5self.center = float(self.rect.centerx)""" 允许不断移动结合使用KEYDOWN和KEYUP事件,及一个名为moving_right的标志来实现持续移动飞船不动时,moving_right为False,玩家按下右箭头键时,将这个标志设置为True,玩家松开时,将这个标志设置为False------见game_function  line16-30  (左同)用update方法来检查标志moving_right的状态,如果这个标志为True,就调用飞船的位置"""# 移动标志self.moving_right = Falseself.moving_left = Falsedef update(self):"""根据移动标志调整飞船的位置,这里用两个if,而没有用elif,是因为如果玩家同时按下左右键,将增大center,再减少center的值,即飞船的位置保持不变但如果用elif,右箭头始终保持优先地位,当左移动切换到右移动时,玩家可能同时按住左右箭头键,这种情况下,前面的做法更加准确"""# if限制飞船的活动范围(因为在运行游戏的时候,飞船可能飞出屏幕外)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# 根据self.center更新rect对象self.rect.centerx = self.centerdef blitem(self):"""在指定位置绘制飞船"""self.screen.blit(self.image, self.rect)def center_ship(self):"""让飞船在屏幕上居中"""self.center = self.screen_rect.centerx

bullet.py

# coding=utf-8
import pygamefrom pygame.sprite import Spriteclass Bullet(Sprite):"""一个对飞船发射的子弹进行管理的类"""def __init__(self, ai_settings, screen, ship):"""在飞船所处的位置创建一个子弹对象"""super(Bullet, self).__init__()self.screen = screen# 在(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# 储存用小数表示的子弹位置self.y = float(self.rect.y)self.color = ai_settings.bullet_colorself.speed_factor = ai_settings.bullet_speed_factordef update(self):"""向上移动子弹"""# 更新表示子弹位置的小数值(子弹向上移动,意味着y坐标将不断减小)self.y -= self.speed_factor# 更新表示子弹的rect的位置self.rect.y = self.ydef draw_bullet(self):"""在屏幕上绘制子弹"""pygame.draw.rect(self.screen, self.color, self.rect)

alien.py

# coding=utf-8
import pygame
from pygame.sprite import Spriteclass Alien(Sprite):"""表示单个外星人的类"""def __init__(self, ai_settings, screen):"""初始化外星人并设置起始位置"""super(Alien, self).__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 blitem(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):"""向右或向右移动外星人"""# fleet_direction为1,就将外星人当前的x坐标增大alien_speed_factor,从而外星人向右移,如果fleet_direction为-1,就将外星人当前的x坐标减去alien_speed_factorself.x += (self.ai_settings.alien_speed_factor *self.ai_settings.fleet_direction)# 使用self.x的值来更新rect的位置self.rect.x = self.x

game_stats.py

# coding=utf-8class GameStats():"""跟踪游戏统计信息"""def __init__(self, ai_settings):"""初始化统计信息"""self.ai_settings = ai_settingsself.reset_stats()# 让游戏一开始处于非活动状态self.game_active = False# 任何情况下都不应重置最高得分self.high_score = 0# 显示等级self.level = 1def reset_stats(self):"""初始化在游戏运行期间可能变化的统计信息"""self.ship_left = self.ai_settings.ship_limit# 为每次在开始游戏时都重置得分,我们在reset_stats()而不是__init__中初始化scoreself.score = 0

scoreboard.py

# coding=utf-8import 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_high_score()# 在当前得分下显示等级self.prep_level()self.prep_ships()def prep_score(self):"""将得分转换为一幅渲染的图像"""# 让python将stats.score的值圆整到最近的10的整数倍rounded_score = int(round(self.stats.score, -1))# 让python将数值转换为字符串时在其中插入逗号score_str = "{:,}".format(rounded_score)# 再将这个字符串传递给创建图像的render(),为了清晰地显示得分,我们向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()self.score_rect.right = self.screen_rect.right - 20self.score_rect.top = 20def show_score(self):"""在屏幕上显示飞船和得分"""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.ships.draw(self.screen)def prep_high_score(self):"""将最高得分转换为渲染的图像"""# 最高分圆整到10的整数倍high_score = int(round(self.stats.high_score, -1))# 添加用逗号表示的千分位分隔符high_score_str = "{:,}".format(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.screen_rect.topdef 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.right# 将top属性设置为比得分图像的bottom属性大10像素,以便在得分和等级之间留出一定的空间self.level_rect.top = self.score_rect.bottom + 10def prep_ships(self):"""显示还剩下多少艘飞船"""self.ships = Group()for ship_number in range(self.stats.ship_left):ship = Ship(self.ai_settings, self.screen)ship.rect.x = 10 + ship_number * ship.rect.widthship.rect.y = 10self.ships.add(ship)

button.py

# coding=utf-8import pygame.fontclass Button():def __init__(self, ai_settings, screen, msg):"""初始化按钮的属性"""self.screen = screenself.screen_rect = screen.get_rect()# 设置按钮的属性和其它属性self.width, self.height = 200, 50self.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.centerdef draw_button(self):"""绘制一个颜色填充的按钮,再绘制文本"""self.screen.fill(self.button_color, self.rect)self.screen.blit(self.msg_image, self.msg_image_rect)

四、图片领取位置

链接:https://pan.baidu.com/s/1rOU0Py5HOECxloOvKxtcoA
提取码:qkhf

学习《Python编程从小白到入门》这本书之后,自己动手写了这个游戏,总体还是不错哒,如果有什么问题,欢迎给我留言傲!!!有什么不足欢迎指出。
在这里插入图片描述

整个项目下载
https://download.csdn.net/download/hanhanwanghaha/12708738
免费不要C币的傲哈哈哈哈!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试必备:if条件测试( if-else语句、if-elif-else语句、多个elif代码块、省略else代码块、测试多个条件)

目录if-else语句if-elif-else语句多个elif代码块省略else代码块测试多个条件if-else语句 以买车票为例&#xff0c;儿童身高超过1.5m就需要买全票&#xff0c;我们可以用 if-else语句来演示。设身高为1.6m&#xff0c;超过了1.5&#xff0c;就会输出全票 # coding utf-8"…

数据分析CSV模块的基本使用(以分析复杂的天气情况为例),附完整的Python代码及csv文件详解---数据可视化

目录一、前提准备二、代码解释2.1分析CSV文件头2.2提取并读取数据2.3绘制气温图表2.4在图表中添加日期&#xff08;datetime模块&#xff09;2.4.1书上源代码2.4.2完善代码2.5覆盖更广的时间2.5.1书上源代码2.5.2完善代码2.6再绘制一个数据系列--添加最低气温数据2.6.1添加最低…

ValueError: invalid literal for int() with base 10:Python报错及其解决办法

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 报错情况 ValueError: invalid literal for int() with b…

数据分析--使用Web API(应用编程接口)以自动请求GitHub网站的特定信息为例爬取数据,附完整的Python代码详解

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行&#xff01; 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xf…

IndexError: list index out of range--Python报错原因及解决办法

报错原因 一、括号里面的索引index超出范围 例如&#xff1a;要查找最后一个明星的名字‘Hannah Quinlivan’&#xff0c;Index输入为4。在Python中&#xff0c;第四个元素的索引为3&#xff0c;因为索引是从0开始的。如果想要找最后一个&#xff0c;但是不知道索引为几的时候…

ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (download

出现报错 出现了这个报错 ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (downloaded from C:\Users\admin\AppData\Local\Temp\pip-req-build-bscsadf5, content-type: text/html); cannot detect archive format ERROR: Ca…

创建数据库python: can‘t open file ‘manage.py‘: [Errno 2] No such file or directory报错

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 在创建数据库时运行代码 python manage.py migrate运行结…

Django的简单介绍及虚拟环境的搭建、创建项目,数据库(Windows版超级详细)--Python web应用程序开发(Python实战)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 目录Djanggo简介建立虚拟环境(Anaconda终端下)激活虚拟环境…

教你用8行代码将word转换为pdf格式 及 6行代码实现批量将word转换为pdf格式--python实用小技能get起来

目录将word转换为pdf格式安装pywin32上代码运行结果批量实现word转pdf安装docx2pdf上代码运行结果将word转换为pdf格式 安装pywin32 代码&#xff08;Anaconda终端下&#xff09; pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsingh…

用Python高效地将 多个excel表快速汇总成一个excel表--python办公实用小技能分享

相信很多友友们都遇到一个同样的问题&#xff0c;就是将多个excel表汇总成一个表效率极低&#xff0c;不止如此&#xff0c;还要看有没有复制错。在学校担任多种职务的我总是要汇总很多个表格&#xff0c;早就用python来想解决这个问题&#xff0c;经过借鉴网上的多位大咖的代码…

教你如何使用 Python 将 pdf 文档进行 加密 解密——python实用小技能分享

上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式&#xff08;点击这里&#xff09;&#xff0c;这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密&#xff0c;哈哈哈 希望帮到更多人&#xff01; 在Anaconda终端下输入代码 pip install --u…

简历避免采坑总结——为什么你的简历杳无音信?程序员的简历该怎么写?看这一篇就够了!毕业生快进 (待更新)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 这段时间熬夜看很多位程序员大佬的简历&#xff0c;也看了…

Git最新版下载(安装包)——阿里镜像快速下载

官网下载 https://git-scm.com/downloads 但是官网下载太慢了&#xff0c;我估计我这网络肯定得下载好几天呢&#xff0c;可能大家也是&#xff0c;于是我找到阿里镜像 下载最新版的Git&#xff0c;利用阿里镜像会下载的很快 https://npm.taobao.org/mirrors/git-for-windows…

[Git GitHub] Windows下安装git,从0开始搭建git环境(配置环境变量+设置git-ssh key...配置)(超全版)

目录前提准备安装GitGit配置配置环境变量git配置ssh认证配置过程配置邮箱和用户名&#xff08;个人身份&#xff09;文本换行符配置前提准备 下载地址&#xff1a;点击此处 点击Windows进行下载。 若下载比较慢&#xff0c;点击此处 安装Git 下载之后&#xff0c;双击Git-2…

如何将本地文件利用git工具上传到github仓库中(超详细+最新版)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 如何将本地文件利用git工具上传到github仓库中一、初次使用…

教你如何申请注册微软邮箱【快速接收发送国外邮件】

如果要收发国内的邮件。网易和QQ不错的选择&#xff0c;如果接受国外邮件&#xff0c;还是国际性的公司&#xff0c;微软的outlook据说用户体验感比较好&#xff0c;先申请着&#xff0c;以备不时之需&#xff01; 申请地址&#xff1a;https://outlook.live.com/owa/ 点击创…

用python实现时间的动态(动态时钟)+ 算出某年某月星期几的所有日期

一个玩得好的朋友突然大晚上的给我布置作业&#xff0c;吓得我精神抖擞。他的原话是&#xff1a; 感觉发现新大陆了&#xff0c;利用小海龟画的&#xff0c;上次玩海龟已经是几个月之前的事情了 https://blog.csdn.net/hanhanwanghaha/article/details/106211876 话不多说&…

如何利用python将mp4文件转换为gif文件 + 代码分享 另附在线转换网址

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 想要将自己的视频设置为gif格式&#xff0c;但上网查了一下…

高教杯数学建模国赛论文模板+2013到2019年的国赛优秀论文+2020年数学建模论文心得---数学建模友友必看

又是一年一度的数学建模国赛&#xff0c;我这次是二战国赛了&#xff0c;不知道为什么&#xff0c;特别喜欢数学建模的氛围&#xff0c;三个人一起努力&#xff0c;通宵奋战&#xff0c;哈哈哈&#xff0c;也许我就是喜欢这种吃苦的感觉吧&#xff0c;哈哈哈&#xff08;感觉自…

一年内英语四六级一次性通过,我是怎么做到的?英语听力阅读技巧干货分享!(2021年8月份最新)

要考四六级啦&#xff0c;要是说这几天就记几千个单词那还是有点不现实&#xff0c;那咱们一起来抱技巧的佛脚吧哈哈哈哈&#xff01; 我四级和六级一次过&#xff0c;听力占了很大部分原因&#xff0c;我的阅读的分每次都是最低的&#xff0c;我也不知道为什么&#xff0c;我…