2017-10-06 5 views
-6

私はプログラミングの初心者で、automatetheboringstuff.comからPythonを学ぼうとしています。 第2章の最後に、以下の質問が表示されます。 公式の回答を経ても、私はまだ無知です。 助けてください!Python 3では "ブロック"とは何ですか?

Q:8。このコードでは三つのブロックを特定します

spam = 0 
if spam == 10: 
    print('eggs') 
    if spam > 5: 
     print('bacon') 
    else: 
     print('ham') 
    print('spam') 
print('spam') 

公式な答えを:

三つのブロックがすべてであるかの内部の文や線 print('bacon')print('ham')

print('eggs') 
if spam > 5: 
    print('bacon') 
else: 
    print('ham') 
print('spam') 
+1

なぜこれが非常に多くのdownvotesを持っているのかわからない、個人的に私は公式の質問と答えは非常に有用でないことがわかります! Pythonインデントが重要な場合は、最後の2つの 'print'呼び出しのインデントを変更し、何が起こるかを確認してください。 –

+0

2番目の最後のインデントを削除しようとしましたが、まだ問題は解決していません。しかし、あなたの助けに非常に感謝しています! – NewbiePython

答えて

1

新しいブロックを使用すると、行のインデントを増やすたびに始まり、ちょうど対応するインデントを解除する前に終了します。

spam = 0 
if spam == 10: 
    print('eggs')  # indent increased, block A 
    if spam > 5:   # still block A 
     print('bacon') # still block A, indent increased, block B inside block A 
    else:    # still block A, indent decreased, block B ended in line above 
     print('ham')  # still block A, indent increased, block C inside block A 
    print('spam')  # still block A, indent decreased, block C ended in line above 
print('spam')   # indent decreased, block A ended in line above 
+0

クリスタルクリアな説明!ありがとう、BoarGules。 – NewbiePython

関連する問題