10个极简python代码,拿走即用

10个极简python代码,拿走即用,第1张

Hello,大家好,我是程序汪小成~

虽然python是一个易入门的语言,但是很坦改多人依然还是会问到底怎么样学 Python 才最快,答案当然是实战各让携判种小项目, 只有自己去想与写,才记得住规则 。本文写的是 10 个极简任务,初学者可以尝试着自己隐激实现;本文同样也是 10段代码,Python 开发者也可以看看是不是有没想到的用法。

以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来移除所有重复元素。

给定具体的大小,定义一个函数以按照这个大小切割列表。

这个方法可以将布尔型的值去掉,例如(False,None,0,“”),它使用 filter() 函数。

我们常用 For 循环来遍历某个列表,同样我们也能枚举列表的索引与值。

如下代码段可以将打包好的成对列表解开成两组不同的元组。

该方法将通过递归的方式将列表的嵌套展开为单个列表。

该方法将返回第一个列表的元素,且不在第二个列表内。如果同时要反馈第二个列表独有的元素,还需要加一句 set_b.difference(set_a)。

如下代码块可以用来计算执行特定代码所花费的时间。

该算法会打乱列表元素的顺序,它主要会通过 Fisher-Yates 算法对新列表进行排序:

不需要额外的 *** 作就能交换两个变量的值。

以上,是我简单列举的十个python极简代码,拿走即用,希望对你有所帮助!

class Point:

  row=0

  col=0

  def __init__(self, row, col):

    self.row=row

    self.col=col

  def copy(self):

    return Point(row=self.row, col=self.col)

#初始框架

import pygame

import random

#初始化

pygame.init()

W=800

H=600

ROW=30

COL=40

size=(W,H)

window=pygame.display.set_mode(size)

pygame.display.set_caption('贪吃蛇')

bg_color=(255,255,255)

snake_color=(200,200,200)

head=Point(row=int(ROW/2), col=int(COL/2))

head_color=(0,128,128)

snakes=[

  Point(row=head.row, col=head.col+1),

  Point(row=head.row, col=head.col+2),

  Point(row=head.row, col=head.col+3)

]

#生成食物

def gen_food():

  while 1:

    pos=Point(row=random.randint(0,ROW-1), col=random.randint(0,COL-1))

    #

    is_coll=False

    #是否跟蛇碰上了

    if head.row==pos.row and head.col==pos.col:

      is_coll=True

    #蛇身子

    for snake in snakes:

      if snake.row==pos.row and snake.col==pos.col:

        is_coll=True

      昌乎袜  break

    if not is_coll:

   耐激   break

  return pos

#定义坐标

food=gen_food()

food_color=(255,255,0)

direct='left'       #left,right,up,down

#

def rect(point, color):

  cell_width=W/COL

  cell_height=H/ROW

  left=point.col*cell_width

  top=point.row*cell_height

  pygame.draw.rect(

    window, color,

    (left, top, cell_width, cell_height)

  )

  pass

#游戏循环

quit=True

clock=pygame.time.Clock()

while quit:

  #处理事件

  for event in pygame.event.get():

    if event.type==pygame.QUIT:

      quit=False

    elif event.type==pygame.KEYDOWN:

      if event.key==273 or event.key==119:

        if direct=='left' or direct=='right':

          direct='up'

      elif event.key==274 or event.key==115:

        if direct == 'left' or direct == 'right':

    顷帆      direct='down'

      elif event.key==276 or event.key==97:

        if direct == 'up' or direct == 'down':

          direct='left'

      elif event.key==275 or event.key==100:

        if direct == 'up' or direct == 'down':

          direct='right'

  #吃东西

  eat=(head.row==food.row and head.col==food.col)

  #重新产生食物

  if eat:

    food = gen_food()

  #处理身子

  #1.把原来的头,插入到snakes的头上

  snakes.insert(0, head.copy())

  #2.把snakes的最后一个删掉

  if not eat:

    snakes.pop()

  #移动

  if direct=='left':

    head.col-=1

  elif direct=='right':

    head.col+=1

  elif direct=='up':

    head.row-=1

  elif direct=='down':

    head.row+=1

  #检测

  dead=False

  #1.撞墙

  if head.col<0 or head.row<0 or head.col>=COL or head.row>=ROW:

    dead=True

  #2.撞自己

  for snake in snakes:

    if head.col==snake.col and head.row==snake.row:

      dead=True

      break

  if dead:

    print('死了')

    quit=False

  #渲染——画出来

  #背景

  pygame.draw.rect(window, bg_color, (0,0,W,H))

  #蛇头

  for snake in snakes:

    rect(snake, snake_color)

  rect(head, head_color)

  rect(food, food_color)

  #

  pygame.display.flip()

  #设置帧频(速度)

  clock.tick(8)

#收尾工作

这是一个简易版贪吃蛇的代码,虽然结构简单,但是该有的功能都是完整的,可玩性也不错


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12352041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存