2012-03-28 3 views
0

私はJavaの経験を持つPythonの初心者です。私の高校の仮想ロボットチャレンジのためのPythonモジュールを書く必要があります。技術ベースの競技)クラブ。私は数日間この奇妙な問題を解決しようとしてきましたが、コード内のすべてのバグを修正するのに6時間しかかかりませんでした。ここでは、whileループは、関連する情報があり後に「無効な構文は、」常に最初の行で発生します 値が正しくリスト私のpythonモジュールを実行しているプログラムは、whileループの後に最初の行に構文エラーを返します。

関連するコードに追加されている点に注意してください。

interestlengthl=list() 
interestlengthr=list() 
interestpoint=list() 

def do_examine(robot): 
    examinecount=0; 
    while (examinecount<(max(interestpoint)) <-the while loop 
      i=2+2 <-a innocent line used as an example, this returned an invalid syntax 
    maxpoint=max(interestpoint) 
    tomove=(currentposition-(max[interestpoint]-interestpoint(examinecount))) 
    robot.step_forward(tomove) 
    leftscan=robot.sense_steps(robot.SENSOR_LEFT) 
    rightscan=robot.sense_steps(robot.SENSOR_RIGHT) 
    if (rightscan==interestlengthr(examinecount): 
     robot.turn_right() 
     do_rowscan(robot) 
    if (leftscan==interestlengthl(examinecount): 
     robot.turn_left() 
     do_rowscan(robot) 
    examinecount+=1 
    robot.turn_right(2) 
    currentposition=robot.sense_steps(robot.SENSOR_FORWARD) 
    robot.turn_right(2) 

関連のエラー:

File "L:\controllers\controller_zigzag.py", line 35 
i=2+2 
^ 
SyntaxError: invalid syntax 
+2

本当に?ブロックを開始するすべての文( 'def、if、for、while、class、try、with')は': 'で終わります。 –

+1

' while 'の後に': 'が必要で、おそらく' i = 2他のインデントブロックよりもインデントされているため、「+ 2」になります。 – birryree

+0

これを忘れて、私はそれを修正した。私はパラセーシスの間にオープニングを閉めていなかったし、何とかwhileループの後にa:を追加するのを忘れてしまった。私はそれを修正し、それは正常に働いた。 – cferrier1995

答えて

3

ループなどのように、それらの上にコロンを持っている必要がありますが:

while examinecount < max (interestpoint): 

あなたのifの発言と同様です。そして、さて、それはCではありません - あなたは条件全体の周りにかっこを必要としません。

1

構文エラーは、ループの後にコロンを置かなければならないということです、そして、あなたはアンバランスブラケットを持っている:while (examinecount<(max(interestpoint)) - >while (examinecount<(max(interestpoint))):

関連する問題