会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

from tkinter import *  # 引用tkinter模块
from tkinter.filedialog import *  # 引用对话框
from tkinter.colorchooser import *  # 引用颜色选择器

win_width = 900
win_height = 500


class Application(Frame):
    def __init__(self, master=None, bgcolor="#000000"):
        super().__init__(master)
        self.master = master
        self.bgcolor = bgcolor
        self.fgcolor = "#ff0000"
        self.x = 0
        self.y = 0
        self.lastDraw = 0  # 表示最后绘制的图形的 id
        self.startDrawFlag = False
        self.pack()
        self.createWidgets()

    def createWidgets(self):
        self.drawpad = Canvas(root, width=win_width, height=win_height * 0.9, bg=self.bgcolor)
        self.drawpad.pack()

        btn_pen = Button(root, text="画笔", name="pen")
        btn_pen.pack(side="left", padx="10")
        btn_line = Button(root, text="直线", name="line")
        btn_line.pack(side="left", padx="10")

        btn_pen.bind_class("Button", "<1>", self.eventManager)
        self.drawpad.bind(("<ButtonRelease-1>", self.stopDraw))

    def eventManager(self, event):
        name = event.widget.winfo_name()
        print(name)
        if name == "line":
            self.drawpad.bind("<B1-Motion>", self.myline)

    def stopDraw(self, event):
        self.startDrawFlag = False
        self.lastDraw = 0

    def myline(self, event):

        self.drawpad.delete(self.lastDraw)
        
        if not self.startDrawFlag:
            self.startDrawFlag = True
            self.x = event.x
            self.y = event.y

        self.lastDraw = self.drawpad.create_line(self.x, self.y, event.x, event.y, fill=self.fgcolor)


if __name__ == '__main__':
    root = Tk()
    root.title("酥酥的画架")
    root.geometry(str(win_width) + "x" + str(win_height) + "+200+100")
    app = Application(master=root)
    root.mainloop()

111.png老师麻烦帮我看一下,卡在“释放鼠标后构建新的直线”这一步上。stopDraw代码没找到有什么问题,但结论效果出不来


Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 2611楼

我方坦克时,游戏界面停止了,并没有出现爆炸效果!


pygametimerandom
pygame.sprite Sprite

SCREEN_WIDTH SCREEN_HEIGHT BG_COLOR pygame.TEXT_COLOR pygame.BaseItemSpritepygame.sprite.Sprite.MainGamewindow my_tank enemyTankList enemyTankCount myBulletList enemyBulletList explodeList pygame.display.MainGame.window pygame.display.SCREEN_WIDTHSCREEN_HEIGHTMainGame.my_tank Tank.pygame.display.time.MainGame.window.BG_COLOR.MainGame.window..MainGame.enemyTankListMainGame.my_tank MainGame.my_tank.liveMainGame.my_tank.MainGame.my_tank
                MainGame.my_tank ....MainGame.my_tank MainGame.my_tank.liveMainGame.my_tank.stopMainGame.my_tank.pygame.display.top i MainGame.enemyTankCountleft random.speed random.enemy EnemyTanklefttopspeedMainGame.enemyTankList.enemyexplode MainGame.explodeListexplode.liveexplode.MainGame.explodeList.explodeenemyTank MainGame.enemyTankListenemyTank.liveenemyTank.enemyTank.enemyBullet enemyTank.enemyBulletMainGame.enemyBulletList.enemyBulletMainGame.enemyTankList.enemyTankmyBullet MainGame.myBulletListmyBullet.livemyBullet.myBullet.myBullet.MainGame.myBulletList.myBulletenemyBullet MainGame.enemyBulletListenemyBullet.liveenemyBullet.enemyBullet.enemyBullet.MainGame.enemyBulletList.enemyBulletpygame.font.font pygame.font.textSurface font.TEXT_COLORtextSurface

    eventList pygame.event.event eventListevent.type pygame.QUIT.event.type pygame.KEYDOWNMainGame.my_tank MainGame.my_tank.liveevent.key pygame.K_LEFTMainGame.my_tank.direction MainGame.my_tank.stop event.key pygame.K_RIGHTMainGame.my_tank.direction MainGame.my_tank.stop event.key pygame.K_UPMainGame.my_tank.direction MainGame.my_tank.stop event.key pygame.K_DOWNMainGame.my_tank.direction MainGame.my_tank.stop event.key pygame.K_SPACEMainGame.myBulletListmyBullet BulletMainGame.my_tankMainGame.myBulletList.myBulletevent.type pygame.KEYUPevent.key pygame.K_UP pygame.K_DOWN event.key pygame.K_LEFT event.key pygame.K_RIGHTMainGame.my_tank MainGame.my_tank.liveMainGame.my_tank.stop TankBaseItem.images pygame.image.pygame.image.pygame.image.pygame.image..direction .image .images.direction.rect .image..rect.left .rect.top .speed .stop .live .direction .rect.left .rect.left .speed
        .direction .rect.top .rect.top .speed
        .direction .rect.top .rect.height SCREEN_HEIGHT.rect.top .speed
        .direction .rect.left .rect.height SCREEN_WIDTH.rect.left .speed

    Bullet.image .images.directionMainGame.window..image.rectMyTankTankEnemyTankTankEnemyTank..images pygame.image.pygame.image.pygame.image.pygame.image..direction ..image .images.direction.rect .image..rect.left .rect.top .speed .flag .step num random.num num num num .step .direction ..step ..step num random.num BulletBulletBaseItem.image pygame.image..direction .direction
        .rect .image..direction .rect.left .rect.left .rect.width.rect.width.rect.top .rect.top .rect.height
        .direction .rect.left .rect.left .rect.width.rect.width.rect.top .rect.top .rect.height
        .direction .rect.left .rect.left .rect.width.rect.width.rect.top .rect.top .rect.width.rect.width.direction .rect.left .rect.left .rect.width
            .rect.top .rect.top .rect.width.rect.width.speed .live .direction .rect.top .rect.top .speed
            .live .direction .rect.left .rect.width SCREEN_WIDTH.rect.left .speed
            .live .direction .rect.top .rect.height SCREEN_HEIGHT.rect.top .speed
            .live .direction .rect.left .rect.left .speed
            .live MainGame.window..image.rectenemyTank MainGame.enemyTankListpygame.sprite.enemyTankenemyTank.live .live explode ExplodeenemyTankMainGame.explodeList.explodeMainGame.my_tank MainGame.my_tank.livepygame.sprite.MainGame.my_tankexplode ExplodeMainGame.my_tankMainGame.explodeList.explode.live MainGame.my_tank.live WallExplode.rect .rect
        .images pygame.image.pygame.image.pygame.image.pygame.image.pygame.image..step .image .images.step.live .step .images.image .images.step.step MainGame.window..image.rect.live .step Music__name__ MainGame.

