タグ

Pythonに関するmasa8aurumのブックマーク (55)

  • Pythonについて思うこと | 雑記帳

    みなさん、Pythonは好きですか? この記事では、私がPythonという言語とそのエコシステムについて思うところを書いていきます。全体を通したストーリーみたいなのはなくて、トピックごとに書いています。 私のPython経験は3年弱です。Pythonについてまだまだ新米だという自覚はありますが、そこは有り余る才能でカバーしてこの記事を書いています。 静的型 Pythonには静的型がありません。型ヒントはありますが、インタープリターにとっては飾りにすぎません。 mypyとかの型チェッカーはありますが、「それさえあれば万事ハッピー」なものではなく、既存のコードを適宜書き換えないと型チェッカーでまともな結果を得るのは難しそうです。型検査を念頭に書かれていない(型ヒント付きの)コードをそのままmypyにかけても大量のエラー・警告が出てくるでしょう(ちなみに、型ヒントなしの関数はmypyのデフォルト

  • Pythonのパッケージ管理ベストプラクティス - Qiita

    ※おすすめの基準には上記「導入の手軽さ」「学習の手軽さ」「パッケージ依存関係の解決」以外に、「対象OSとの相性」「検索による情報の見つかりやすさ」を考慮しています。詳しくは後述します 筆者の主観が入りますが、概ね以下のフローチャートのように選択すると良いかと思います (詳しくは後述します) なお、実用上ハマりやすいプロキシ環境での使用方法についても、以下の記事に別途まとめました 必要知識 ここから先は、Pythonのパッケージ管理が何をやっているかを解説します。 「御託はいいから早く使いたい!」という方は、「3種類の方法比較」の項目まで飛んでください まず、一般的に「パッケージ管理」と呼ばれている要素を、以下の4つの機能に分割して考える必要があります。 A. インタプリタ切替 (Pythonのバージョンを切り替える) B. パッケージ切替 (パッケージのバージョンを切り替える) C. パッ

    Pythonのパッケージ管理ベストプラクティス - Qiita
    masa8aurum
    masa8aurum 2023/03/07
    ・「パッケージ管理」を分割すると、インタプリタ切替、パッケージ切替、パッケージインストール、リポジトリ
  • Shibu's Diary: Pythonはなぜ?str.join(seq)なのか?

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 PythonAPI設計の中で、たまに思い出したように話題が出てくるのが、配列に入った文字列を結合するメソッド。Pythonではstr.join(iterable)です。他の言語(僕がよく知っているRubyJavaScript)はArray.join(String)となっています。どちらでもありえる話ですが、個人的にはPythonの方が自然だな、と感じていました。ですが、他の言語の方がいいという人も多く、Pythonプログラマーの中でも好き嫌いが出たりもします。せっかく、弾さんがPerlの国からやってきて適度にガソリンをまいて炎上したところなので、Python歴史を紐解いてみました。 軽くjoin歴史について語っているサイトはないか探してみる 軽くぐぐってみると、何箇所か

    masa8aurum
    masa8aurum 2021/07/06
    読みづらいとたまに評判になる str.join(seq) の歴史的経緯
  • Python言語による実務で使える100+の最適化問題 | opt100

    指針 厳密解法に対しては、解ける問題例の規模の指針を与える。数理最適化ソルバーを使う場合には、Gurobi かmypulpを用い、それぞれの限界を調べる。動的最適化の場合には、メモリの限界について調べる。 近似解法に対しては、近似誤差の指針を与える。 複数の定式化を示し、どの定式化が実務的に良いかの指針を示す。 出来るだけベンチマーク問題例を用いる。OR-Libraryなどから問題例をダウンロードし、ディレクトリごとに保管しておく。 解説ビデオもYoutubeで公開する. 主要な問題に対してはアプリを作ってデモをする. 以下,デモビデオ: 注意 基的には,コードも公開するが, github自体はプライベート そのうちにするかもしれない(予約はしているが, 保証はない). プロジェクトに参加したい人は,以下の技量が必要(github, nbdev, poetry, gurobi); ペー

  • pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator

    - はじめに - Pythonのパッケージ管理ツールは、長らく乱世にあると言える。 特にpip、pipenv、poetryというツールの登場シーン前後では、多くの変革がもたらされた。 記事は、Pythonパッケージ管理ツールであるpip、pipenv、poetryの3つに着目し、それぞれのツールに対してフラットな背景、技術的な説明を示しながら、所属企業内にてpoetry移行大臣として1年活動した上での経験、移行の意図について綴り、今後のPythonパッケージ管理の展望について妄想するものである。 注意:記事はPythonパッケージ管理のベストプラクティスを主張する記事ではありません。背景を理解し自らの開発環境や状態に応じて適切に技術選定できるソフトウェアエンジニアこそ良いソフトウェアエンジニアであると筆者は考えています。 重要なポイントのみ把握したい場合は、各章の最後のまとめを読んで頂

    pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator
  • Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ

    砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Python歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ

    Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
    masa8aurum
    masa8aurum 2021/01/03
    Python パッケージ管理の歴史
  • TheAlgorithms/Python: All Algorithms implemented in Python

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    TheAlgorithms/Python: All Algorithms implemented in Python
  • Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech

    こんにちは、けんにぃです。ナビタイムジャパンで公共交通の時刻表を使ったサービス開発やリリースフローの改善を担当しています。 今回は Python 製の Web フレームワークとして FastAPI を導入した話をしようと思います。 Python 製の Web フレームワークPython には代表的な Web フレームワークが 2 つあります。 ・Django: フルスタックフレームワーク ・Flask: マイクロフレームワーク Django は大規模開発向け、Flask は小中規模開発向けと言われますが、今回開発したサーバは小規模なサーバだったため、以前は Flask で開発していました。 しかし、どちらのフレームワークを使う場合でも下記のような機能を使おうとするとプラグインやサードパーティの助けを借りる必要があります。 ・OpenAPI ・JSON Schema ・GraphQL ・We

    Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech
    masa8aurum
    masa8aurum 2020/09/01
    良さそう。いつかPythonでAPIサーバ作るときの参考に。
  • 「実用的でないPythonプログラミング」がよかった - Stimulator

    はじめに 2020/8/12に発売されたImpractical Python Projects: Playful Programming Activities to Make You Smarterの日語訳書である、「実用的でないPythonプログラミング」をひょんな事から献していただく事になった。(訳者が同僚である) 実用的でないPythonプログラミング: 楽しくコードを書いて賢くなろう! 作者:ヴォーン,リー発売日: 2020/08/12メディア: 単行 ありがちなプログラミング初学者向けのから1段上がった中級者向けの良いだと感じたので、当ブログでたまにやっている筆者、訳者に媚びを売るシリーズの一貫として、感想を記す。 書籍の概要 「実用的でないPythonプログラミング」は、想定する中級レベルのアルゴリズムの問題を例に取り、Pythonでの美しいコードの書き方や、コンピュ

    「実用的でないPythonプログラミング」がよかった - Stimulator
    masa8aurum
    masa8aurum 2020/08/31
    Pythonで計算機科学。よさそう
  • dict.fromkeys()で作成したdictのvalueのlistを編集するとすべてのkeyのlistが変わってしまう件 - mr-csce’s diary

    masa8aurum
    masa8aurum 2020/03/08
    わりと注意な気がする
  • ラズベリーパイ使って宅配便の再配達を撲滅した話(総集編) - West Gate Laboratory

    概要 外出時でも荷物を受け取れるように、ラズベリーパイを使って受取までのプロセスをほぼ自動化した話。 我が家がオートロックマンションのため、共同玄関をどうセキュアに開けるかがキモ。 背景 私は宅配便の受取が苦手である。 時間指定できるならまだマシだが、指定したその2~3時間どのタイミングで来るかもわからず、待っていなければならないのは苦痛である。 以前はコンビニ受け取りもしていたが、やはり段ボールを抱えて家まで帰るのは面倒である。(我が家は3件隣がコンビニだがそれでも面倒は面倒) 時間指定ができない宅配便などは、もう諦めて一度不在票入れてもらってその上で時間指定で受け取っていた。配達員の方々には申し訳ないがそうせざるを得ない。 日の宅配便の約6件に1件が再配達 一人暮らし、共働きが多い現在、再配達率は相当多いのでは?と思い調べてみたところ、国土交通省の発表では平成31年度4月の段階で16

    ラズベリーパイ使って宅配便の再配達を撲滅した話(総集編) - West Gate Laboratory
  • Pythonの非同期通信(asyncioモジュール)入門を書きました - ゆくゆくは有へと

    はじめに 非同期処理のことから知らない人向けにPythonくらいしかろくに知らない人間が書きました。せっかくキーワードが文法に組み込まれたんだから理解したいじゃんか! asyncioモジュールを使うための基的な概念が理解できるようになってるはず、多分。 環境としては Python3.5 以上を想定しています。つまり、await や async キーワードを使っていきます。 それから、関数やメソッドの仮引数は全く書いてません。必要最低限は文中で説明していますが、より完全に知りたい人は適宜ドキュメントの参照をお願いします。 主役はループちゃん asyncioの主役はイベントループです。イベントループは頼まれた仕事を順番にどんどん処理していくデキるクールガイです。 質的に、私たちはイベントループに仕事を関数オブジェクトの形で与えていくだけです。asyncioモジュールの大部分は、私たちが仕事

    Pythonの非同期通信(asyncioモジュール)入門を書きました - ゆくゆくは有へと
  • 文科省のPythonはPythonじゃねぇ - Qiita

    TL;DR 文科省によるプログラミングの教材はダメダメ。PEP8読め。 追記 もちろん、この指摘が普通のコードに対するものだとすれば 「重箱の隅をつつきすぎ」 だというのは全くその通りだと思います。こんな指摘をするつもりはさらさらありません。 しかし、これが文科省という権威ある機関が発表するものならば話は全く違います。 全ての日教育を一身に背負うくらいの気持ちと成果を伴わなければならないとも思います。 そういう理由での、厳しい(というか細かい)指摘です。 追記2 自分の説明が足りませんでした(すみません)。ちなみにこの教材は「教員研修用」です。 この教材で研修を受けた教師にプログラミングを教えられると思って考えてみてほしいと思います。 追記3 (2019/9/25 文科省の改訂を受けて) この度文科省がPythonに関する資料の改訂版を発表しました。 文科省に対して改善を求める当初を行

    文科省のPythonはPythonじゃねぇ - Qiita
  • Python文法のチートシート風まとめ(BOKU用) - SE_BOKUのまとめノート的ブログ

    複数言語をいったりきたりするので、久々にpythonを使うと度忘れしていることがたまにあります。そんな時、カンニングペーパー(チートシート)的に一か所にまとめたものがあると助かるなと思って(自分用に)まとめてみました。 目次 (1)スタイル (2)命名規則 (3)モジュール・パッケージ・import (4)初期化 (5)内包表記とジェネレータ (6)ループ・繰り返し処理 (7)データの取り出し・並び替えなど (8)条件式と比較演算子など (9)文字列の検索・置換・正規表現 (10)クラス定義と関数の引数 (11)例外 (12)ファイル読み書き・直列化 (12)スレッド・並列処理など (13)その他もろもろ (1)スタイル 他の言語と記憶が混同しやすいものだけ、とりあえず。 項目 説明 インデント TABではなく「空白4個」を使う クラス内のメソッド定義 1行あける 各行の長さ 80文字未満

    Python文法のチートシート風まとめ(BOKU用) - SE_BOKUのまとめノート的ブログ
  • Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER

    今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のようなだったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ

    Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER
  • Python“らしさ”を支える技術。pandasコアコミッターが大事にするマージの方針 - エンジニアHub|Webエンジニアのキャリアを考える!

    Python“らしさ”を支える技術。pandasコアコミッターが大事にするマージの方針 数多いPythonライブラリの中でも、データ解析の用途で大きな存在感を示すのが「pandas」です。そしてこのpandasのコミッターを務めるのが、sinhrksこと堀越真映さん。コミッターが感じるOSSのありよう、そしてPythonらしさを教えてもらいました。 データサイエンスや機械学習の流行に伴い、業務でPythonが使用されるケースが増えてきました。Pythonが選ばれる理由はさまざまですが、「データサイエンスや機械学習に適したライブラリが数多くある」という特性は、この言語が重宝される理由のひとつでしょう。 たとえば、データ分析のための高速で使いやすいデータ構造を提供するpandas。NumPyやpandasのAPIを利用して並列計算・分散処理を行えるDask。こうした海外で開発が主導されたライブ

    Python“らしさ”を支える技術。pandasコアコミッターが大事にするマージの方針 - エンジニアHub|Webエンジニアのキャリアを考える!
    masa8aurum
    masa8aurum 2019/02/17
    “コミッターの立場からすると、そういった軽微な修正でもPull Requestを投げてくれると本当に嬉しいんです。
  • 【Pyxel】Pythonでレトロゲームを作ろう! 総集編 -まるっと1週間でゲーム開発入門-|はやぶさの技術ノート

    記事は『Pythonでレトロゲームを作ろう!』シリーズの総集編です。 シリーズは、以下の読者を想定して書きました。 【対象読者】 Pythonゲームを作りたい人 ゲーム開発を題材にPythonプログラミングを学びたい人 数学・物理を学び、実践としてプログラミングまでしたい人

    【Pyxel】Pythonでレトロゲームを作ろう! 総集編 -まるっと1週間でゲーム開発入門-|はやぶさの技術ノート
  • ワイが個人的に便利だと思っていてよく使っているPythonライブラリ(pip)たち - Qiita

    この記事はLIFULL その3 Advent Calendar 2018の7日目の記事とされている恐れがあります 謝罪 会社の後輩の記事をパクりました。 ワイが個人的に便利だと思っていてよく使っているJavaScriptモジュール(npm)たち ここから題 ここ1年の中で しまくったgithubリポジトリを年末調整すると同時に、 使っていて個人的に便利だなと思っているものを簡単に紹介しようと思います。 モジュール Poetry 仮想環境の管理から、ライブラリの公開までやってくれる便利な開発ツール 正直、これを紹介するためだけにこの記事を書きました BeProud Advent Calender 2018の『Poetryを使ったPythonパッケージ開発からPyPI公開まで』という記事も読んでください Pipenv 依存ライブラリの管理や仮想(venv)環境も作ってくれる便利なツール ただ

    ワイが個人的に便利だと思っていてよく使っているPythonライブラリ(pip)たち - Qiita
  • この処理Pythonでどう書く? - エムスリーテックブログ

    EF15形は高性能な電気機関車であったが、引き出し性能が蒸気機関車に劣ると誤解されていた。 誤った運転方法により来の性能を引き出せていなかったのである。 (spaceaero2 [CC BY 3.0], ウィキメディア・コモンズより) こんにちは、エムスリー・エンジニアリングG・基盤開発チーム小です。 WEBサイトは RailsやSpringなどの「体部分」だけでは完結しません。レポート作成・データ更新などの細かい処理も必要です。 過去にはこうした用途にはBashがよく使われました。しかし、Bashは落とし穴が多かったり、クラスなどの抽象化機能がなかったりして、規模が大きくなると辛くなります。 そこで、Bashの代替候補に挙がるのがPythonです。エムスリーでもかつてはBashを使っていましたが、現在は新規案件にはPythonを推奨しています。 しかし、実際にPythonで書き直そ

    この処理Pythonでどう書く? - エムスリーテックブログ
  • Pythonはどうやってlen関数で長さを手にいれているの?

    Pythonには文字列やリストなど、長さをもつオブジェクトがあります。長さを手に入れるには、文字列なら、name.length ではなく len(name) のようにlen関数を使います。len関数はどうやってnameに入っているオブジェクトの長さを手に入れているのでしょうか。if文にはTrue/Falseとなる条件式を指定しますが、それだけでなく文字や数字、自分で作ったデータ型も渡せます。if文はどうやって与えられたオブジェクトがTrueなのかFalseなのかを手に入れているのでしょうか。 この発表では、Pythonのプログラムがどうやって必要な情報を手に入れているのか、また、自分で実装するときにどう実装すればlen()やif文やfor文に指定できるのかを説明します。

    Pythonはどうやってlen関数で長さを手にいれているの?
    masa8aurum
    masa8aurum 2018/11/12
    len() と obj.__len__(), bool() 等の "Protocol"