Ошибка типа при попытке переместить Черепашку в Python - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь перейти к случайным местам, чтобы нарисовать звезду, но когда я запускаю код, я получаю:

Traceback (последний вызов был последним): файл "so_quick_run.py", строка 36, в

main()   File "so_quick_run.py", line 34, in main
move()   File "so_quick_run.py", line 28, in move
alex.goto(rng(), rng())   File

"/ Система / Библиотека / Каркасы / Python.framework / Versions / 2.7 / lib / python2.7 / lib-tk / turtle.py", строка 1689, в gotoself._goto (Vec2D (* x)) TypeError: аргумент типа объекта после * должен быть последовательностью, а не NoneType

Я думаю, что я получаю эту проблему от использования ГСЧ из команды goto моей черепахи.

#Import turtle
import turtle
wn = turtle.Screen()
alex = turtle.Turtle()

#Turtle Setting
alex.speed(10)
alex.color("yellow")
wn.bgcolor("black")
wn.screensize(600,600)

#Drawing star
def star(alex):
  for x in range(5):
      alex.pendown()
      alex.forward(50)
      alex.right(144)
      alex.penup()

#Randon Number Generator
import random
def rng():
  for i in range(1):
    random.randint(-250,250)

#Moving turtle
def move():
    alex.penup()
    alex.goto(rng(), rng())
    alex.pendown()

#Main funaton
def main():
    for i in range(10):
        move()
        star(alex)
main()

#Ending the loop
wn.mainloop()

1 Ответ

0 голосов
/ 28 сентября 2018

Как уже упоминалось @DYZ, вы ничего не возвращаете в rng(), просто возвращаете случайное число, которое вы сгенерировали:

#Randon Number Generator
import random
def rng():
    for i in range(1):
        return random.randint(-250,250)
...