Python学習チャンネル by PyQ

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

Pythonお悩み解決

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

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

質問 切り捨て除算(//)と剰余(%)の問題を解きましたが、 これらの演算子が表す意味がいまいち理解できないので教えてください。 問題のコード # 商の整数部分 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に関する質問です。 この機能は必ず知っていないといけないというものではありませんが、デコレーターを定義する際やクラスの継承をする際に必要となってきます。 …

スライスで文字を抽出する意味を教えてください

こんにちはPyQサポートです。今回はスライスの利用シーンを紹介します。 質問 文字列から一部抽出できることは便利だと思いますが、実務で使うイメージが湧きません。 以下の問題で「火・水・木曜日」を抜き出せた時はうれしかったのですが、何の目的で中途…

SyntaxError: invalid syntaxとは何ですか?

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

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

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

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

こんにちはPyQサポートです。 今回はプログラムの変数名のつけ方を紹介します。 質問 # 利用状況 used = ['ボールペン', 'ノート', 'のり', 'のり', 'ノート'] # 集計用辞書 items = {} # 各文房具の利用回数の計算 for item in used: if item in items: ite…

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

「どちらを使っても良い?」「==」と「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…

enumerateのオプションの紹介

こんにちは、PyQサポートです。 今日は、for文などで利用される enumerate のオプションを紹介します。 質問 回答 具体例 質問 for index, work_time in enumerate(work_time_list, start=1) このコードの start=1 とはなんですか? 回答 for文で enumerate …

正規表現の先頭につく`r`は何ですか?エスケープシーケンスやrow文字列を解説します

こんにちは、PyQサポートです。 今日は、正規表現を指定する文字列についている r について紹介します。 質問 回答 特別に解釈される文字 r をつけなくても同じ結果になる理由 質問 if not re.match(r'\d\d\d-\d\d\d\d$', columns[1]): のr'\d\d\dのrですが…

文字列を扱う時の or について。「『if name == 'うな重' or 'ビビンバ丼':』 がうまく動作しません」

ブール演算子 `or` の使い方について紹介します。 質問:「if name == 'うな重' or 'ビビンバ丼':」を実行してもすべてのnameに当てはまってしまいました。なぜでしょうか?

行の最後の「 \ 」とはなんですか?

こんにちは、kamekoです。 行末に書かれた \ について解説します。 質問 回答 公式ドキュメント:字句解析 - 明示的な行継続 公式ドキュメント:字句解析 - 非明示的な行継続 質問 矢印箇所のバックスラッシュの意味を教えてほしいです。 for name in os.lis…

文字列と数値の結合時のエラー「TypeError: must be str, not int」とは?

Pythonお悩み解決は、Python学習サービスPyQの「学習サポート」に寄せられた質問を元に、みなさんのPythonのお悩みにお答えします。 今日は、文字列と数値を結合する際に発生するエラー「TypeError: must be str, not int」を解説します。

with open()などのカッコ中の「=」の前後に、スペースは不要なのですか?

PyQサポートのkamekoです。今日は、関数呼び出し時のキーワード引数の書き方について解説します。 質問 回答 引用: PEP 8 -- Style Guide for Python Code 質問 PEP8のクエストを消化した際に 「=の前後にスペースを入れる」とあったと思うのですが、以下の…

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