#author("2025-01-12T04:53:40+00:00","default:hotate","hotate") #author("2025-01-12T04:53:54+00:00","default:hotate","hotate") #contents &tag(Python); * 概要 [#t4d0ceb3] - [[【連載】ゼロからはじめるPython | マイナビニュース>https://news.mynavi.jp/series/zeropython]] ** [[コーディング規約]] [#ue66b3d4] - [[今時のPythonはこう書く2020 - Qiita>https://qiita.com/nicco_mirai/items/c1810ed2a6fc8c53c006]] (2020/12/6) 現代において(少なくとも関数の戻り値については)型アノテーションは最低限のマナー。型アノテーションをつけない人は挨拶できない人と同じです * 変更点 [#k15daec9] - [[SyntaxError: Missing parentheses in call to 'print' と言われました - Qiita>http://qiita.com/pugiemonn/items/94ac57ba1b7b03548efe]] python3 から print の書き方が変わった print("Hello world") # python 3.x - [[Python2からPython3.0での変更点 - Qiita>https://qiita.com/CS_Toku/items/353fd4b0fd9ed17dc152]] 整数の上限がなくなったためsys.maxint定数は削除された ** 文字列 [#vb539ca9] - [[【Python入門】format関数で文字列の書き方 - Qiita>https://qiita.com/Morio/items/b79ead5f881e6551d9e1]] Python2.6以降はそれに代わる新しい方式が登場しました。それが「format関数」を使って変数を文字列中に埋め込む方法です。 ** [[ISO8601]] [#g9e9616b] - [[Python3でISO 8601形式の時刻を取得する - メモめもメモ>http://blackwhitebear.hateblo.jp/entry/2018/01/05/002850]] 現在のローカル時刻をタイムゾーン付きのISO 8601形式(YYYY-MM-DDThh:mm:ss±hh:mm)で取得します。 Python3.6からはnaiveなdatetimeオブジェクトもastimezone()を使えるようになりました。 ** v3.11 [#v140581b] - [[Python 3.11の新機能(その3)関数呼び出しのインライン化: Python3.11の新機能 - python.jp>https://www.python.jp/news/wnpython311/inline-function.html]] Python 3.11では、パフォーマンスチューニングの一環として、Python関数呼び出しのインライン化 が行われました。既存のPythonインタープリタのしくみを大きく変更する変更ですので、簡単に解説しておきます。 - [[Python3.11が高速化しているかベンチマークしてみた | DevelopersIO>https://dev.classmethod.jp/articles/benchmark-test-python3-11/]] (2022/10/28) 実際のワークロードでは、フィボナッチ関数のような単純な関数の場合ほどではないものの、おおよそ1.2倍は高速化され、高速なインスタンス(CPU)への交換や、ソースコードの最適化をまったくせずに高速化できるのですから、お得としか言いようがありませんね。 ** v3.10 [#u7ecd121] - [[Python 3.10の新機能:「構造的パターンマッチ」とは:Python最新情報キャッチアップ(1/2 ページ) - @IT>https://atmarkit.itmedia.co.jp/ait/articles/2110/08/news035.html]] (2021/10/13) Python 3.10で追加された構造的パターンマッチ(match~case文)の概要と各種パターンの記述方法をサンプルコードと共に紹介する。 ** v3.9 [#u92cdf79] - [[Python3.9の新機能 (まとめ) - Qiita>https://qiita.com/ksato9700/items/d5df9d36147796c86c77]] 2020.10.07 最後は辻褄を合わせて予定通り10/5に3.9.0が出ていました。 * print [#m5d066fd] - [[「Pythonのドキュメントでも読むか~」「え、何その裏技」 #初心者 - Qiita>https://qiita.com/CinnamonSea2073/items/cec093f5a9298aadcdc1]] Python 3.8以降、f-stringの中で=演算子を使用することで変数名とその値を同時に表示できるらしい。 print(f"{x=}, {y=}") # 出力: x=10, y=20 * [[HTTP]] [#xfc5c60e] - [[Python の HTTP クライアントは urllib.request で十分 - Qiita>https://qiita.com/hoto17296/items/8fcf55cc6cd823a18217]] 「その程度の用途なら urllib.request で十分では」と思うことは少なくない。 - [[Requests の使い方 (Python Library)>https://qiita.com/sqrtxx/items/49beaa3795925e7de666]] Requests とは Python の 今風な HTTP ライブラリである. * [[JSON]] [#kd488314] - [[python - フォーマットは標準のjsonモジュールで浮動します formatting | コードサンプル [日本語]>https://code-examples.net/ja/q/161577]] 私は小数点以下2桁で浮動小数点数を整形したい。 出力は次のようになります。 * マルチスレッド [#i9bb1068] - [[concurrent.futures使い方メモ>https://qiita.com/kokumura/items/2e3afc1034d5aa7c6012]] Python3.2で新たに標準となったパッケージで、マルチスレッド、マルチプロセスによる並列タスク処理を簡単に実装できる。 - [[Python: concurrent.futures を使った並行・並列処理 - CUBE SUGAR CONTAINER>https://blog.amedama.jp/entry/2016/02/15/223227]] 似たようなパッケージにはこれまでにも threading や multiprocessing があったんだけど、これはそれよりも高レベルの API になっている。 デフォルトでスレッド・プロセスプールが使えたり、マルチスレッドとマルチプロセスがほとんどコードを変えずに使い分けられるメリットがある。 * 変数 [#g568afc3] - [[Pythonの変数スコープの話>https://qiita.com/msssgur/items/12992fc816e6adf32cff]] グローバル変数を関数内で使用する場合は、 global で定義することで明示的にグローバル変数を使用することができます。 * [[SQLite]] [#i72eef2e] - [[Python3でSQLite3を使う – 基本操作からエラー処理までサンプルコード付 | Crane & to.>https://www.craneto.co.jp/archives/1248/]] この記事では Python3 で SQLite3 に接続する方法、エラー処理(例外処理)、サンプルによるCRUD(※)、PHPer向け注意点についてまとめました。 * ファイル処理 [#t73f9022] - [[Pythonで実行中のファイルの場所(パス)を取得する__file__ | note.nkmk.me>https://note.nkmk.me/python-script-file-path/]] 実行中のファイルの場所(パス)を基準にほかのファイルを読み込みたい場合は、実行中のファイルのディレクトリと読み込みたいファイルの実行中のファイルからの相対パスをos.path.join()で連結する * 進捗表示 [#qfc1cec9] - [[Pythonで進捗表示したい! - Qiita>https://qiita.com/kuroitu/items/f18acf87269f4267e8c1]] 進捗表示の王道(だと勝手に思ってます)、tqdmをまずは紹介しておきます。使い方は非常に簡単、importしてループに次のように組み込むだけです。 * ライブラリ [#pd0c34d6] ** 概要 [#q28b5ace] - [[Python3 ライブラリブック>http://www.k-techlabo.org/www_python/python_modules.pdf]] 各種ライブラリの基本的な使用方法 ** [[diff]] [#w9b1ee84] - [[Pythonのdifflibモジュールを用いて複数行テキストどうしの差分を取得する - 試験運用中なLinux備忘録・旧記事>https://kakurasan.hatenadiary.jp/entry/20100308/p1]] これを用いると複数行のテキストデータどうしをdiffコマンドのように比較し、同コマンドで得られるような形式で結果を得ることができる。 ** f2py [#o190b187] - [[f2pyを利用してPythonのライブラリを作成する>https://kotetsu1701.com/note/f2py-demo/]] (2022/5/9) Fortranのコードをf2pyでコンパイルして.so形式のファイルを作成するもので、作成された.so形式のファイルはPythonのimport文で読み込むことができる。f2pyを利用すれば独自のライブラリを作成することができるわけである。 * 動作環境 [#r170ea93] - [[platformモジュールでOSを判定する - 偏った言語信者の垂れ流し>https://tokibito.hatenablog.com/entry/20111019/1318958426]] Pythonで動作OSの判定をどうやるか探していたら、標準モジュールのplatformを使えという情報をStackOverFlowで見つけた。 ** 仮想環境 [#wdcd747e] - [[venv: Python 仮想環境管理 #Python - Qiita>https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e]] (2019/10/11) venv を使うと pip によるパッケージの導入状態をプロジェクトごとに独立させることができる. * 言語仕様 [#aaf4d68c] - [[Python: 文字列の実行でeval,execからは卒業しよう>https://zenn.dev/sergicalsix/articles/92b9526e20c7a6]] 外部からの入力を直接実行する場合、exec()とeval()を使用するとインジェクション攻撃や予期せぬバグの発生など、セキュリティ上のリスクが高まります。 - [[Python3でLRUキャッシュを用いてプログラムを高速化 #Python - Qiita>https://qiita.com/kotaroooo0/items/4d471932e299edd08b24]] LRUキャッシュ LRUとは、Least Recently Used の略である。メソッドのある引数に対する計算結果を保存しておき、後で同じ引数が与えられた時、計算結果を再利用するというものである * 関連 [#o25c6760] #related #taglist(tag=Python)