趣味python编程(趣味Python)

2023-11-14 09:00:04 数码极客 bianji01

 

可以用 Python 编程语言做哪些神好玩的事情

大一刚学Python的时候,写了一只12306爬虫,采集车次、时刻表数据

多线程采集,经过不断调试终于稳定,速度也还可以

每天大概可以采集到2000多个车站,5000多个车次,5万多条时刻信息(这些信息每天都在变的,所以要设置不同日期,然后保存)

当然这不算有意思的

有意思的是这个

可以可视化显示各个站点不同时间的车辆运行情况(当然显示部分不是用Python写的了)可以可视化显示各个站点不同时间的车辆运行情况(当然显示部分不是用Python写的了)

采集了这么多数据不利用就太可惜了,于是动了点脑筋,把数据利用起来,就有了下面这些(下面就与Python无关了)

那个时候铁道部还没有发布官网的购票APP,于是有了这个

自己做了个订票的APP,可查询车次、时刻、余票、正晚点

(请忽略图上的水印,这个APP首发是在百度火车吧,懒得再重新截图了)

嗯,虽然当时没有官方的APP,但第三方的还不少,上面的功能也没什么新鲜的

不过下面几个功能一般的APP是没有的

车站详细信息查询,包括所在地址、是否办理旅客乘降、是否办理行包业务,也有一些非路内人士不会在意的信息,比如所属线路、所在路局、是否为接算站等等

编组、乘务、套跑信息

上面两个功能非路内人士应该不会用的太多,下面还有几个实用的功能

在高峰时期订票电话经常打不通,其实这个是有些小技巧的,加拨同路局其它城市区号效果会好很多(当时电话订票是要拨打出发地所在路局的电话的,不知道现在是否实现了电话跨路局售票)

座位分布,想刷靠窗座位就看这个吧

根据二维码验票真伪

将来的你一定会感谢今天拼命努力的你(二维码自动识别)

放票时间查询

界面丑的要死,请大家忽略界面吧。。

本回答由提问者推荐

python有趣的编程代码

classPoint:

row=0

col=0

def__init__(self,row,col):

self.row=row

self.col=col

defcopy(self):

returnPoint(row=self.row,col=self.col)

#初始框架

importpygame

importrandom

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)

#生成食物

defgen_food():

while1:

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

is_coll=False

#是否跟蛇碰上了

ifhead.row==pos.rowandhead.col==pos.col:

is_coll=True

forsnakeinsnakes:

ifsnake.row==pos.rowandsnake.col==pos.col:

is_coll=True

break

ifnotis_coll:

break

returnpos

#定义坐标

food=gen_food()

food_color=(255,255,0)

direct=left#left,right,up,down

defrect(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)

#游戏循环

quit=True

clock=pygame.time.Clock()

whilequit:

#处理事件

foreventinpygame.event.get():

ifevent.type==pygame.QUIT:

quit=False

elifevent.type==pygame.KEYDOWN:

ifevent.key==273orevent.key==119:

ifdirect==leftordirect==right:

direct=up

elifevent.key==274orevent.key==115:

ifdirect==leftordirect==right:

direct=down

elifevent.key==276orevent.key==97:

ifdirect==upordirect==down:

direct=left

elifevent.key==275orevent.key==100:

ifdirect==upordirect==down:

direct=right

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

#重新产生食物

ifeat:

food=gen_food()

#处理身子

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

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

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

ifnoteat:

snakes.pop()

ifdirect==left:

head.col-=1

elifdirect==right:

head.col+=1

elifdirect==up:

head.row-=1

elifdirect==down:

head.row+=1

dead=False

#1.撞墙

ifhead.col<0orhead.row<0orhead.col>=COLorhead.row>=ROW:

dead=True

#2.撞自己

forsnakeinsnakes:

ifhead.col==snake.colandhead.row==snake.row:

dead=True

break

ifdead:

print(死了)

quit=False

#渲染——画出来

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

forsnakeinsnakes:

rect(snake,snake_color)

rect(head,head_color)

rect(food,food_color)

pygame.display.flip()

#设置帧频(速度)

clock.tick(8)

#收尾工作

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

声明:易趣百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系315127732@qq.com
广告位招租
横幅广告