def文;コードに文法的な間違いがあります。(質問掲示板)
      投稿:  fragile
      投稿:2012/06/24 18:45:24(最新:2012/06/24 22:04:24)
 fragile
      投稿:2012/06/24 18:45:24(最新:2012/06/24 22:04:24)
    
     fragile
      投稿:2012/06/24 18:45:24(最新:2012/06/24 22:04:24)
 fragile
      投稿:2012/06/24 18:45:24(最新:2012/06/24 22:04:24)
    
      4ケタの数を引数に取り、各桁が1かどうかを判定して true,false で返すスクリプトです。
エラーの場所がわからないのですが、どこでしょうか?
    
    ツイート
    エラーの場所がわからないのですが、どこでしょうか?
- テスト1
def dir(k)
a = ca()
a[0] = floor(k/1000)
a[1] = floor((k-1000*a[0])/100)
a[2] = floor((k-1000*a[0]-100*a[1])/10)
a[3] = floor((k-1000*a[0]-100*a[1]-10*a[2])
speak("a[0] = ", a[0])# 7行目
i = 0
while i < 4
  if a[i] == 1
  a[i] = true
  else
  a[i] = false
  end
i=i+1
end
return a
end#syntax error, コードに文法的な間違いがあります。 line(行): 7
- テスト2
def dir(k)
a = ca()
a[0] = floor(k/1000)
a[1] = floor((k-1000*a[0])/100)
a[2] = floor((k-1000*a[0]-100*a[1])/10)
a[3] = floor((k-1000*a[0]-100*a[1]-10*a[2])
#speak("a[0] = ", a[0])
i = 0 # 9行目
while i < 4
  if a[i] == 1
  a[i] = true
  else
  a[i] = false
  end
i=i+1
end
return a
end#syntax error, コードに文法的な間違いがあります。 line(行): 9
- テスト3
def dir(k)
speak("k = ", k)
a = ca()
a[0] = floor(k/1000)
a[1] = floor((k-1000*a[0])/100)
a[2] = floor((k-1000*a[0]-100*a[1])/10)
a[3] = floor((k-1000*a[0]-100*a[1]-10*a[2])
speak("a[0] = ", a[0]) # 9行目
i = 0
while i < 4
  if a[i] == 1
  a[i] = true
  else
  a[i] = false
  end
i=i+1
end
return a
end#syntax error, コードに文法的な間違いがあります。 line(行): 9
- テスト4 def前のspeak機能せず
a = ca()
a[0] = 0
speak("a[0] = ", a[0])
def dir(k)
speak("k = ", k)
a = ca()
a[0] = floor(k/1000)
a[1] = floor((k-1000*a[0])/100)
a[2] = floor((k-1000*a[0]-100*a[1])/10)
a[3] = floor((k-1000*a[0]-100*a[1]-10*a[2])
speak("a[0] = ", a[0]) # 15行目
i = 0
while i < 4
  if a[i] == 1
  a[i] = true
  else
  a[i] = false
  end
i=i+1
end
return a
end#syntax error, コードに文法的な間違いがあります。 line(行): 15
- テスト5
a = ca()
a[0] = 0
speak("a[0] = ", a[0])
<<QQQ
def dir(k)
speak("k = ", k)
a = ca()
a[0] = floor(k/1000)
a[1] = floor((k-1000*a[0])/100)
a[2] = floor((k-1000*a[0]-100*a[1])/10)
a[3] = floor((k-1000*a[0]-100*a[1]-10*a[2])
speak("a[0] = ", a[0]) # 15行目
i = 0
while i < 4
  if a[i] == 1
  a[i] = true
  else
  a[i] = false
  end
i=i+1
end
return a
end
QQQ#エラー無し,speak作
コメントする
コメントするには、ログインする必要があります。
コメント一覧
 退会したユーザー(投稿日:2012/06/24 19:05,
                                               履歴)
 退会したユーザー(投稿日:2012/06/24 19:05,
                                               履歴)
    
      左括弧と右括弧の数がつりあっていないと思います。
文法エラーの行はあんまりアテにしないほうがいいかも・・・。
    
        
  文法エラーの行はあんまりアテにしないほうがいいかも・・・。
#誤 a[3] = floor((k-1000*a[0]-100*a[1]-10*a[2]) #正(意図している動作はしないかも) a[3] = floor(k-1000*a[0]-100*a[1]-10*a[2])
 
 
実は初歩ミスだった、ということは
よくあります。
それに早く気付けるかどうかが大切で
これはもう経験しか。