質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

21808閲覧

IndentationError: expected an indented block  原因はなんでしょうか?

horisuke3232

総合スコア109

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2016/08/22 11:51

Raspberry Pi を使って人感センサーに反応したらiPhoneにお知らせする物を作りたいと思い、調べたところ下記のサイトを発見しました。
https://www.sho-yamane.me/entry/2015/06/07/195407
こちらを参考にgmailのアドレス、パスワードを変更して実行してみたのですが、

python

1line 34 2 """ 3 ^ 4IndentationError: expected an indented block

とエラーが表示されます。

python

1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3from __future__ import print_function 4import os.path 5import datetime 6import smtplib 7import socket 8import time 9import RPi.GPIO as GPIO 10GPIO.setmode(GPIO.BCM) 11GPIO.setup(25, GPIO.IN) 12from contextlib import closing 13from email import Encoders 14from email.Utils import formatdate 15from email.MIMEBase import MIMEBase 16from email.MIMEMultipart import MIMEMultipart 17from email.MIMEText import MIMEText 18#Gmailアカウント 19ADDRESS = "Gmailアドレス" 20PASSWARD = "Gmailパスワード" 21#SMTPサーバの設定(Gmail用) 22SMTP = "smtp.gmail.com" 23PORT = 587 24def create_message(from_addr, to_addr, subject, body, mime=None, attach_file=None): 25""" 26 メッセージを作成する 27 @:param from_addr 差出人 28 @:param to_addr 宛先 29 @:param subject 件名 30 @:param body 本文 31 @:param mime MIME 32 @:param attach_file 添付ファイル 33 @:return メッセージ 34 """

一番最後が34行目です。

"""の前を一度削除して、tabを押した後、"""と入力し直したのですが、同じくエラーが出ます。
何が原因なのでしょうか?

kiruke2525👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

私の環境では、以下(25行目にtab挿入)でエラーが出なくなりました。

python

1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3from __future__ import print_function 4import os.path 5import datetime 6import smtplib 7import socket 8import time 9import RPi.GPIO as GPIO 10GPIO.setmode(GPIO.BCM) 11GPIO.setup(25, GPIO.IN) 12from contextlib import closing 13from email import Encoders 14from email.Utils import formatdate 15from email.MIMEBase import MIMEBase 16from email.MIMEMultipart import MIMEMultipart 17from email.MIMEText import MIMEText 18#Gmailアカウント 19ADDRESS = "Gmailアドレス" 20PASSWARD = "Gmailパスワード" 21#SMTPサーバの設定(Gmail用) 22SMTP = "smtp.gmail.com" 23PORT = 587 24def create_message(from_addr, to_addr, subject, body, mime=None, attach_file=None): 25 """ 26 メッセージを作成する 27 @:param from_addr 差出人 28 @:param to_addr 宛先 29 @:param subject 件名 30 @:param body 本文 31 @:param mime MIME 32 @:param attach_file 添付ファイル 33 @:return メッセージ 34 """

投稿2016/08/22 12:35

編集2016/08/22 12:37
snowfaller

総合スコア125

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

horisuke3232

2016/08/22 19:59

回答ありがとうございました。 25行目が原因でした。
guest

0

ベストアンサー

エラー上は34行目と出ていますが、どちらかというとコメント部分の開始側の問題です。

python

1def create_message(from_addr, to_addr, subject, body, mime=None, attach_file=None): 2 """ 3 メッセージを作成する 4 @:param from_addr 差出人 5 @:param to_addr 宛先 6 @:param subject 件名 7 @:param body 本文 8 @:param mime MIME 9 @:param attach_file 添付ファイル 10 @:return メッセージ 11 """

上記のように、25行目のインデント構造を正しくすれば、
その部分のエラー自体は解消されると思います。

投稿2016/08/22 12:25

attakei

総合スコア2738

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

horisuke3232

2016/08/22 20:00

回答ありがとうございました。 解決いたしました。 しかし、今度はLine44でエラーが。。。
attakei

2016/08/23 03:00

質問内のURL先で記載されているコードなのですが、Pythonに重要なインデント情報が全くなくて、あのままではまともに動かないですね。 どの行をどこまでインデントさせればいいのかを調べるのは面倒そうなのですが、頑張ってみてください。 目安としては、:で終わっている行の次からインデントを1階層進めるように心がければ動くとは思います。
horisuke3232

2016/08/23 09:05

インデント情報が重要ということがわかりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問