python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)


Posted in Python onAugust 11, 2020
  • python+pygame实现坦克大战小游戏—可以自定义子弹速度:
  • 运行环境?python3.7、pycharm;
  • 源码需要请:点赞留言邮箱;
  • 正常版子弹速度:

python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)

普通速度版

加速版子弹速度:

python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)

子弹加速版

另外还有多种道具,支持两人一起玩。main()方法如下:

def main():
  pygame.init()
  pygame.mixer.init()
  resolution = 630, 630
  screen = pygame.display.set_mode(resolution)
  pygame.display.set_caption("Tank Game ")
  # 加载图片,音乐,音效.
  background_image = pygame.image.load(r"..\image\background.png")
  home_image = pygame.image.load(r"..\image\home.png")
  home_destroyed_image = pygame.image.load(r"..\image\home_destroyed.png")
  bang_sound = pygame.mixer.Sound(r"..\music\bang.wav")
  bang_sound.set_volume(1)
  fire_sound = pygame.mixer.Sound(r"..\music\Gunfire.wav")
  start_sound = pygame.mixer.Sound(r"..\music\start.wav")
  start_sound.play()
  # 定义精灵组:坦克,我方坦克,敌方坦克,敌方子弹
  allTankGroup = pygame.sprite.Group()
  mytankGroup = pygame.sprite.Group()
  allEnemyGroup = pygame.sprite.Group()
  redEnemyGroup = pygame.sprite.Group()
  greenEnemyGroup = pygame.sprite.Group()
  otherEnemyGroup = pygame.sprite.Group() 
  enemyBulletGroup = pygame.sprite.Group()
  # 创建地图 
  bgMap = wall.Map()
  # 创建食物/道具 但不显示
  prop = food.Food()
  # 创建我方坦克
  myTank_T1 = myTank.MyTank(1)
  allTankGroup.add(myTank_T1)
  mytankGroup.add(myTank_T1)
  myTank_T2 = myTank.MyTank(2)
  allTankGroup.add(myTank_T2)
  mytankGroup.add(myTank_T2)
  # 创建敌方 坦克
  for i in range(1, 4):
      enemy = enemyTank.EnemyTank(i)
      allTankGroup.add(enemy)
      allEnemyGroup.add(enemy)
      if enemy.isred == True:
        redEnemyGroup.add(enemy)
        continue
      if enemy.kind == 3:
        greenEnemyGroup.add(enemy)
        continue
      otherEnemyGroup.add(enemy)
  # 敌军坦克出现动画
  appearance_image = pygame.image.load(r"..\image\appear.png").convert_alpha()
  appearance = []
  appearance.append(appearance_image.subsurface(( 0, 0), (48, 48)))
  appearance.append(appearance_image.subsurface((48, 0), (48, 48)))
  appearance.append(appearance_image.subsurface((96, 0), (48, 48)))
  # 自定义事件
  # 创建敌方坦克延迟200
  DELAYEVENT = pygame.constants.USEREVENT
  pygame.time.set_timer(DELAYEVENT, 200)
  # 创建 敌方 子弹延迟1000
  ENEMYBULLETNOTCOOLINGEVENT = pygame.constants.USEREVENT + 1
  pygame.time.set_timer(ENEMYBULLETNOTCOOLINGEVENT, 1000)
  # 创建 我方 子弹延迟200
  MYBULLETNOTCOOLINGEVENT = pygame.constants.USEREVENT + 2
  pygame.time.set_timer(MYBULLETNOTCOOLINGEVENT, 200)
  # 敌方坦克 静止8000
  NOTMOVEEVENT = pygame.constants.USEREVENT + 3
  pygame.time.set_timer(NOTMOVEEVENT, 8000)
  delay = 100
  moving = 0
  movdir = 0
  moving2 = 0
  movdir2 = 0
  enemyNumber = 3
  enemyCouldMove   = True
  switch_R1_R2_image = True
  homeSurvive     = True
  running_T1     = True
  running_T2     = True
  clock = pygame.time.Clock()
  while True:
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()
      # 我方子弹冷却事件
      if event.type == MYBULLETNOTCOOLINGEVENT:
        myTank_T1.bulletNotCooling = True
      # 敌方子弹冷却事件
      if event.type == ENEMYBULLETNOTCOOLINGEVENT:
        for each in allEnemyGroup:
          each.bulletNotCooling = True
      # 敌方坦克静止事件
      if event.type == NOTMOVEEVENT:
        enemyCouldMove = True
      # 创建敌方坦克延迟
      if event.type == DELAYEVENT:
        if enemyNumber < 4:
          enemy = enemyTank.EnemyTank()
          if pygame.sprite.spritecollide(enemy, allTankGroup, False, None):
            break
          allEnemyGroup.add(enemy)
          allTankGroup.add(enemy)
          enemyNumber += 1
          if enemy.isred == True:
            redEnemyGroup.add(enemy)
          elif enemy.kind == 3:
            greenEnemyGroup.add(enemy)
          else:
            otherEnemyGroup.add(enemy)
      if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_c and pygame.KMOD_CTRL:
          pygame.quit()
          sys.exit()
        if event.key == pygame.K_e:
          myTank_T1.levelUp()
        if event.key == pygame.K_q:
          myTank_T1.levelDown()
        if event.key == pygame.K_3:
          myTank_T1.levelUp()
          myTank_T1.levelUp()
          myTank_T1.level = 3
        if event.key == pygame.K_2:
          if myTank_T1.speed == 3:
            myTank_T1.speed = 24
          else:
            myTank_T1.speed = 3
        if event.key == pygame.K_1:
          for x, y in [(11,23),(12,23),(13,23),(14,23),(11,24),(14,24),(11,25),(14,25)]:
            bgMap.brick = wall.Brick()
            bgMap.brick.rect.left, bgMap.brick.rect.top = 3 + x * 24, 3 + y * 24
            bgMap.brickGroup.add(bgMap.brick)        
        if event.key == pygame.K_4:
          for x, y in [(11,23),(12,23),(13,23),(14,23),(11,24),(14,24),(11,25),(14,25)]:
            bgMap.iron = wall.Iron()
            bgMap.iron.rect.left, bgMap.iron.rect.top = 3 + x * 24, 3 + y * 24
            bgMap.ironGroup.add(bgMap.iron)        
    # 检查用户的键盘操作
    key_pressed = pygame.key.get_pressed()
    # 玩家一的移动操作
    if moving:
      moving -= 1
      if movdir == 0:
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveUp(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving += 1
        allTankGroup.add(myTank_T1)
        running_T1 = True
      if movdir == 1:
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveDown(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving += 1
        allTankGroup.add(myTank_T1)
        running_T1 = True
      if movdir == 2:
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveLeft(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving += 1
        allTankGroup.add(myTank_T1)
        running_T1 = True
      if movdir == 3:
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveRight(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving += 1
        allTankGroup.add(myTank_T1)
        running_T1 = True
    if not moving:
      if key_pressed[pygame.K_w]:
        moving = 7
        movdir = 0
        running_T1 = True
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveUp(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving = 0
        allTankGroup.add(myTank_T1)
      elif key_pressed[pygame.K_s]:
        moving = 7
        movdir = 1
        running_T1 = True
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveDown(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving = 0
        allTankGroup.add(myTank_T1)
      elif key_pressed[pygame.K_a]:
        moving = 7
        movdir = 2
        running_T1 = True
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveLeft(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving = 0
        allTankGroup.add(myTank_T1)
      elif key_pressed[pygame.K_d]:
        moving = 7
        movdir = 3
        running_T1 = True
        allTankGroup.remove(myTank_T1)
        if myTank_T1.moveRight(allTankGroup, bgMap.brickGroup, bgMap.ironGroup):
          moving = 0
        allTankGroup.add(myTank_T1)
    if key_pressed[pygame.K_j]:
      if not myTank_T1.bullet.life and myTank_T1.bulletNotCooling:
        fire_sound.play()
        myTank_T1.shoot()
        myTank_T1.bulletNotCooling = False
    # 玩家二的移动操作
    if moving2:
      moving2 -= 1
      if movdir2 == 0:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveUp(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        running_T2 = True
      if movdir2 == 1:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveDown(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        running_T2 = True
      if movdir2 == 2:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveLeft(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        running_T2 = True
      if movdir2 == 3:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveRight(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        running_T2 = True
    if not moving2:
      if key_pressed[pygame.K_UP]:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveUp(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        moving2 = 7
        movdir2 = 0
        running_T2 = True
      elif key_pressed[pygame.K_DOWN]:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveDown(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        moving2 = 7
        movdir2 = 1
        running_T2 = True
      elif key_pressed[pygame.K_LEFT]:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveLeft(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        moving2 = 7
        movdir2 = 2
        running_T2 = True
      elif key_pressed[pygame.K_RIGHT]:
        allTankGroup.remove(myTank_T2)
        myTank_T2.moveRight(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
        allTankGroup.add(myTank_T2)
        moving2 = 7
        movdir2 = 3
        running_T2 = True
    if key_pressed[pygame.K_KP0]:
      if not myTank_T2.bullet.life:
        # fire_sound.play()
        myTank_T2.shoot()
    
    # 画背景
    screen.blit(background_image, (0, 0))
    # 画砖块
    for each in bgMap.brickGroup:
      screen.blit(each.image, each.rect)    
    # 花石头
    for each in bgMap.ironGroup:
      screen.blit(each.image, each.rect)    
    # 画home
    if homeSurvive:
      screen.blit(home_image, (3 + 12 * 24, 3 + 24 * 24))
    else:
      screen.blit(home_destroyed_image, (3 + 12 * 24, 3 + 24 * 24))
    # 画我方坦克1
    if not (delay % 5):
      switch_R1_R2_image = not switch_R1_R2_image
    if switch_R1_R2_image and running_T1:
      screen.blit(myTank_T1.tank_R0, (myTank_T1.rect.left, myTank_T1.rect.top))
      running_T1 = False
    else:
      screen.blit(myTank_T1.tank_R1, (myTank_T1.rect.left, myTank_T1.rect.top))
    # 画我方坦克2
    if switch_R1_R2_image and running_T2:
      screen.blit(myTank_T2.tank_R0, (myTank_T2.rect.left, myTank_T2.rect.top))
      running_T2 = False
    else:
      screen.blit(myTank_T2.tank_R1, (myTank_T2.rect.left, myTank_T2.rect.top))  
    # 画敌方坦克
    for each in allEnemyGroup:
      # 判断5毛钱特效是否播放      
      if each.flash:
        # 判断画左动作还是右动作
        if switch_R1_R2_image:
          screen.blit(each.tank_R0, (each.rect.left, each.rect.top))
          if enemyCouldMove:
            allTankGroup.remove(each)
            each.move(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
            allTankGroup.add(each)
        else:
          screen.blit(each.tank_R1, (each.rect.left, each.rect.top))
          if enemyCouldMove:
            allTankGroup.remove(each)
            each.move(allTankGroup, bgMap.brickGroup, bgMap.ironGroup)
            allTankGroup.add(each)          
      else:
        # 播放5毛钱特效
        if each.times > 0:
          each.times -= 1
          if each.times <= 10:
            screen.blit(appearance[2], (3 + each.x * 12 * 24, 3))
          elif each.times <= 20:
            screen.blit(appearance[1], (3 + each.x * 12 * 24, 3))
          elif each.times <= 30:
            screen.blit(appearance[0], (3 + each.x * 12 * 24, 3))
          elif each.times <= 40:
            screen.blit(appearance[2], (3 + each.x * 12 * 24, 3))
          elif each.times <= 50:
            screen.blit(appearance[1], (3 + each.x * 12 * 24, 3))
          elif each.times <= 60:
            screen.blit(appearance[0], (3 + each.x * 12 * 24, 3))
          elif each.times <= 70:
            screen.blit(appearance[2], (3 + each.x * 12 * 24, 3))
          elif each.times <= 80:
            screen.blit(appearance[1], (3 + each.x * 12 * 24, 3))
          elif each.times <= 90:
            screen.blit(appearance[0], (3 + each.x * 12 * 24, 3))
        if each.times == 0:
          each.flash = True
    # 绘制我方子弹1
    if myTank_T1.bullet.life:
      myTank_T1.bullet.move()  
      screen.blit(myTank_T1.bullet.bullet, myTank_T1.bullet.rect)
      # 子弹 碰撞 子弹
      for each in enemyBulletGroup:
        if each.life:
          if pygame.sprite.collide_rect(myTank_T1.bullet, each):
            myTank_T1.bullet.life = False
            each.life = False
            pygame.sprite.spritecollide(myTank_T1.bullet, enemyBulletGroup, True, None)
      # 子弹 碰撞 敌方坦克
      if pygame.sprite.spritecollide(myTank_T1.bullet, redEnemyGroup, True, None):
        prop.change()
        bang_sound.play()
        enemyNumber -= 1
        myTank_T1.bullet.life = False
      elif pygame.sprite.spritecollide(myTank_T1.bullet,greenEnemyGroup, False, None):
        for each in greenEnemyGroup:
          if pygame.sprite.collide_rect(myTank_T1.bullet, each):
            if each.life == 1:
              pygame.sprite.spritecollide(myTank_T1.bullet,greenEnemyGroup, True, None)
              bang_sound.play()
              enemyNumber -= 1
            elif each.life == 2:
              each.life -= 1
              each.tank = each.enemy_3_0
            elif each.life == 3:
              each.life -= 1
              each.tank = each.enemy_3_2
        myTank_T1.bullet.life = False
      elif pygame.sprite.spritecollide(myTank_T1.bullet, otherEnemyGroup, True, None):
        bang_sound.play()
        enemyNumber -= 1
        myTank_T1.bullet.life = False  
      #if pygame.sprite.spritecollide(myTank_T1.bullet, allEnemyGroup, True, None):
      #  bang_sound.play()
      #  enemyNumber -= 1
      #  myTank_T1.bullet.life = False
      # 子弹 碰撞 brickGroup
      if pygame.sprite.spritecollide(myTank_T1.bullet, bgMap.brickGroup, True, None):
        myTank_T1.bullet.life = False
        myTank_T1.bullet.rect.left, myTank_T1.bullet.rect.right = 3 + 12 * 24, 3 + 24 * 24
      # 子弹 碰撞 brickGroup
      if myTank_T1.bullet.strong:
        if pygame.sprite.spritecollide(myTank_T1.bullet, bgMap.ironGroup, True, None):
          myTank_T1.bullet.life = False
          myTank_T1.bullet.rect.left, myTank_T1.bullet.rect.right = 3 + 12 * 24, 3 + 24 * 24
      else:  
        if pygame.sprite.spritecollide(myTank_T1.bullet, bgMap.ironGroup, False, None):
          myTank_T1.bullet.life = False
          myTank_T1.bullet.rect.left, myTank_T1.bullet.rect.right = 3 + 12 * 24, 3 + 24 * 24
    # 绘制我方子弹2
    if myTank_T2.bullet.life:
      myTank_T2.bullet.move()  
      screen.blit(myTank_T2.bullet.bullet, myTank_T2.bullet.rect)
      # 子弹 碰撞 敌方坦克
      if pygame.sprite.spritecollide(myTank_T2.bullet, allEnemyGroup, True, None):
        bang_sound.play()
        enemyNumber -= 1
        myTank_T2.bullet.life = False
      # 子弹 碰撞 brickGroup
      if pygame.sprite.spritecollide(myTank_T2.bullet, bgMap.brickGroup, True, None):
        myTank_T2.bullet.life = False
        myTank_T2.bullet.rect.left, myTank_T2.bullet.rect.right = 3 + 12 * 24, 3 + 24 * 24
      # 子弹 碰撞 brickGroup
      if myTank_T2.bullet.strong:
        if pygame.sprite.spritecollide(myTank_T2.bullet, bgMap.ironGroup, True, None):
          myTank_T2.bullet.life = False
          myTank_T2.bullet.rect.left, myTank_T2.bullet.rect.right = 3 + 12 * 24, 3 + 24 * 24
      else:  
        if pygame.sprite.spritecollide(myTank_T2.bullet, bgMap.ironGroup, False, None):
          myTank_T2.bullet.life = False
          myTank_T2.bullet.rect.left, myTank_T2.bullet.rect.right = 3 + 12 * 24, 3 + 24 * 24
    # 绘制敌人子弹
    for each in allEnemyGroup:
      # 如果子弹没有生命,则赋予子弹生命
      if not each.bullet.life and each.bulletNotCooling and enemyCouldMove:
        enemyBulletGroup.remove(each.bullet)
        each.shoot()
        enemyBulletGroup.add(each.bullet)
        each.bulletNotCooling = False
      # 如果5毛钱特效播放完毕 并且 子弹存活 则绘制敌方子弹
      if each.flash:
        if each.bullet.life:
          # 如果敌人可以移动
          if enemyCouldMove:
            each.bullet.move()
          screen.blit(each.bullet.bullet, each.bullet.rect)
          # 子弹 碰撞 我方坦克
          if pygame.sprite.collide_rect(each.bullet, myTank_T1):
            bang_sound.play()
            myTank_T1.rect.left, myTank_T1.rect.top = 3 + 8 * 24, 3 + 24 * 24 
            each.bullet.life = False
            moving = 0 # 重置移动控制参数
            for i in range(myTank_T1.level+1):
              myTank_T1.levelDown()
          if pygame.sprite.collide_rect(each.bullet, myTank_T2):
            bang_sound.play()
            myTank_T2.rect.left, myTank_T2.rect.top = 3 + 16 * 24, 3 + 24 * 24 
            each.bullet.life = False
          # 子弹 碰撞 brickGroup
          if pygame.sprite.spritecollide(each.bullet, bgMap.brickGroup, True, None):
            each.bullet.life = False
          # 子弹 碰撞 ironGroup
          if each.bullet.strong:
            if pygame.sprite.spritecollide(each.bullet, bgMap.ironGroup, True, None):
              each.bullet.life = False
          else:  
            if pygame.sprite.spritecollide(each.bullet, bgMap.ironGroup, False, None):
              each.bullet.life = False
    # 最后画食物/道具
    if prop.life:
      screen.blit(prop.image, prop.rect)
      # 我方坦克碰撞 食物/道具
      if pygame.sprite.collide_rect(myTank_T1, prop):
        if prop.kind == 1: # 敌人全毁
          for each in allEnemyGroup:
            if pygame.sprite.spritecollide(each, allEnemyGroup, True, None):
              bang_sound.play()
              enemyNumber -= 1
          prop.life = False
        if prop.kind == 2: # 敌人静止
          enemyCouldMove = False
          prop.life = False
        if prop.kind == 3: # 子弹增强
          myTank_T1.bullet.strong = True
          prop.life = False
        if prop.kind == 4: # 家得到保护
          for x, y in [(11,23),(12,23),(13,23),(14,23),(11,24),(14,24),(11,25),(14,25)]:
            bgMap.iron = wall.Iron()
            bgMap.iron.rect.left, bgMap.iron.rect.top = 3 + x * 24, 3 + y * 24
            bgMap.ironGroup.add(bgMap.iron)        
          prop.life = False
        if prop.kind == 5: # 坦克无敌
          prop.life = False
          pass
        if prop.kind == 6: # 坦克升级
          myTank_T1.levelUp()
          prop.life = False
        if prop.kind == 7: # 坦克生命+1
          myTank_T1.life += 1
          prop.life = False
           
    # 延迟
    delay -= 1
    if not delay:
      delay = 100  
    pygame.display.flip()
    clock.tick(60)

总结

到此这篇关于python+pygame实现坦克大战小游戏---可以自定义子弹速度的文章就介绍到这了,更多相关python+pygame实现坦克大战小游戏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
python实现批量转换文件编码(批转换编码示例)
Jan 23 Python
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
Sublime开发python程序的示例代码
Jan 24 Python
python学生管理系统代码实现
Apr 05 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
Python简单I/O操作示例
Mar 18 Python
浅析Python 条件控制语句
Jul 15 Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 15 Python
python编程项目中线上问题排查与解决
Nov 01 Python
Python函数递归调用实现原理实例解析
Aug 11 #Python
零基础学python应该从哪里入手
Aug 11 #Python
Python如何测试stdout输出
Aug 10 #Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 #Python
常用的10个Python实用小技巧
Aug 10 #Python
推荐值得学习的12款python-web开发框架
Aug 10 #Python
python多线程semaphore实现线程数控制的示例
Aug 10 #Python
You might like
php 什么是PEAR?(第三篇)
2009/03/19 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
PHP加密技术的简单实现
2016/09/04 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
JS中的数组方法笔记整理
2016/07/26 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
python实现SMTP邮件发送功能
2020/06/16 Python
详解用python实现简单的遗传算法
2018/01/02 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
python实现Zabbix-API监控
2018/09/17 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
医学生个人求职信范文
2013/09/24 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
计划生育证明格式范本
2014/09/12 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
人事文员岗位职责
2015/02/04 职场文书
广告业务员岗位职责
2015/02/13 职场文书
经营场所使用证明
2015/06/19 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
详解Python常用的魔法方法
2021/06/03 Python