1

あなたの助けが必要です。これはこれまでの私のプログラムです

import turtle
turtle.showturtle()

def turtle_interface():
    while True :
          n = 0
          instructions = input().split()
          i = instructions[0]
          if len(instructions) > 1:
              n = int(instructions[1])
              if i == 'forward' :
                  turtle.forward(n)
              elif i == 'backward' :
                  turtle.backward(n)
              elif i == 'left' :
                  turtle.left(n)
              elif i == 'right' :
                  turtle.right(n)
              elif i == 'quit' :
                  break
              elif i == 'new' :
                  turtle.reset()
              else :
                  continue

print('Control the turtle!')
turtle_interface()

ご覧のとおり、文字列の後に [n] がない場合、その文字列は無視されています。どうすればこれを修正できますか?

4

1 に答える 1

3

if len(instructions) > 1:テストのせいだと思います。文字列の後に[n]がない場合、命令は1つだけになり、長さは1より大きくなりません。

次のようなことを試してください。

def turtle_interface():
    while True :
          n = 0
          instructions = input().split()
          i = instructions[0]
          if len(instructions) > 1:
              n = int(instructions[1])
              if i == 'forward' :
                  turtle.forward(n)
              elif i == 'backward' :
                  turtle.backward(n)
              elif i == 'left' :
                  turtle.left(n)
              elif i == 'right' :
                  turtle.right(n)
          elif i == 'new' :
              turtle.reset()
          elif i == 'quit' :
              break

の行のインデントと配置に注意してくださいif i == 'new'

于 2012-11-15T01:36:18.287 に答える