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

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

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

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

Q&A

2回答

8574閲覧

list関数でTypeError: 'NoneType' object is not callable が出てしまう

syosyosysosyosy

総合スコア2

Python

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

0グッド

0クリップ

投稿2020/08/11 15:50

ABClist=[status.text]
print(ABClist)(3)

と書いたのですがタイトルのエラーが出てしまいました。リストの三番目はプリントされたのですがなぜエラーが出てしまうのでしょうか?

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

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

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

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

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

guest

回答2

0

None を引数 3 で実行しようとしたためです

解説

python

1print(ABClist)(3)

上記のコードは、次のコードとほぼ同様の処理を実行することになります:

python

1result = print(ABClist) 2result(3)

変数にはメソッドなども代入できますが、print() の実行結果は返り値を返さないため
resultNone となります

None は実行することができないため、次のエラーメッセージが表示されました:

console

1TypeError: 'NoneType' object is not callable

投稿2020/08/11 16:11

編集2020/08/11 17:05
y_shinoda

総合スコア3272

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

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

syosyosysosyosy

2020/08/11 16:25

解答ありがとうございます。 for status in api.search(q=searchWord,count=6) ABClist=[status.text] print(ABClist[3]) と書いたのですが IndexError: list index out of range と出てしまいました。 どうすればいいのでしょうか?
y_shinoda

2020/08/11 16:31

回答を修正しました、失礼しました 3 番目の要素ということは、リストは 0 始まりなので おそらく 2 を指定すると出力されるでしょう
syosyosysosyosy

2020/08/11 16:34

すみません。 恐らく別のエラーがでてしまいました。 IndexError: list index out of range で調べてみたのですが 範囲外の要素を選択していると出たのですがなぜエラーが発生するのかわかりません。
y_shinoda

2020/08/11 16:37

だとすると、おそらく元のリストが要素を 3 つ持っていないものと思われます 次のコードを実行すると、リスト型変数 ABClist 自体の内容が確認できます: print(ABClist)
syosyosysosyosy

2020/08/11 16:40

printを実行すると6つの要素が出てきました。 分かりませんでした。
y_shinoda

2020/08/11 16:54

もしかすると、次のコードを実行した場合にも 6 の要素が表示されますか? print(status.text) そうであれば、3 番目の要素を出力したい場合は ABClist に代入せず 次のようにすると出力されるものと思われます print(status.text[2]) ABClist を print() したときに次のように表示されていた場合は、リストが2重になっています [[要素, 要素, 要素, 要素, 要素, 要素]] この場合は、1番目の要素が 6 つの要素を持つリストになっているので、 次のように参照します: print(ABClist[0][2])
syosyosysosyosy

2020/08/11 17:01

>もしかすると、次のコードを実行した場合にも 6 の要素が表示されますか? print(status.text) されます。 そしてprint(status.text[2])を実行してみたのですが、エラーが出なかったものの、頭文字だけが縦に何文字か並んで表示されました。
syosyosysosyosy

2020/08/11 17:02

頭文字ではなくて検索結果の一部分が縦に4~6文字表示されるようです。
y_shinoda

2020/08/11 17:10

内容が最初の質問からかなり変わってきましたので、 新たに質問を投稿し直した方が良さそうです もう少し全体のコードと、どのような要件なのかの背景も知る必要がありそうですし、 そのためには新たに質問を作成し、MarkDown で説明を行う方が効果的です 他にも、新たに質問を投稿すると次のようなメリットがあります: - 質問者も回答者も新たにポイントを取得できます - すべての回答者が質問を確認し、回答が得られる確率が上がります - 検索でこの質問にたどり着いた人が質問のタイトルに対するシンプルな回答を得ることができ、質問に高評価が得られやすくなります
guest

0

print()関数はNoneオブジェクトを返すからです。

print(ABClist)(3)は以下のように分解できます。

fn = print(ABClist)
fn(3)

fn は print()の戻り値のNoneオブジェクトであるため、これは
None(3)と同義です。

Noneオブジェクトは関数として使用できません(not callable)

投稿2020/08/11 16:07

編集2020/08/11 16:07
sfdust

総合スコア1137

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問