import traceback try: print("step1") num = 1/0 except: with open("/Users/alisa/Desktop/学习学习/log.rtf","a") as f: traceback.print_exc(file=f)
老师,为什么代码可以运行但是文件里是空的呢?
import pygame #定义常量 SCREEN_WIDTH = 700 SCREEN_HEIGHT = 500 BG_COLOR = pygame.Color(0,0,0) TEXT_COLOR = pygame.Color(255,0,0) class MainGame(): window = None #初始化方法 def __int__(self) -> None: pass #开始游戏 def startGame(self): #初始化窗口 pygame.display.init() #设置窗口大小 MainGame.window = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT)) #设置敞口的标题 pygame.display.set_caption("坦克大战1.0") while True: #绘制窗口填充色 MainGame.window.fill(BG_COLOR) #添加文字信息提示 textSurface = self.getTextSurface('敌方坦克剩余数量%d'%5) #主窗口显示文字信息 MainGame.window.blit(textSurface,(0,0)) pass #结束游戏 def endgame(self): pass #添加文字信息提示 def getTextSurface(self,text): #初始化字体模块 pygame.font.init() #获取字体对象 font = pygame.font.SysFont('kaiti',18) #绘制文字信息 textSurface = font.render(text,True,TEXT_COLOR) return textSurface class Tank(): def __init__(self) -> None: pass #展示坦克的方法 def displayTank(self): pass #移动坦克 def move(self): pass #射击 def shot(self): pass #我方坦克 class MyTank(Tank): def __init__(self) -> None: pass #敌方坦克 class EnemyTank(Tank): def __init__(self) -> None: pass #子弹类 class Bullet(): def __init__(self) -> None: pass #展示子弹 def displayBullet(self): pass #移动 def move(self): pass #墙壁类 class Wall(): def __init__(self) -> None: pass #展示墙壁 def displayWall(self): pass #爆炸效果类 class Explode(): def __init__(self) -> None: pass #爆炸效果展示 def displayExplode(self): pass #音效类 class Music(): def __init__(self) -> None: pass #播放音乐 def playMusic(self): pass #主方法 if __name__ == '__main__': #调用主类的startgame() MainGame().startGame()
老师·,我这个哪里有问题
我这个为什么出来图像是白的,哪里出错了
老师我这个按钮这块不显示
from tkinter import * from tkinter import messagebox root = Tk() btn01 = Button(root) btn01["text"]="点我就送花" btn01.pack() def songhua(e): messagebox.showinfo("message", "送你一朵玫瑰花,请你爱上我") print("送你99朵玫瑰花")
为什么我的电脑上显示不出来那个窗口,底下是红的
截图20230131185742调试问题.png
我为什么debug什么结果都没有
老师,为什么我的上下左右没有效果
import pygame SCREEN_WIDTH=700 SCREEN_HEIGHT=500 BG_COLOR=pygame.Color(50,50,50) TEXT_COLOR=pygame.Color(250,0,0) class MainGame(): window=None #初始化方法 def __init__(self): pass #开始游戏 def startGame(self): #初始化窗口 pygame.display.init() #设置窗口大小 MainGame.window=pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT)) #设置窗口的标题 pygame.display.set_caption('坦克大战1.03') while True: #给窗口设置填充色 MainGame.window.fill(BG_COLOR) #添加文字信息提示 textSurface=self.getTextSurface("地方坦克剩余数量%d"%5) #主窗口显示文字信息 MainGame.window.blit(textSurface,(5,5)) self.getEvent() pygame.display.update() #结束游戏 def endGame(self): print("谢谢使用,欢迎下次使用") exit() #添加文字信息提示 def getTextSurface(self,text): #初始化字体模块 pygame.font.init() #获取所有字体 #print(pygame.font.get_fonts()) #获取字体对象 font=pygame.font.SysFont("kaiti",18) #绘制文字信息 textSurface=font.render(text,True,TEXT_COLOR) return textSurface #添加事件监听 def getEvent(self): #获取所有事件 eventlist=pygame.event.get() #遍历事件 for event in eventlist: #判断按下是否关闭 if event.type==pygame.QUIT: self.endGame() #判断是否是键盘事件 if event.type==pygame.KEYDOWN: #判断按下的是上 下 左 右 if event.key==pygame.K_LEFT: print("按下左键,坦克向左移动") elif event.key==pygame.K_RIGHT: print("按下右键,坦克向右移动") elif event.key==pygame.K_UP: print("按下上键,坦克向上移动") elif event.key==pygame.K_DOWN: print("按下下键,坦克向下移动") class Tank(): def __init__(self): pass #展示坦克的方法 def displayTank(self): pass #移动坦克 def move(self): pass #射击 def shot(self): pass #我方坦克 class MyTank(Tank): #初始化方法 def __init__(self): pass #敌方坦克 class EnemyTank(Tank): def __init__(self): pass #子弹类 class Bullet(): def __init__(self): pass #展示子弹 def displayBullet(self): pass #移动 def move(self): pass #墙壁类 class wall(): def __init__(self): pass #展示墙壁类 def displayWall(self): pass #爆炸音效类 class Explode(): def __init__(self): pass #展示爆炸效果 def displayExplode(self): pass #音效类 class Music(): def __init__(self): pass #播放音乐 def playMusic(self): pass if __name__=="__main__": MainGame().startGame()
老师import * 不就是代表调用tkinter类中所有的方法吗?
为什么还要单独调用messagebox
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.createWidget() ... app = Application(master=root)
构造函数中传入的参数master的值是root,那self.mater=mater的mater的值是什么,调用父类构造函数时传入的master的值又是什么,没看太懂。
我要吐槽一个这个课程,上来一开始就直接workon pygame_env 的一点不考虑我们虚拟环境会不会搭,我真是服了,教学能不能多考虑考虑学生的痛点啊!!!!!!!
这里如果是root按钮在root = Tk()创建的窗口里
如果是self就在构造方法的窗口对吗?
如果只有一个except,是BaseException,能捕获所有的异常吗?
每次循环方法应该都会执行呀,为什么不声明成全局变量就不显示了?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637