コードを叩くには細心の注意を払わなければならない.


言叶を勉强し始めたばかりの小さな菜鸟として、今日はコードを叩くのに注意しなければならないことを実感しました.油断してはいけません.
午后、本の上の1段のコードに向かって、1つ1つコンピュータの中で入力して、テストの下で运行の结果をテストするつもりです(今の段阶の私、つまり本の上のコードに向かってたたいて、运行の结果を体験して、それだけで、自分で书くことはできません).コードは次のとおりです.
 

  
  
  
  
  1. #  “ ”  
  2. #  , (//) python 2.2 , , (/) 
  3.  
  4. se = raw_input("Sentence: "
  5.  
  6. screen_width = 80 
  7. text_width = len(sentence) 
  8. box_width = text_width + 6 
  9. left_margin = (screen_width - box_width) // 2 
  10.  
  11. print 
  12. print ' ' * left_margin + '+'  + '-' * (box_width-4) +  '+' 
  13. print ' ' * left_margin + '| ' + ' ' * text_width    + ' |' 
  14. print ' ' * left_margin + '| ' +       sentence      + ' |' 
  15. print ' ' * left_margin + '| ' + ' ' * text_width    + ' |' 
  16. print ' ' * left_margin + '+'  + '-' * (box_width-4) + '+' 
  17. print 

その結果、コードのノックが完了し、実行後にエラーメッセージが出力されるのが腹立たしい:Traceback(most recent call last):
  File "E:/python/test.py", line 7, in
    text_width = len(sentence)
NameError: name 'sentence' is not defined
ヒント7行目のsentenceは定義されていないので、悩んでいます.前に名前をつけてsentenceを定義したことがありますね.何度もチェックしてもどこが間違っているのか分かりません.本のコードに向かってもう一度確認しても間違いは見つかりませんでした.最後に何気なく発見しました.最初の行が変数を定義したとき、変数名sentenceが間違っていて、前のコードのsequenceに入力しました.小さなミスで後のグローバルエラーを招きました.コードを叩くのは本当にいい加減ではないようだ.
正しいコード:
 

  
  
  
  
  1. #  “ ”  
  2. #  , (//) python 2.2 , , (/) 
  3.  
  4. sentence = raw_input("Sentence: "
  5.  
  6. screen_width = 80 
  7. text_width = len(sentence) 
  8. box_width = text_width + 6 
  9. left_margin = (screen_width - box_width) // 2 
  10.  
  11. print 
  12. print ' ' * left_margin + '+'  + '-' * (box_width-4) +  '+' 
  13. print ' ' * left_margin + '| ' + ' ' * text_width    + ' |' 
  14. print ' ' * left_margin + '| ' +       sentence      + ' |' 
  15. print ' ' * left_margin + '| ' + ' ' * text_width    + ' |' 
  16. print ' ' * left_margin + '+'  + '-' * (box_width-4) + '+' 
  17. print 

実行結果:
 

  
  
  
  
  1. Sentence: yeah,i have get it 
  2.  
  3.                             +--------------------+ 
  4.                             |                    | 
  5.                             | yeah,i have get it | 
  6.                             |                    | 
  7.                             +--------------------+