뉴스대전

파이썬 터틀 프로그램 (고수님들 도와주세요 ㅠㅠ)

2025. 3. 22. 오전 10:59:02

파이썬 터틀 프로그램 (고수님들 도와주세요 ㅠㅠ)

알려주신 코드에서 TypeError: 'float' object cannot be interpreted as an integer 오류가 발생하는 원인은 turtlesize() 메서드에 전달 되는 인자가 정수(integer)가 아닌 실수(float)이기 때문입니다. tSize는 random.randrange(1, 3)를 통해 1 또는 2의 정수 값을 가지지만, playerTurtles 리스트에 저장될 때 실수로 변환될 수 있습니다.

다음은 수정된 코드입니다.

import turtle

import random

myTurtle, tX, tY, tColor, tSize, tShape = [None]*6

shapeList=[]

playerTurtles=[]

swidth, sheight = 500, 500

if __name__ == "__main__":

turtle.title('거북이 리스트 활용')

turtle.setup(width = swidth +50, height = sheight +50)

turtle.screensize(swidth, sheight)

shapeList= turtle.getshapes()

for i in range(0, 99):

random.shuffle(shapeList)

myTurtle = turtle.Turtle(shapeList[0])

tX=random.randrange(-swidth / 2, swidth / 2)

tY=random.randrange(-swidth/2, swidth/2)

r=random.random(); g=random.random(); b=random.random()

tSize=random.randrange(1, 3)

playerTurtles.append([myTurtle, tX, tY, tSize, r, g, b])

for tList in playerTurtles:

myTurtle = tList[0]

myTurtle.color((tList[4], tList[5], tList[6]))

myTurtle.pencolor((tList[4], tList[5], tList[6]))

myTurtle.turtlesize(int(tList[3])) # tList[3] 값을 정수로 변환

myTurtle.goto(tList[1], tList[2])

turtle.done()

  • myTurtle.turtlesizeint(tList<aclass="snsn−−markedtooltip−trigger"data−id="15−2"href="undefined"target="blank"aria−label="출처새창">3</a>

  • int(tList<aclass="snsn−−markedtooltiptrigger"dataid="15−2"href="undefined"target="b

  • lank"arialabel="출처새창">3</a>): tList 값을 int() 함수를 사용하여 명시적으로 정수로 변환했습니다. 이렇게 하면 turtlesize() 메서드에 항상 정수 값이 전달되어 오류를 방지할 수 있습니다.

  • 좋은 결과 있으시길 응원!

글 목록으로 돌아가기