Целочисленное преобразование в Python - PullRequest
1 голос
/ 18 июня 2020

Я относительно новичок, когда дело касается python, и знаю, как преобразовывать строки в целые числа. Однако по какой-то причине я не могу рисовать линии из pygame. Перед преобразованием кода в целое число он сказал, что у меня есть предупреждение об устаревании и требуются целые числа вместо имеющихся у меня с плавающей запятой. Я сделал то, что мне сказали, но теперь получаю сообщение об ошибке, что int () не может преобразовать нестроковые значения с явной базой.

До преобразования:

def draw_board(board):
      pygame.draw.line(screen,WHITE, (WIDTH/3,0),(WIDTH/3,HEIGHT),5)
      pygame.draw.line(screen,WHITE,(WIDTH/1.5,0),(WIDTH/1.5,HEIGHT),5)
      pygame.draw.line(screen,WHITE,(0,HEIGHT/1.5),(WIDTH,HEIGHT/1.5),5)
      pygame.draw.line(screen,WHITE,(0,HEIGHT/3),(WIDTH,HEIGHT/3),5)

После преобразования:

def draw_board(board):
      pygame.draw.line(screen,WHITE, (int (WIDTH/3,0), int (WIDTH/3,HEIGHT)),5)
      pygame.draw.line(screen,WHITE,(int (WIDTH/1.5,0), int (WIDTH/1.5,HEIGHT)),5)
      pygame.draw.line(screen,WHITE,(int (0,HEIGHT/1.5), int (WIDTH,HEIGHT/1.5)),5)
      pygame.draw.line(screen,WHITE,(int (0,HEIGHT/3),int (WIDTH,HEIGHT/3)),5)

1 Ответ

2 голосов
/ 18 июня 2020
pygame.draw.line(screen,WHITE, (int (WIDTH/3,0), int (WIDTH/3,HEIGHT)),5)

Здесь две проблемы.

(int (WIDTH/3,0), int (WIDTH/3,HEIGHT))

Это объединяет два ваших аргумента в кортеж, что, как я полагаю, не то, что вам нужно.

int (WIDTH/3,0)

Это передает два аргумента функции int - это тоже не то, что вам нужно.

Для деления между двумя целыми числами вы можете / должны иметь возможность использовать оператор «деления по этажам», например

WIDTH // 3

В противном случае вам понадобится что-то вроде:

pygame.draw.line(screen,WHITE,(0, int(HEIGHT/1.5)), (WIDTH, int(HEIGHT/1.5)),5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...