🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

Q&A

解決済

1回答

906閲覧

IndentationError: unexpected indent

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

0クリップ

投稿2021/01/15 12:03

編集2021/01/15 12:17

たぶん重要性は低いのですが、IndentationError: unexpected indentというのがよく出ます。
例えば以下のコードを入力すると、

python

1import os 2import cv2 3 4def main(): 5 data_dir_path = u"./ok1/" 6 file_list = os.listdir(r'./ok3/') 7 8 for file_name in file_list: 9 root, ext = os.path.splitext(file_name) 10 if ext == u'.png' or u'.jpeg' or u'.jpg': 11 abs_name = data_dir_path + '/' + file_name 12 image = cv.imread(abs_name) 13 #以下各画像に対する処理を記載する 14 15print('出力したい文字列') 16 17if __name__ == '__main__': 18 main()

IndentationError: expected an indented block

file_list = os.listdir(r'./ok3/')

for file_name in file_list:

File "<stdin>", line 1
for file_name in file_list:
IndentationError: unexpected indent

root, ext = os.path.splitext(file_name)

File "<stdin>", line 1
root, ext = os.path.splitext(file_name)
IndentationError: unexpected indent

if ext == u'.png' or u'.jpeg' or u'.jpg':

File "<stdin>", line 1
if ext == u'.png' or u'.jpeg' or u'.jpg':
IndentationError: unexpected indent

abs_name = data_dir_path + '/' + file_name

File "<stdin>", line 1
abs_name = data_dir_path + '/' + file_name
IndentationError: unexpected indent

image = cv.imread(abs_name)

File "<stdin>", line 1
image = cv.imread(abs_name)
IndentationError: unexpected indent

という風に、サイト(https://www.robotech-note.com/entry/2016/12/08/204143)からとってきたコードなので、割とちゃんとしたやつと思うのですが、
何をどう直すと適切なのかよく分からない。

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

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

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

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

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

meg_

2021/01/15 12:13 編集

> という風に、サイトからとってきたコードなので 引用元を表示した方が良いのではないでしょうか。 検証の為にも元のコードが見たいです。
guest

回答1

0

ベストアンサー

対話的環境で関数などを定義するときは、空白行があるとこうなるのは当然です。
file_list = os.listdir(r'./ok3/') の次の空白行で、関す定義が完了するので、その次のfor file_name in file_list: がインデントなしで始まらなければならないのに、4個のインデントがあるからエラーになるのです。
ファイル実行環境ではこの問題は起きません。

対話的環境ではfor文の前の空白行を削除して、以下のように修正してください。

python

1import os 2import cv2 3 4def main(): 5 data_dir_path = u"./ok1/" 6 file_list = os.listdir(r'./ok3/') 7 for file_name in file_list: 8 root, ext = os.path.splitext(file_name) 9 if ext == u'.png' or u'.jpeg' or u'.jpg': 10 abs_name = data_dir_path + '/' + file_name 11 image = cv.imread(abs_name) 12 #以下各画像に対する処理を記載する

投稿2021/01/15 12:22

編集2021/01/15 12:25
ppaul

総合スコア24670

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問