初心者・未経験者の、Pythonプログラミングに関する質問は大歓迎ですが、以下の点に気をつけてください。
禁止事項¶
当サーバでは、以下のような質問はお断りします。
特定のWebサイトへのスクレイピング・非公開APIに関する質問¶
特定のWebサイトに対する具体的なスクレイピングに関する質問は禁止します。同様に、公開されてないURL・APIの利用に関する質問も禁止します。
学校の課題など¶
宿題は自分でやりましょう。
無断コピー、他者の権利を侵害する質問¶
引用の範囲を超えて、他のWebサイトや書籍等の内容を書き込まないでください。書籍やWebサイトの記事やソースコードについて質問するとき、勝手にコピーして書き込んではいけません。コピーが許可されている場合でも、コピー元のURLなどを明示してください。
また、学校の課題など、第三者が作成した課題を書き込んで回答を求めるのは禁止します。そのような課題にも著作権があり、無断で公開することは著作権の侵害に当たります。
AtCorderなどのプログラミングコンテストなど、プログラミング課題を公開しているWebサイトの問題であっても、コピーして書き込むのは著作権の侵害になります。公開されている問題であれば、URLだけを紹介してください。
クラッキング等に関する質問¶
クラッキング、コンピュータウィルスの開発、不正な情報の取得など、不適切な技術の利用に関する質問は禁止します。
質問には情報をできるだけたくさん書き込みましょう¶
プログラミングをはじめたばかりの人から、次のようなパターンの質問が寄せられることがあります。
❝Discordのボットを開発しているのですが、「名前が見つかりません」というエラーが出てしまいます。どうすればよいでしょう?😢 ❞
これでは、どういうプログラムを開発しているのか、という情報が全く提供されていないので、アドバイスすることができません。
質問には、次のような情報を含めるようにしましょう。
困っている点を、できるだけ詳しく教えてください¶
「プログラムがうまく動きません。どうすればよいでしょう?」とだけ書かれた質問がよくありますが、これだけだと回答が難しいです。最低限、以下の3点を教えてください。
質問のプログラムが何をするプログラムか、教えてください
実行した結果、どんな結果が画面に表示されたか、教えてください。スクリーンショットでもかまいません。
どういう結果が表示されて欲しいのか、期待していた結果を教えてください。
使用している動作環境(プラットフォーム、Pythonのバージョンなど)を教えて下さい¶
開発に使用しているプラットフォーム(Windows10、macOS Catalina など)と、Pythonのバージョンを教えて下さい。
よくわからない場合、コマンドプロンプトなどで python3
コマンド(Windowsでは python
コマンド)を実行すると、次のようなメッセージが表示されます。
$ python3
Python 3.8.3 (default, Jul 2 2020, 11:26:31)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
このメッセージをコピーして、そのまま貼り付けてください。
ソースコードを教えて下さい¶
プログラムが動かない・エラーが発生する、などという質問の場合、そのプログラムのソースコードがないと何が問題なのかわかりません。質問に関するソースコードは、できるだけたくさん書き込んで下さい。
一部分だけを抜粋されると、回答しにくい場合があります。できるだけ全体を書き込んでください。
ソースコードが書きかけでも、出来ているところまで見せて下さい。「〇〇を開発したいんですが、やり方がわかりません」という質問も、できているところまで見せてもらえると、アドバイスしやすいです。
ソースコードは、スクリーンショット画像ではなく、テキストで書き込んでください。画像だと、回答のための実験などが難しくなってしまいます。
ソースコードを書き込むときには、ソースコード専用のマークアップを使うと読みやすくなります。次のようにソースコードを ```python 〜 ``` で囲んで書き込んで下さい。
```python def foo(): print('hello world') def bar(): print('hello world') ```
エラーメッセージは省略しないで下さい¶
Pythonのエラーが発生している場合は、エラーの一部分だけでなく、エラーメッセージ全体を貼って下さい。エラーメッセージが多すぎて困るということはありません。
Pythonの実行中にエラーが出た場合、次のようなメッセージが出力されると思います。
$ python3 -c 'def foo():
1/0
foo()'
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<string>", line 1, in foo
ZeroDivisionError: division by zero
このようなエラーが出た場合、ZeroDivisionError
の部分だけでなく、エラーメッセージ全体を教えて下さい。
エラーメッセージは、次のように非常に長くなってしまう場合があります。しかし、気にせず書き込んでください。
Internal Server Error: /api/entry/ Traceback (most recent call last): File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view return view_func(*args, **kwargs) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/rest_framework/viewsets.py", line 125, in view return self.dispatch(request, *args, **kwargs) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch response = self.handle_exception(exc) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception self.raise_uncaught_exception(exc) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception raise exc File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch response = handler(request, *args, **kwargs) File "/Users/pythonhp/sb/django/drftest/app1/views.py", line 47, in create return super().create(request) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/rest_framework/mixins.py", line 18, in create serializer.is_valid(raise_exception=True) File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/rest_framework/serializers.py", line 220, in is_valid self._validated_data = self.run_validation(self.initial_data) File "/Users/pythonhp/sb/django/drftest/app1/serializers.py", line 18, in run_validation data['body'] = SimpleUploadedFile.from_dict({ File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/django/http/request.py", line 513, in __setitem__ self._assert_mutable() File "/Users/pythonhp/sb/django/drftest/.venv/lib/python3.9/site-packages/django/http/request.py", line 510, in _assert_mutable raise AttributeError("This QueryDict instance is immutable") AttributeError: This QueryDict instance is immutable
Python以外のエラーも、できるだけ省略せず、エラーメッセージ全体を教えて下さい。
エラーメッセージには、個人の氏名や電話番号など、個人情報に属する情報や企業秘密に該当するデータが含まれている場合があります。そういった情報が含まれる場合は、その部分は伏せ字にしてから書き込んで下さい。
マルチポストはしないでください¶
複数の掲示板やチャットなどに、同じ質問を投稿することを「マルチポスト」と言います。
「あっちこっちのチャットにたくさん質問を書き込めば、それだけ速く回答が帰ってくるのではないか?」と思って書き込んでしまうことがありますが、これは回答する側からすると大変やる気を削がれるやり方です。せっかく時間をかけて回答を書いても、先によそで回答されていれば、こっちは不要、ということになってしまいます。
しばらくまっても納得できる回答が得られない質問を、別の掲示板などにマルチポストすることは問題ありません。
しかし、その場合でも、質問を書き込んでから数日程度はマルチポストは控え、新しく他の場所で質問するときには「http://~ 〇〇で質問したんですが、」と参考URLを添えてもらえると、より良い回答が得られる確率があがります。
書き込んだ内容は削除しないでください¶
こういうコミュニティは、単に質問に答えるだけが目的ではなく、いろいろな問題を情報を共有することで、参加者が成長することを目的にしています。自分の用事が済んだあとでも、他の参加者が参照できるように、質問を残しておいてください。