是可以的。python可用来
Web开发

数据科学:包括机器学习、数据分析和数据可视化
脚本
你可以用PyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。
我建议使用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台开发游戏,包括Mac、Windows、iOS和Android。
求个Python小游戏
没有什么大型游戏。由于效率和稳定性的原因,几乎没有桌面软件和游戏会使用Python开发。
真正的商业游戏开发,从来都只有两种选择,C++和C#。另外用JS系列(含Typescript、Actionscript),可以制作一些页游项目。除了以上三者之外,其他语言(包括Python)只适合写一些俄罗斯方块之类的小游戏。
扩展资料:
Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。
Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。
python小游戏2048,上班摸鱼必备(附源码)
浅浅的笑着:“我会带着你的孩子,
顚节进入
Python程序开发之简单小程序实例 (11)小 游戏 -跳动的小球 一、项目功能 用户控制挡板来阻挡跳动的小球。 二、项目分析 根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。在控制小球的类中,我们还需要考虑当小球下降时,碰到挡板时的位置判断。 三、程序源代码 源码部分截图: 源码: #!/usr/bin/python36 # -- coding: GBK -- #导入相应模块 from tkinter import import random import time #自定义小球的类 Ball class Ball: # 初始化 def __init__(self,canvas,paddle,color): #传递画布值 selfcanvas=canvas #传递挡板值 selfpaddle=paddle #画圆并且保存其ID selfid=canvascreate_oval(10,10,25,25,fill=color) selfcanvasmove(selfid,245,100) #小球的水平位置起始列表 start=[-3,-2,-1,1,2,3] #随机化位置列表 randomshuffle(start) selfx=start[0] selfy=-2 selfcanvas_heigh=selfcanvaswinfo_height()#获取窗口高度并保存 selfcanvas_width=selfcanvaswinfo_width() #根据参数值绘制小球 def draw(self): selfcanvasmove(selfid,selfx,selfy) pos=selfcanvascoords(selfid)#返回相应ID代表的图形的当前坐标(左上角和右上角坐标) #使得小球不会超出窗口 pad=selfcanvascoords(selfpaddleid)#获取小球挡板的坐标 if pos[1]=selfcanvas_heigh or(pos[3]>=pad[1] and pos[2]>=pad[0] and pos[2]
用python做游戏用什么框架
话不多说,直接上菜
为了方便大家copy,我就不分段解释了
import turtle, random
# 定义一个类,用来画除了数字方块之外的图形
class BackGround(turtleTurtle):
def __init__(self):
super()__init__()
selfpenup()
selfht()
def draw_block(self):
selfshape('bggif') # 画出背景方块
for i in allpos:
selfgoto(i)
selfstamp()
selfcolor('white', 'white') # 画出其他背景
selfgoto(-215, 120)
selfbegin_fill()
selfgoto(215, 120)
selfgoto(215, 110)
selfgoto(-215, 110)
selfend_fill()
selfshape('titlegif')
selfgoto(-125, 210)
selfstamp()
selfshape('scoregif')
selfgoto(125, 245)
selfstamp()
selfshape('top_scoregif')
selfgoto(125, 170)
selfstamp()
# 游戏失败及达成2048的提示文字
def judge(self):
global flag_win, flag_win_lose_text
selfcolor('blue')
judge = 0 # 判断是否还有位置可以移动
for i in block_dicvalues():
for j in block_dicvalues():
if inum == 0 or inum == jnum and idistance(j) == 100:
judge += 1
if judge == 0: # 无位置可移动,游戏失败
selfwrite(' GAME OVERn重新开始请按空格键', align='center', font=('黑体', 30, 'bold'))
flag_win_lose_text = False
if flag_win is True: # 此条件让2048达成的判断只能进行一次
for k in block_dicvalues():
if knum == 2048: # 游戏达成
flag_win = False
selfwrite(' 达成2048n继续游戏请按回车键', align='center', font=('黑体', 30, 'bold'))
flag_win_lose_text = False
def win_lose_clear(self):
global flag_win_lose_text
selfclear()
flag_win_lose_text = True
def show_score(self): # 分值的显示
global score, top_score
if score > top_score:
top_score = score
with open('scoretxt', 'w') as f:
fwrite(f'{top_score}')
selfcolor('white')
selfgoto(125, 210)
selfclear()
selfwrite(f'{score}', align='center', font=('Arial', 20, 'bold'))
selfgoto(125, 135)
selfwrite(f'{top_score}', align='center', font=('Arial', 20, 'bold'))
# 数字方块类
class Block(turtleTurtle):
def __init__(self):
super()__init__()
selfht()
selfpenup()
selfnum = 0
def draw(self):
selfclear()
dic_draw = {2: '#eee6db', 4: '#efe0cd', 8: '#f5af7b',
16: '#fb9660', 32: '#f57d5a', 64: '#f95c3d',
128: '#eccc75', 256: '#eece61', 512: '#efc853',
1024: '#ebc53c', 2048: '#eec430', 4096: '#aeb879',
8192: '#aab767', 16384: '#a6b74f'}
if selfnum > 0: # 数字大于0,画出方块
selfcolor(f'{dic_draw[selfnum]}') # 选择颜色
selfbegin_fill()
selfgoto(selfxcor()+48, selfycor()+48)
selfgoto(selfxcor()-96, selfycor())
selfgoto(selfxcor(), selfycor()-96)
selfgoto(selfxcor()+96, selfycor())
selfgoto(selfxcor(), selfycor()+96)
selfend_fill()
selfgoto(selfxcor()-48, selfycor()-68)
if selfnum > 4: # 按照数字选择数字的颜色
selfcolor('white')
else:
selfcolor('#6d6058')
selfwrite(f'{selfnum}', align='center', font=('Arial', 27, 'bold'))
selfgoto(selfxcor(), selfycor()+20)
class Game():
def init(self):
back = BackGround() # 实例画出游戏的背景
backdraw_block()
for i in allpos: # 画出16个海龟对应16个数字块
block = Block()
blockgoto(i)
block_dic[i] = block
gamegrow()
def restart(self): # 重开游戏的方法
global score, flag_win_lose_text
score = 0
for i in block_dicvalues():
inum = 0
iclear()
win_lose_textclear()
gamegrow()
flag_win_lose_text = True # 此flag为游戏达成或失败出现提示语后的判断,要提示语被clear后才能继续move
def grow(self): # 随机出现一个2或4的数字块
block_list = []
for i in allpos:
if block_dic[i]num == 0:
block_listappend(block_dic[i]) # 挑出空白方块的海龟
turtle_choice = randomchoice(block_list) # 随机选中其中一个海龟

