Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

Pythonお悩み解決

学習サポートに寄せられた質問を元に、Pythonの様々な疑問にプロのプログラマーが回答する連載記事です。

「Pythonで使われる()や[]は同じように見えるのですが、どのような違いがあるのでしょうか?」()と[] を解説します。

こんにちはPyQサポートです。 今回はPython初学者向けに「関数の呼び出しで使う( )と要素へのアクセスに使う[ ] 」を解説します。 質問 下記の( )と[ ] は同じに見えてしまうのですが、 どのような違いがあるのでしょうか? 疑問のコード # データをまとめる…

「returnの代わりにprint()を書くと判定がFalseになります」クラス内のメソッドでreturnが必要な理由を解説します。

こんにちは。PyQサポートです。 今回は、「クラス内のメソッドでreturnが必要な理由」を解説します。 質問 クラスを使ってアドレス帳を作ろうとしています。姓、名のデータをつなげてフルネームを表示したり検索したりさせたいです。 そこでフルネームを作る…

正規表現の問題で「IndexError: no such group」というエラーが出てきます。このエラーの意味を教えてください。

こんにちは。PyQサポートです。 今回は正規表現でダブルクォーテーションの間だけ取得しようとした時に出てきたIndexError: no such groupというエラーの意味と考えられる原因を紹介します。 「IndexError: no such group」というエラーのお悩み 正規表現で…

Pythonの実装で、辞書のキーをタイポ(typo)していました。タイポに気づきやすくする方法はありますか?

PyQチームのtsutomuです。 今回は、PyQのお問い合わせにあった問題の解決方法を考えてみます。 質問 書いたコード 回答 辞書は任意のキーを使ってもエラーにならない 解決方法 修正後の結果 このお悩み解決に関連するクエスト 質問 コンピューターとじゃんけ…

正規表現でダブルクォーテーションの間だけ取得するには?

こんにちは。PyQチームのtsutomuです。 正規表現の基礎に関連する話題を紹介します。 質問 書いたコード 実行結果 回答(正規表現のマッチの仕方) 解説 このお悩み解決に関連するクエスト 関連記事 正規表現「[^、]、([^、])、(\d+)円$」の意味と、メソッド…

「TypeError: can only concatenate tuple (not "int") to tupleとは何ですか?」

こんにちはPyQサポートです。 今回はタプルのTypeErrorの意味とこのエラーが出る原因について解説します。 質問 入力した内容(コード) 出たエラー(実行結果) 回答 タプルの要素が一個しかないとき 変数にint(整数)を代入した場合の結合 変数にタプルを…