11.jpg

22.jpg

Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 2612楼
Python 全系列/第二阶段:Python 深入与提高/模块 2613楼
Python 全系列/第二阶段:Python 深入与提高/模块 2614楼

# 编程计算水费
import plotly as py
from plotly import figure_factory as FF
import plotly.graph_objs as pygo
import pandas as pd
import numpy as np
import csv

# 写一个txt文件
f1 = open(r"water.txt","w",encoding="utf-8")
data = "账号 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月\n\
0000359333 772 789 806 847 880 901 950 991 1022 1043 1064 1089 1114\n\
0000359305 121 132 145 156 168 179 192 206 219 230 246 258 273\n\
0000359708 1008 1046 1102 1167 1209 1255 1311 1362 1407 1453 1512 1563 1604\n\
0000359504 541 567 590 622 651 689 701 732 758 775 796 814 847\n\
0000359209 401 412 441 466 479 490 508 522 541 572 603 637 666"
f1.write(data)

# 计算txt文件数据
f2=open("water.txt","r")
head=f2.readline()
sum=0
for line in f2.readlines():
    l=line.split()
    for i in range(len(l)/2):
        s=int(l[i*2+1])+int(l[i*2+2])*1.05
        sum+=s
print(sum)

# 将txt文件转为csv文件
data_txt = np.loadtxt('water.txt')
data_txtDF = pd.DataFrame(data_txt)
data_txtDF.to_csv('water.csv',index=False)

#绘制折线图
pyplt = py.offline.plot     #离线模式
data = pd.read_csv("water.csv",encoding="GBK")
table = FF.create_table(data)
data["水费"]=sum
xdata = data["账号"].tolist()   # 取账户这一列,做列表
ydata = data["水费"].tolist()     # 取水费这一列,做列表
trace = pygo.Scatter(x=xdata,y=ydata,name="水费")     # 水费折线
money = pygo.data(trace)
layout = pygo.Layout(title="用户一年的水费")       #图的标题
money= pygo.Figure(data=money,layout=layout)
print(money)

#关闭文件
f1.close()
f2.close()

创建水量文件“water.txt”文件,其内容第一列为账号,后面是每个月的用水量(后一个数-前一个数),共十二个月。每立方米需付1.05元。 编程计算每户一年的水费,并画出折线图。

0000359333 772  789 806 847 880 901 950 991 1022 1043 1064 1089 1114

0000359305 121  132 145 156 168 179 192 206 219 230 246 258 273

0000359708 1008 1046 1102 1167 1209 1255 1311 1362 1407 1453 1512 1563 1604

0000359504 541 567 590 622 651 689 701 732 758 775 796 814 847

0000359209 401 412 441 466 479 490 508 522 541 572 603 637 666。


老师,这道题我是先写一个txt文件,然后计算txt文件中的数据,后转成表格形式的csv文件,再用csv文件绘制折线图。因为这是昨天晚上写的,那个时候提问老师也下班了,而且掌握的不熟练,程序不长所以我就没有写一下运行一下。报的错误为:


txt文件可以正常输出,但txt文件计算数据时为0,接下来的步骤全是按照平常课程老师举的例子来写的。麻烦老师花点时间看看题目教教我,求教,谢谢!


Python 全系列/第二阶段:Python 深入与提高/文件处理 2615楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 2616楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 2617楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 2619楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 2621楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 2622楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637