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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

2回答

998閲覧

Pythonにおける以下の二つのコードの違いが分かりません。インデントによるものなのですが。

NaokiHirose

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/08/03 07:53

編集2022/01/12 10:55

【問題文】
英語の文章からなる文字列 str_engsentence が引数として与えられたとき、str_engsentence 中に含まれる3文字以上の全ての英単語を要素とするリストを返す関数 collect_engwords を作成して下さい。ただし、同じ単語を要素として含んでいて構いません。

【間違い】

def

1 list_punctuation = [".", ",", ":", ";", "!", "?"] 2 for j in range (len(list_punctuation)): 3 str_engsentences = str_engsentences.replace(list_punctuation[j],"") 4 list1 = str_engsentences.split(" ") 5 list2 = [] 6 for j in range(len(list1)): 7 if len(list1[j])>= 3: 8 list2.append(list1[j]) 9 return list2 10コード

【正解】

def

1 list_punctuation = [".", ",", ":", ";", "!", "?"] 2 for j in range (len(list_punctuation)): 3 str_engsentences = str_engsentences.replace(list_punctuation[j],"") 4 list1 = str_engsentences.split(" ") 5 list2 = [] 6 for j in range(len(list1)): 7 if len(list1[j])>= 3: 8 list2.append(list1[j]) 9 return list2 10コード

まだpythonを初めて3日目の初心者です。
おそらく、インデントの持つ意味に混乱しているのだと思います。
皆様のお知恵をお貸しくださいませんでしょうか?

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

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

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

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

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

hayataka2049

2018/08/03 08:32 編集

問題の出典を示した方が良いです(web上ならリンク、書籍等は書籍情報や出版社のページへのリンク、学校の課題や自作問題等ならその旨明記。また、問題作成者の定めた規約等で外部への公開などが制限されている場合もあるので、確認してください)
mkgrei

2018/08/03 08:44

インデントが問題だと質問文で認識しているのに、コードのインデントが反映されていないことに無頓着なのはいかがでしょう…
guest

回答2

0

python

1 list2 = [] 2 for j in range(len(list1)):

に問題があって、インデントを下げうるのは、def、class、for、if、withあたりの直後で、今普通の文の後でインデントが入っているのでいけません。

また、returnが最後にあるので、たぶんdefから始まっていて、そこも載せた方がわかりやすいはずです。

投稿2018/08/03 14:11

mkgrei

総合スコア8560

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

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

0

pythonでは条件式やforなどで、その作用の及ぶ範囲をインデントで表します。なのでインデントは重要な意味を持ちます。質問文ではそれが判断付きかねます。<code>のタグを正しく使って質問されてください。

投稿2018/08/03 08:37

MasahikoHirata

総合スコア3747

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問