我正在做一个关于鸡的小游戏,我遇到了一些我找不到解决方案的问题.问题是我的文本后面有一个小矩形,如下所示:The number of coins and a rectangle behind it. 我还发现错误来自于读取文本文件,代码是:




import pygame
from pygame import *

pygame.init()
surface = pygame.display.set_mode((800,600))
pg = pygame

coins = 0
eggs = 0
time_left = 12
chickens = 0
grain = 0

with open('stats.txt', 'r') as f:
    a = f.readlines()
    coins = a[0]
    eggs = a[1]
    time_left = a[2]
    chickens = a[3]
    grain = a[4]

font = pg.font.Font("freesansbold.ttf", 28)
text = font.render(coins,False,(255,255,255))

run = True
while run:
    surface.fill(0)
    for event in pg.event.get():
        if event.type == pg.QUIT:
            run = False
    surface.blit(text,(20,-2))
    pg.display.update() 



文本文件为:

0
0
12.0
0
0

我不认为我可以改变我从文件中获取信息的方式,但如果你知道一种方法并且有效,你可以让我知道.

推荐答案

在文本的末尾有一个无法显示的字符.文本的最后一个字符是\n,因为文本文件中的每一行都以newline结尾.因此,只需删除文本中尾随的换行符(参见How do I remove a trailing newline?):

coins = a[0]

coins = a[0].rstrip()

Python相关问答推荐

Inquirer库不适用于Pyterfly

Python 枕头上的图像背景变黑

在for循环中保存和删除收件箱

将列表中的元素替换为收件箱中的元素

使用Python和PRNG(不是梅森龙卷风)有效地生成伪随机浮点数在[0,1)中均匀?

指示组内的rejected_time是否在creation_timestamp后5分钟内

如何用symy更新分段函数

返回nxon矩阵的diag元素,而不使用for循环

如何将ctyles.POINTER(ctyles.c_float)转换为int?

如果值不存在,列表理解返回列表

如何让Flask 中的请求标签发挥作用

Telethon加入私有频道

Pandas:将多级列名改为一级

我对我应该做什么以及我如何做感到困惑'

如何设置视频语言时上传到YouTube与Python API客户端

Python脚本使用蓝牙运行在Windows 11与raspberry pi4

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

在Python中使用if else或使用regex将二进制数据如111转换为001""

Maya Python脚本将纹理应用于所有对象,而不是选定对象

OpenCV轮廓.很难找到给定图像的所需轮廓