「演算子の切り捨て除算(//)と剰余(%)が表す意味がわかりません」

質問 切り捨て除算(//)と剰余(%)の問題を解きましたが、 これらの演算子が表す意味がいまいち理解できないので教えてください。 問題のコード # 商の整数部分 print(10 // 3) print(100 // 9) # 余り print(10 % 3) print(88 % 7) 答え(実行結果) 3 11…

プログラミングを学ぶ上で気になる、復習のタイミングについての疑問に答えます

こんにちは。PyQサポートのshimizukawaです。 今回は、「復習のタイミング」についての疑問に答えます。 質問:Pythonを学んでいて理解できない箇所があった時、どのタイミングで復習するべきでしょうか? Pythonを学習していて理解できない部分があっても、…

「(dct, /, **kwargs)の/が表すものとは?」仮引数**kwargsの前に/をつける意味について解説します

こんにちは。PyQサポートです。 今回は「**kwargsの前の/」の記述に関する質問です。 質問 プログラムの該当箇所 TypeErrorになるコード 模範解答のコード 回答 **kwargsの前の/が表すもの 1回目のupdateで行われる処理 2回目のupdateで行われる処理 まとめ …

Pythonでリストのスライスに`.append`しても変更されない?への回答

こんにちは、id:hirokikyです。 今日は、「Pythonでリストのスライスに .append してもリストが変更されないぞ?」という問題の解決法を説明します。 直接この記事がお役に立てるかはわかりませんが、Pythonにおけるリストやスライス、 .append について知る…

「PythonのTypeError: 'int' object is not iterableとは何ですか?」繰り返しで使えないオブジェクトを紹介します。

質問 TypeError: 'int' object is not iterableというエラーが出てきました。このエラーが出現する理由がわからなかったので、教えてください。 入力した内容(コード) sample = 1 for x in sample: print(x) 出たエラー(実行結果) Traceback (most recen…

「Pythonの辞書の改行に関する規約はありますか」PEP8 コーディング規約、自動整形ツールblackを紹介します

質問 回答 PEP8コーディング規約 読みやすい書き方を意識しましょう 規約で定められていないコーディングの差異を統一する手法 black 質問 辞書の{} 内の改行については、規約はあるのでしょうか。 ネットで調べてみたところ、とある記事に『Pythonでは、()…

Python print関数のオプションsepを解説します。カンマ(コンマ) に空白(スペース)を入れたくない時はどうする?

こんにちはPyQサポートです。 今回は、Python初心者の方に「print() 関数内でカンマを使っても、スペースができない方法」を紹介します。 質問 書いたコード 実行結果 回答 区切り文字を指定しましょう 解説 書いたコード 実行結果 print('これは', 'テスト'…

「PythonのKeyErrorとはなんですか?」エラーの出やすい処理と合わせて解説します

こんにちはPyQサポートです。 今回はKeyErrorというエラーの意味と考えられる原因を紹介します。 質問 KeyError: 'birthday'というエラーが出ました。このエラーの意味を教えてください。 入力した内容(コード) d = {"name": "Suzuki"} d["birthday"] 出た…

pandasのデータフレームから特定行を抜き出す処理の意味がわかりません、への回答

こんにちはid:hirokikyです。 今回はpandasのデータフレームから特定行を抜き出す処理に関する質問を紹介します。 質問 pandasのデータフレーム df について、 df[df["y"]==1]["x"] としたとき1個目と2個目の、 df の違いが分かりません。 また、なぜ df …

for文とリスト内包表記のどちらを使うのが良いですか?

こんにちはPyQサポートです。今回は、「for文と内包表記のどちらを使うべきか」を紹介します。 内包表記とは イテラブル 変数itrがイテラブルのときの特徴 いただいた質問 内包表記を使わないプログラム 内包表記を使ったプログラム 回答 内包表記とは [要素…

Pythonの `NameError: name 'xxx' is not defined` とは何ですか?

質問 NameError: name '鈴木' is not definedという内容のエラーが出ます。これはどんなエラーでしょうか?どうすればこのエラーが出なくなりますか? 入力した内容(コード) name = 鈴木 age = 30 print(name) print(age) 出たエラー(実行結果) Tracebac…

「Pythonのargs、kwargsとは?」可変長引数に関する質問への回答

こんにちはid:hirokikyです。 今回はPyQの学習サポートプランでよくいただく*args、**kwargsに関する質問です。 この機能は必ず知っていないといけないというものではありませんが、デコレーターを定義する際やクラスの継承をする際に必要となってきます。 …

「実務ではどのように使われているの?」Pythonのスライスの利用シーンを教えてください

質問 文字列から一部抽出できることは便利だと思いますが、実務で使うイメージが湧きません。 以下の問題で「火・水・木曜日」を抜き出せた時はうれしかったのですが、何の目的で中途半端に抜き出すのか分かりませんでした。 解説では「スライスはよく使いま…

SyntaxError: invalid syntaxとは何ですか?

こんにちはPyQサポートです。 今回はSyntaxError: invalid syntaxというエラーの意味と考えられる原因を紹介します。 質問 入力した内容(コード) 出たエラー(実行結果) 回答 SyntaxError: invalid syntaxの解説 invalid syntaxが出る時にチェックすると…

SQLiteと他のデータベースの違いを紹介します。「SQLiteの特徴を教えてください」

質問 SQLite(エスキューライト)は、ファイルベースのデータベースエンジンです。 SQLiteは、サブクエリーを含むほとんどのSQL構文の実行ができます。 SQLiteは構文が充実していますが、同時接続を並列に処理する機構が比較的弱いという短所があります。 と…

変数名の付け方を紹介します。「プログラムの変数には自分がわかりやすい名前をつけても良いでしょうか」

こんにちはPyQサポートです。 今回はプログラムの変数名のつけ方を紹介します。 質問 下記のコードは、なぜitemとitemsという類似した変数名を使用しているのででしょうか。 非常に似ているのでわかりづらい印象を持ちました。 また、変数は自分で設定できる…

RandomForestRegressorとRandomForestClassifierの違いを解説します

質問 RandomForestRegressorとRandomForestClassifierは、いずれもsklearn.ensembleからインポートし、名前もRandomForestまで共通しています。これらは機能や使い分け場面において、どう異なるのでしょうか。 回答 RandomForestRegressorは、回帰(数値とし…

Pythonお悩み解決【Pythonで正規表現を定数に分離する意味は?】

こんにちはPyQサポートです。 今回はPythonで定数に分離する意味を紹介します。 質問 SALES_FILE_REGEX = re.compile(r"sales_raw_(\d{4})(\d{2})(\d{2}).csv") def main(): sales = [] for name in os.listdir("input/"): m = SALES_FILE_REGEX.search(name…

なぜPythonで「辞書のリスト」が使われる? への回答

id:hirokikyです。 今日はお客様からよくいただく、Pythonのデータ構造に関する質問を解説します。 質問: なぜPythonで「辞書のリスト」が使われる? 回答 Pythonで辞書のリストを活用する ここでのポイント なぜPythonの「リストのリスト」ではダメなのか?…

「コメント(#)とdocstring(""")の違いは?」コメントとdocstringについて解説します

こんにちはPyQサポートです。 今回は、「コメント(#)とdocstring(""")の違い」を解説します。 質問 回答 # から始まる行はコメントです """ で文字列を囲んだものの説明 docstringとは何? コメントに「何をしているか」をなるべく書かない まとめ 質問 この…

「文字列の先頭文字列がスライスで取り出せません」スライスでありがちなミスの解決法を紹介します

こんにちはPyQサポートです。 今回は、「スライスを使い、先頭文字列を取り出したいのですが、なぜ実行されないのでしょうか?」という質問の解決法を紹介します。 質問 回答 動かない箇所から遡って原因を特定する考え方 出力結果 まとめ 質問 文字列の先頭…

「どちらを使っても良い?」Pythonの「==」と「in」の使い分けについて紹介します

こんにちはPyQサポートです。 今回は ==とin の使い分けについて紹介します。 質問 回答・解説 ==とinの違い 「in」演算子 サンプルコード Python公式ドキュメント:in演算 部分シーケンス判定のサンプルコード 包含判定のサンプルコード 質問 PyQクエスト19…

「Pythonで、 `a, b = 100, 200` などの、カンマ区切りの複数の値や変数は何ですか?」タプルのアンパックについて解説します

こんにちは。PyQサポートです。 質問 回答 タプルのアンパック サンプルコード1 アンパックではないタプルの代入の例 サンプルコード2 質問 タプルの解説の中で、「複数の変数に要素を代入する際 a, b = 100, 200 のように()を付けないこともできる」とあり…

辞書.getはどのような処理をするものなのでしょうか?という質問に回答しながら辞書.getについて解説します

こんにちは、PyQサポートです。 今日は、辞書の get メソッドを紹介します。 質問 回答 指定したキーがない場合 質問 「name = employees.get(employee_id)」の「employees.get」について、この.getはどのような処理をするものなのでしょうか? 回答 辞書.ge…

Copyright ©2017-2020 BeProud Inc. All rights reserved.