turtle_choicenum = randomchoice([2, 2, 2, 2, 4]) # 赋属性num=2/4
turtle_choicedraw()
win_lose_textjudge()
show_score_textshow_score()
msupdate()
def move_up(self):
allpos1 = allpos[::4] # 切片为四列
allpos2 = allpos[1::4]
allpos3 = allpos[2::4]
allpos4 = allpos[3::4]
selfmove_move(allpos1, allpos2, allpos3, allpos4)
def move_down(self):
allpos1 = allpos[-4::-4]
allpos2 = allpos[-3::-4]
allpos3 = allpos[-2::-4]
allpos4 = allpos[-1::-4]
selfmove_move(allpos1, allpos2, allpos3, allpos4)
def move_left(self):
allpos1 = allpos[:4]
allpos2 = allpos[4:8]
allpos3 = allpos[8:12]
allpos4 = allpos[12:16]
selfmove_move(allpos1, allpos2, allpos3, allpos4)
def move_right(self):
allpos1 = allpos[-1:-5:-1]
allpos2 = allpos[-5:-9:-1]
allpos3 = allpos[-9:-13:-1]
allpos4 = allpos[-13:-17:-1]
selfmove_move(allpos1, allpos2, allpos3, allpos4)
def move_move(self, allpos1, allpos2, allpos3, allpos4):
if flag_win_lose_text is True:
count1 = selfmove(allpos1) # 四列或四行依次移动
count2 = selfmove(allpos2)
count3 = selfmove(allpos3)
count4 = selfmove(allpos4)
if count1 or count2 or count3 or count4: # 判断是否有方块移动,有才能继续出现新的数字块
selfgrow()
def move(self, pos_list):
num_list = [] # 为某一列或行的数字块海龟的坐标
for i in pos_list:
num_listappend(block_dic[i]num) # 把这些海龟的NUM形成list
new_num_list, count = selflist_oper(num_list) # 只是list_oper的方法形成新的list
for j in range(len(new_num_list)): # 把新的list依次赋值给对应的海龟num属性并调用draw()方法
block_dic[pos_list[j]]num = new_num_list[j]
block_dic[pos_list[j]]draw()
return count
def list_oper(self, num_list): # num_list的操作,假设其为2,0,2,2
global score
count = True
temp = []
new_temp = []
for j in num_list:
if j != 0:
tempappend(j) # temp=[2,2,2]
flag = True
for k in range(len(temp)):
if flag:
if k < len(temp)-1 and temp[k] == temp[k+1]:
new_tempappend(temp[k]2)
flag = False
score += temp[k]
else:
new_tempappend(temp[k]) # new_temp=[4,2]
else:
flag = True
for m in range(len(num_list)-len(new_temp)):
new_tempappend(0) # new_temp=[4,2,0,0]
if new_temp == num_list:
count = False # 此变量判断num_list没有变化,数字块无移动
return(new_temp, count)
if __name__ == '__main__':
ms = turtleScreen() # 主窗口的设置
mssetup(430, 630, 400, 50)
msbgcolor('gray')
mstitle('2048')
mstracer(0)
msregister_shape('bggif')
msregister_shape('titlegif')
msregister_shape('scoregif')
msregister_shape('top_scoregif')
block_dic = {} # 放数字方块海龟的字典,位置坐标为key,对应海龟为value
allpos = [(-150, 50), (-50, 50), (50, 50), (150, 50),
(-150, -50), (-50, -50), (50, -50), (150, -50),
(-150, -150), (-50, -150), (50, -150), (150, -150),
(-150, -250), (-50, -250), (50, -250), (150, -250)]
flag_win = True # 达成2048的判断,让达成的文字仅出现一次
flag_win_lose_text = True # 用来判断失败或成功的提示文字是否有被清除,不清除不能继续移动方块
score = 0
with open('scoretxt', 'r') as f:
top_score = int(fread()) # 读取score中的数据
show_score_text = BackGround()
win_lose_text = BackGround()
game = Game()
gameinit()
mslisten()
msonkey(gamemove_up, 'Up')
msonkey(gamemove_down, 'Down')
msonkey(gamemove_left, 'Left')
msonkey(gamemove_right, 'Right')
msonkey(win_lose_textwin_lose_clear, 'Return')
msonkey(gamerestart, 'space')
msmainloop()
这是游戏界面:
欢迎挑战最高分。
要运行出来,必须本地要有这些文件:bggif,scoregif,titlegif,top_scoregif,scoretxt
我把这些文件放在了群里,还有一些学习的资料,群号642109462,欢迎对python感兴趣的进群讨论。
支持作者的,可以关注和点赞。感谢你们!
python能做什么游戏
恰好我目前所在的项目,用的就是 NeoX,服务端用 ,这两个都以 Python 为核心。
很多人应该不了解所以简单说下,算是交流交流。
游戏服务端
完全 Python,没错,一行 C 都没有。
纯粹的 Python 有相当多的优势,各个项目组在分享经验的时候,常常说到 XXX 天不停服。
越是火的游戏,就越是一天 24 小时都有人玩,任何时候停服都是损失。
这时候热更的优势就体现出来了。
而用 Python 实现热更也是非常自然。
游戏客户端
核心引擎部分当然是 C,但是提供的功能很少。
只有基本的渲染,和一些为了提升速度而用 C 实现的库,比如数学库。
所有的逻辑全部 Python 实现。
用惯了 Python 来写逻辑之后,是不太想用其他语言的。
你需要什么能力?
算法,数据结构,C,系统结构,组成原理。。。
画风突变有木有,然而这就是现实,你需要校招表现好,才能去更好的平台发挥。
既然你有 ACM 的经验,那就好好利用这一点。
主流引擎?
Unity ,毫无疑问,Unity 在游戏圈就像 Python 一样流行。
如果你评估自己觉得进大厂很难,那么提前熟悉下 Unity 总没坏处。
推荐书籍?
校招的话,就是老生常谈的那些计算机专业书籍,相关回答已经很多了。
Unity的话,首选官网教程以及项目实践。
一定要看书的话,推荐 《Unity In Action》,目前最好的入门书籍。
Python开发过哪些知名网站和游戏?
Python是一门高级且有趣的编程语言,除了网络爬虫、人工智能、数据分析之外,Python还可以进行游戏开发,为大家介绍五个支持Python的2D、3D游戏开发库。
1、Cocos2d:是一系列开源软件框架,用于构建跨平台2D游戏和应用程序,由cocos2d-x、cocos2d-js、cocos2d-xna和cocos2d多种框架组成,像大鱼赌场、城堡冲突等小游戏,就是用此框架开发出来的。
2、Panda3D:是由迪士尼开发的3D游戏引擎,一个用于Python和C++程序的3D渲染和游戏开发框架,并由卡内基梅陇娱乐技术中心负责维护,使用C++编写的,针对Python进行了完全的封装。
3、Pygame:它是一组Python模块,用来编写游戏,可支持Python37,游戏例子有:纸牌游戏、超级马里奥、击球等多种游戏。
4、Pyogre:ogre 3D渲染引擎的Python绑定,可以用来开发游戏和仿真程序等任何3D应用,它的API更加稳定,也非常快速灵活。
5、RenPy:一个视觉小说引擎,被世界各地的成千万的创造者所使用,它可以帮助你使用文字、图像和声音来讲述电脑和移动设备上的故事。RenPy是开放源码的,可免费的商业用途,易于学习的脚本语言任何人都能有效地编写大型视觉小说,它的Python脚本足以用来模拟游戏。
有什么著名的游戏是用Python编写的
谷歌:Google App Engine、http://codeGooglecom、Google earth、谷歌爬虫、Google广告等项目都在大量使用Python开发
CIA:美国中情局网站就是用Python开发的
NASA:美国航天局(NASA)大量使用Python进行数据分析和运算。美国宇航局从1994年起把python作为主要开发语言。
YouTube:世界上最大的视频网站YouTube就是Python开发的
Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载。
Instagram:美国最大的分享社交网站,每天超过3千万张照片被分享,全部用Python开发
Facebook:大量的基础库均通过Python实现的
Redhat:世界上最流行的Linux发新版本中的yum包管理工具就是用Python开发的
豆瓣:公司几乎所有的业务均是通过Python开发的
知乎:国内最大的问答社区,通过Python开发(Quora)
春雨医生:国内知名的在线医疗网站是用Python开发的
除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
魔兽世界、坦克世界,星战前夜,文明帝国4,战地风云2是用Python编写的。
Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代初设计,作为一门叫做ABC语言的替代品。

Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
相关资料
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和Javascript之上。


