タグ

Pythonに関するmoonbloggerのブックマーク (284)

  • 【超初心者向け】Pythonのテストの書き方(pytest, unittest) - Qiita

    概要 pythonでテストコードを書くときがありますが、(筆者のように)超初心者からすると難しい用語や書き方がたくさん並んでいてハードルが高いです。 テストコードの入口となる最低限(最低限過ぎるかもしれませんが)の書き方を備忘を兼ねて書きます。 pythonでのテストコードを書く時のライブラリの種類 筆者が簡単に調べたところ、2つのライブラリがよく使われているようです。 unittest : python標準ライブラリ。インストールが必要ない。pytestと比較すると、柔軟なテストケースを書きづらい。 pytest : サードパーティ製のライブラリ。インストールの必要がある。柔軟なテストケースが書ける。pythonのテストコードを書く時のデファクトスタンダートになりつつある模様(これが当かは確認していないですが、そういう記述を見かけることが多かったです)。 筆者個人としては、以下の3つの

    【超初心者向け】Pythonのテストの書き方(pytest, unittest) - Qiita
  • Python + VSCode の環境構築 20240604

    作業メモ。モダン Python 速習。 AI 周りのツールを動かしていたら TypeScript だけでやるには無理が出てきたので、久しぶりに Python の環境構築をする。 具体的には TestGen LLM を動かしたい。 Python はたまに触るけど、基 2.x 時代の知識しかない。 基的にこの記事を読みながら、細かいアレンジをしている。 追記 rye が ruff と pytest を同梱してるので rye fmt, rye check, rye test で良かった uvicorn を叩くより、 fastapi-cli を使って起動したほうが良さそうので変更 基方針: Rye に全部任せる 良く出来てると噂に聞いたので、 rye に任せる。 自分が Python が苦手な点は pip を下手に使うと環境が汚れていく点で、基的に rye で閉じて管理させる。システムの

    Python + VSCode の環境構築 20240604
  • PythonでWebアプリ作れるやつのまとめ(11選)

    概要 最近、pythonUI部分も含めたWebアプリ作成ツールがいろいろ出てきているので、知っている限りでまとめてみようと思います。 (solara追加(2023/5/15), reactpy追加(2023/11/6), taipy追加(2023/12/2), fastui追加(2023/12/11)) FastUI Taipy ReactPy Solara Reflex Flet Streamlit Dash Panel NiceGUI Gradio 各ツールの紹介 FastUI FastAPIのエンドポイントを定義する関数内にUIを定義する感じで書く Taipy 書き方としてはマークダウンっぽいテンプレート用いてUIを作成する感じ DAGツールを簡単に作れるScenarioという機能がある ReactPy その名の通りReactPythonに移植したような感じのフレームワーク サー

    PythonでWebアプリ作れるやつのまとめ(11選)
  • PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita

    記事で言及しているReflexのdiscord内に日語チャンネルをつくってもらいました。もし、興味をもった人がいたら参加してみてください。 1.PythonだけでWebアプリをつくるライブラリが増えている 最近(2024.05)、Python界隈ではPythonだけでWebアプリが作れるライブラリが増えています。詳しくは他の記事を参照してもらえればと思います。 以下の記事がとても参考になりました。ありがとうございます。 2.ライブラリの分類 こうしたライブラリも大きくわけて2つの種類があるように思います。 ①データ解析の結果を表示するダッシュボードライブラリ ②汎用的なWebアプリをつくるローコードライブラリ ①ダッシュボード系ライブラリ たとえば、上記の記事にも出てきますし、ネットでもかなり情報の多い、StreamlitやDashは項番1のダッシュボードライブラリに該当すると思いま

    PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita
  • Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita

    この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの

    Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita
  • Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp

    寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsmacOSデスクトップアプリを作る方法を解説します。 目的⁠・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ

    Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp
  • pythonでリストを生成するときにlist()と[]どっちを使うか? - Qiita

    個人的には、前者の方がわかりやすいので[]を使っていたのですが、 同じチーム内にlist()で書く人もいて、コードレビューのときに「結局どっちがいいんだっけ?」の議論になったので両者の違いをまとめようと思います。 結論 以下の観点から[]を使うルールにしました。 読みやすさ []は他の多くのプログラミング言語(例えば JavaScriptC++Java など)でも配列やリストを表すのに使われており、一般的に慣れ親しんだ表現であること。 Python教育/学習資料でも、空のリストを生成する標準的な方法として[]が紹介されている印象。 シンプルに[]の方が簡潔 一方で、list()はpython特有の記法であり、pythonに精通していない人は一瞬「?」となる。 パフォーマンス [] は list() よりも生成が速い。 検証してみた 両方の書き方でそれぞれ空のリストを100万回作成する

    pythonでリストを生成するときにlist()と[]どっちを使うか? - Qiita
  • 僕の考えた最強の Python 開発環境 (2024)

    はじめに こんにちは, 普段は情報科学専攻の大学院生をしながらバックエンドエンジニアをやっている @koki-algebra です. 普段は Go をよく書いているのですが, 大学でやっている機械学習の研究では Python を使うことがほとんどです. Go のエコシステムに慣れきった私は Python の混沌とした環境に耐えきれず, 最強の開発環境を整えることを決意しました. 具体的には Package Manager, Formatter, Linter, Type Checker, Test Tool を選定し, VSCode の DevContainer を用いてポータビリティに優れた開発環境を作ることを目指します. また, Deep Learning では GPU が必須である場合が多いので, GPU 環境も同時に整えたいと思います. 以下のレポジトリが今回考えた開発環境のテンプ

    僕の考えた最強の Python 開発環境 (2024)
  • インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】 - Qiita

    在宅勤務している人、多いですよね。 いつでも配達を受け取れてとても助かります。 しかし...2階で仕事をしていると、 インターホンの音が聞こえにくい! 他のことに集中していると気づかない!!!! せっかく配達に来てくれたのだから、一発で受け取りたいものです。 エンジニアらしく仕組みで解決しましょう! 忙しい人のための超要約 インターホンの室内モニタのA接点を使用します(鳴ると接点が閉じる) RaspberryPi Zero WH を用いて、A接点のオンオフによりGPIOの出力3.3VをGPIO17に印加する回路を組みます GPIO17に印加されたことをPythonスクリプトで検知します 検知したらLINE Messaging APIを使用してpush通知を送信します この説明で理解できる人は、記事全体を読む必要ないと思います。 電子工作初心者でも理解しやすいよう丁寧に書き上げたので、ぜひご

    インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】 - Qiita
  • Python滅ぼす協会に入会したい

    なぜ令和にもなって動的型付け言語を使うのか シフトレフトという概念が生まれたのは二十年以上も前のはずだ。 それにもかかわらず動かしてみるまで答え合わせもできない言語で開発をするという発想自体がどうかしている。 同じ動的型付けといってもJavaScriptはブラウザという事情があるし、型の表現力に優れたTypeScriptがあるからまだよい。 しかし、Pythonはどうだ。他にいくらでも選択肢があるなかで、サーバーサイドにわざわざ選定する言語ではなかろう。 貧弱な型ヒント、しかも書いたところで大した効用もない。 使っている外部ライブラリにひとつでも型ヒントがクソなものがあれば即座に破綻する。 型というガードレールもシートベルトもなしで糞を撒き散らしながらする開発にはうんざりだ。 シンタックスもキモい 動的型付けもさることながら、シンタックスもキモい。とにかく思考を妨げる語順になっている。 m

    Python滅ぼす協会に入会したい
  • 非同期処理をシンプルなPythonコードで説明する - Qiita

    想定読者 非同期処理がいまいちイメージできないという人 非同期処理って具体的にどう書くの?という人 Pythonの基文法はなんとなく知っているよという人(←具体的な実装方法を知りたい人のみ) Pythonがパソコンにインストールされている(←動作確認したい人のみ) 非同期処理、同期処理とは? まずは結論から。 非同期処理とは、 あるタスクが終了するのを待っている間、別のタスクを実行すること。 同期処理とは、 処理を順番に実行していくこと。 以下、詳しく書いて行きます。 非同期処理のイメージ 非同期処理のイメージは、 家事を並行してこなすことに似ています。 例えば、 ご飯を炊いている間、炊飯器の前でただ炊けるのを待っていては、時間がもったいないです。 炊けるまでの1時間の間に、他のメニューを作ったり、部屋の掃除をした方が効率的です。 このように、 タスクA(ご飯を炊く)が完了するまでの間、

    非同期処理をシンプルなPythonコードで説明する - Qiita
  • 【Flet入門】Fletとは?ローカルでFlet開発を始める - Qiita

    想定読者 Pythonの基文法は、なんとなく分かっている人(入門者以上、初心者未満くらい) MacBookユーザー(サンプルコードの動作確認をしたい人) Fletとは? Fletは、Pythonを使ってウェブアプリやデスクトップアプリを作成できるフレームワークです。 フレームワークとは、よく使われる機能があらかじめ用意されたツールです。 Fletを利用することで、 Python以外の知識が乏しくても、アプリを開発できます。 来、画面を作るにはHTML, CSS, JavaScriptなどの言語を学ぶ必要があります。 Pythonと合わせ、それらの言語を学び実際に開発まで漕ぎ着けるのは、初学者にとって大きなハードルでしょう。 Fletを使うことで、HTMLなどの画面作成に使う言語知識が乏しくても、簡単にカッコいいデザインのウェブアプリを作成することができます。 Fletを学ぶメリット F

    【Flet入門】Fletとは?ローカルでFlet開発を始める - Qiita
  • GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultraに同じ質問をして、回答結果を比較してみた - Qiita

    GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultraに同じ質問をして、回答結果を比較してみたPythonAWSAzureOpenAIGoogleCloud はじめに GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultra(Gemini Advanced)に同じ質問をして、回答結果を比較してみました。 Gemini Ultra以外のモデルはPythonコード上から実行し、Gemini UltraはGemini Advancedのチャット上で実行しています。 各モデルの詳細は以下のとおりです。 G

    GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultraに同じ質問をして、回答結果を比較してみた - Qiita
  • 競プロでよく使うけど空で書けないフレーズ - Qiita

    はじめに よく使うけどうろ覚えなものをまとめました. 順列・組合せ・重複列挙 リストからいくつか選んだ順列or組合せor重複組合せを列挙 from itertools import product, permutations, combinations L = [1,2,3,4]; k = 2; N = 3 for p in permutations(L,k): print(p,end=' ') #(1, 2) (1, 3) (1, 4) (2, 1) (2, 3) (2, 4) (3, 1) (3, 2) (3, 4) (4, 1) (4, 2) (4, 3) for c in combinations(L,k): print(c, end=' ') #(1, 2) (1, 3) (1, 4) (2, 3) (2, 4) (3, 4) for pro in product((0,1),

    競プロでよく使うけど空で書けないフレーズ - Qiita
  • Pythonでコードに意図を込める方法 - Qiita

    はじめに 可読性の高いコードを書くためには、開発者の意図をコード上で表現することが重要です。この記事ではコードに意図を込めるいくつかの方法について説明します。いずれも基礎的なものであり、かつ粒度に若干ばらつきがありますがご容赦ください。 方法 適切な命名をする 適切な命名はコードの意図を伝える単純かつ最も強力な方法。変数や関数の役割や機能を十分表現するような具体的な命名を心がける。例えばリーダブルコードによると、適切な命名のために以下のような指針が示されている。 指針 例

    Pythonでコードに意図を込める方法 - Qiita
  • kindle本をPower BIですっきり管理!【Python】 - Qiita

    <response> <sync_time>2023-12-15T15:42:26+0000;softwareVersion:70673;SE:F;SC:F;CS:S;CT:F;ST:KS-15000000000023,Periodical-1702654946091,KB-15000000001458,</sync_time> <cache_metadata> <version>1</version> </cache_metadata> <add_update_list> <meta_data> <ASIN>B0BSPC58ZH</ASIN> <title pronunciation="オカルトケンハソンザイシナイ003">オカルト研は存在しない!! 3 (ヤングアニマルコミックス)</title> <authors> <author pronunciation="カワライユウキ">河原

    kindle本をPower BIですっきり管理!【Python】 - Qiita
  • Pythonでリストを多用しがちな新人に贈りたい、array/tuple/set/queueの魅力と使い分けフローチャート - Qiita

    Pythonでリストを多用しがちな新人に贈りたい、array/tuple/set/queueの魅力と使い分けフローチャートPythonarray初心者tupleset はじめに みずほリサーチ&テクノロジーズの @fujine です。 Pythonのリストってとても便利ですよね。可変長で任意のオブジェクトを保存できるため、シーケンシャルなデータなら何でもリストで実装したくなる気持ち、分かります。 でもちょっと待ってください!リスト以外にも便利なコレクション型があること、ご存知でしょうか?コレクション型を適切に使い分けることで、 プログラムの意図を(ドキュメントに頼らなくても)読み手に的確に伝えられる パフォーマンスが向上する などの効果が期待できます。 そこで記事では、Pythonの組み込み型や標準ライブラリを対象に、リストと似たコレクション型をどのように使い分けるか?の案をフローチャー

    Pythonでリストを多用しがちな新人に贈りたい、array/tuple/set/queueの魅力と使い分けフローチャート - Qiita
  • [解説]Pythonを用いた株価・経済データの取得方法をまとめてみた - Qiita

    pandas-datareader をちゃんと理解して使おう 自己紹介 慶應義塾大学 経済学部 3年生(2024/2/2時点)のアギラーです。 現在は「金融 x データ分析」を中心に学習中 ゼミの研究での学習を備忘録としてまとめていきたいと思います。 X(Twitter): @KlynoAgular Portfolio: klynoroales-aguilar.com pandas-datareader とはなにか pandas-datareaderとはpythonライブラリを用いて外部APIを叩いて様々なデータを取得できる便利な道具です。特に金融関係(株価・経済指標など)を取り扱う際は必ずと言っていいほどお世話になるライブラリです。 実はアップデート(もしくは自分のパソコンのバグ??)の都合でyfinanceでのデータ取得が出来なくなってしまったため、いっそのことpandas-datar

    [解説]Pythonを用いた株価・経済データの取得方法をまとめてみた - Qiita
  • チャート見るのがだるいのでTradingViewを使って自動売買してみた件:Bitget編 - Qiita

    趣旨 TradingViewを見ていちいち取引所のサイトに移動して注文を出すのがだるい!という時に全部自動化してトレード放棄したいという邪な考えから作ったbotです。 同じことを全く別の方法で実現することも可能です。 Macでもラズパイでもレンタルサーバーでも実装できますが、実際に動かすとなるとレンタルサーバーでやるのが良いと思います。またサーバーで実装した場合はSmeeを使わなくて済むので簡単ですし、より安全です。

    チャート見るのがだるいのでTradingViewを使って自動売買してみた件:Bitget編 - Qiita
  • WindowsでPythonを使って『機械学習』を学ぶための環境構築 — blog ドキュメント

    はじめに¶ logo_horizontal.png WindowsPython機械学習の環境構築をする方法は1通りではなく、色々な方法でインストールを試みることができます。 方法が複数あることは失敗しても他の方法で試せるためありがたいことですが、初心者にとってはどの方法で環境構築をすれば良いか迷ってしまう原因にもなってしまいます。 そこで、記事では次のような方をターゲットに書いています。 Pythonを初めて使う方 Pythonプロジェクトでなく自分用で使う方(要するに、仮想環境は不要な人) 失敗しない環境構築を行うためにも、ぜひこちらの記事を参考にしてみてください。 Pythonのインストール¶ まず、こちら (https://www.anaconda.com/distribution/) のページにアクセスしてAnacondaのディストリビューションファイルをダウンロードして、