はじめに 皆さんPythonでプログラミングしてますか? Pythonの基本的な文法はある程度理解したけど、もう一歩詳しくなりたい、という方のために、中級的なテクニックや書き方について解説します。 この記事をマスターすれば、あなたも明日からPython中級者になれるかも? では、始めましょう。 変数の代入について Pythonでは、複数の変数の定義を1行で行うことが可能です。 普通に代入した場合:
イテレーションの速さがあなたの生産性を左右する。どうも、かわしんです。生産性の高いプログラマって1つ1つの試行が素早い(自動化しているかツールを使っている)ためにものすごいスピードで開発できていると思うんですよね。 さて、最近 Python で開発をしているのですが、世の中の Docker と Pipenv の開発環境を調べてもろくなものがなかったので、自分でテンプレートを作りました。いわゆる「俺の考える最強の Pipenv + Docker 開発環境」というやつです。 リポジトリはこちらになります。 github.com 特徴としては、以下の2つが大きいです。 pipenv install をコンテナ起動時に行うため、docker イメージを作り直す必要がない pipenv shell 相当の仮想環境のアクティベートを自動で行う なぜ Docker + Pipenv なのか Docker
こんにちは。プロダクトグループの坂井です。 Pythonのフレームワークの一つであるFlaskを使う機会がありましたので、まずはローカル開発環境をDockerで構築してみました。 作業環境 macOS Mojave 10.14.6 Docker 19.03.1 Docker Compose 1.24.1 Dockerのインストールについては割愛します。 構築するローカル開発環境 Python 3.7.4 Flask 1.1.1 さっそく構築 Pythonの公式イメージがDocker Hubにありますので、公式イメージを利用してコンテナを作成します。 Dockerfile FROM python:3.7.4 ARG project_directory WORKDIR $project_directory RUN pip install flask 6行目で最新バージョン1のFlaskをインス
仕事ではよくPythonを書いています。 よく使うのでそれなりに知っている気になっていたのですが、 コードをレビューしてもらったり本を読んだりしているうちに”もっと早く知っておきたかった・・・”というネタが溜まってきたので、その中から厳選した5つの小ネタをまとめてみました。 *この記事で使用しているPythonのバージョンはPython 3.7.3です。 この変数、一体何桁? 例えばこんな変数があったとします。 num1 = 100000000 num2 = 10000 num3 = 3023204903 こんな変数がたくさんあったらどうしましょう。 桁を数えるだけで目が疲れそうです。 ぱっと見でだいたい何桁あるかわかるといいですよね。 Pythonでは数値型に_を挟んでも、そのまま数値として計算することができます。 >>> num1 = 100_000_000 >>> num2 = 10
こんにちは、大阪オフィスの数枝です。最近python (boto3)と戯れる日々が続いております。 まだまだわからないことがたくさんありますが、先日1点学んだのでまとめます。表題の通り、関数の引数に出てくるアスタリスク(*)についてです。 ロギングモジュールのドキュメント(https://docs.python.org/ja/3/library/logging.html#logging.debug)を見ていたのですが、debug関数の引数に書かれている*args **kwargsの意味が最初わかりませんでした。 これをきっかけに調べたのですが、結果、引数の中にアスタリスクが出てくるパターンは3つ、「アスタリスク一つ+文字列」,「アスタリスク二つ+文字列」、「アスタリスクのみ」があることがわかりました。それぞれ説明します。 目次 アスタリスク一つ+文字列 アスタリスク二つ+文字列 アスタリス
「ここで改行するほうがキレイで良いと思います」 『いや、私はこちらのほうがキレイ良いと思います』 コードレビューでこういう議論をしたことはありませんか? 大切なことだとは思いますが、生産性にはあまり直結しません。議論を避けるために書き方を決めるほうが良いでしょう (個々の問題について逐次議論するのがエネルギーを無駄にしてしまいます。一度決めて、再利用するようにしたいものです)。 今日はそのために使える black というツールを紹介します (「私はflake8を使ってるから結構です」と思われるかもしれませんが、少し違う話なので読んでみてください)。 blackを使おう Pythonのコードを自動でフォーマットしてくれる black を紹介します。 github.com blackはPythonのコードフォーマッターで、自動的にPythonプログラムの書き方を修正してくれます。 PEP8 と
こんにちは、@yoheiMuneです。 久しぶりのブログ、書きたいことがいっぱいです。プログラムでエラーが発生した時に重宝されるスタックトレース。Python言語におけるエラーハンドリングの方法と、そこでのスタックトレースの取得方法を、今日はブログに書きたいと思います。 目次 スタックトレースとは スタックトレースは、プログラムで例外が発生した際に、どのように関数が呼び出されたのか、どこでエラーが発生したのか、を特定できる情報です。不具合発生時の原因究明に、重宝されます。例えば以下のプログラムがあるとします。 def a(): """b関数を呼び出す""" b() def b(): """c関数を呼び出す""" c() def c(): """例外が発生する""" char = None char.format('hello') # ここで例外発生 # a関数から呼び出してみる a() こ
機械学習Podcast「TWiML&AI」で先週取り上げられた可視化ライブラリ「Yellowbrick」が非常に便利だったので紹介します!ちなみにPodcastには作者の1人であるRebecca Bilbroさんが出演しているので興味持った方は是非聞いてみてください。 twimlai.com www.scikit-yb.org Yellowbrickとは 一言で言うと、機械学習に特化した可視化ライブラリです。実装的な面で言うと(こちらの方がわかりやすいかもしれません)、scikit-learnとmatplotlibをラップして、scikit-learnライクなAPIで使うことができるものです。 例えば相関行列のヒートマップをプロットしたい場合は次のように書くだけでグラフを作ることができます。 visualizer = Rank2D(features=features, algorithm=
~/.config/nvim/init.vim (1) activateした仮想環境があればそちらを参照し、ない場合はデフォルトの仮想環境を参照 activate中はVIRTUAL_ENVに設定が入っているので、それを参照します。 ない場合はデフォルト仮想環境を参照します。 また、QuickRun実行時にデフォルト仮想環境のpythonを認識させるため$PATHに追記しています。 (2) 管理プラグイン「dein」を使用するための設定 プラグインの登録はdein.toml, dein_lazy.tomlに記載するようになっています。 未インストールのプラグインは自動インストールします。 (未登録プラグインの自動アンインストールもできるのですが、体感できるほど起動が遅くなるのでコメントアウトしています) (3) カラースキーマ設定 コメント色を変えたかったのでその設定も書いています。 if
こんにちは。しもじです。 今回は以前からずっと気になっていたPython開発環境、JupyterLabをインストールしてみたので、ご報告したいと思います。 JupyterLabとは? Pythonをお使いの方で Jupyter Notebook をご利用の方もいらっしゃると思います。 起動するとwebページ中でノートを記述するようにコードを残すことができ、実行結果と合わせて1ファイルとしてシェア可能なので便利です。 Amazon SageMakerでも利用されています。 Jupyter Notebook Jupyter Notebookを開発、提供しているProject Jupyterが次世代版Jupyter Notebookとして開発しているのがJupyterLabです。 JupyterLab changelogによると、現在v1.0.0へのリリースに向けて作業が進んでいるようです。また
!! ======================== !! ※この記事は2019年の記事です。この記事で紹介している内容は2019年当時の内容である事を理解した上で、実際に設定する際は最新の情報を確認しながら行ってください。 !! ======================== !! SeleniumはE2Eテストの自動化などで大きな力を出してくれます。 今回の記事では、下記の内容をまとめてみます。 色々なユースケース 抜け漏れ対策のwait.until()関数 => 実務ではとても重要 IDやClassが無くても、AltやPlaceholderなどから力技で抽出する技 パスワード系 無限スクロール系 必要なツールをまずは揃える Python3.7 ChromeDriver https://sites.google.com/a/chromium.org/chromedriver/dow
pgbench で PostgreSQL に半永久的に負荷をかけ続ける手順をメモ。 スクリプト pgbench_infinite_loop.sh #!/bin/bash export LANG=C export PGPASSWORD=<パスワード> ENDPOINT=<ホスト名> BASE_NAME=$(basename $0) STEM="${BASE_NAME%.*}" DATE=`date '+%Y-%m-%d-%H%M%S'` while : do pgbench -n -r -c 8 -j 8 -t 100000 -U awsuser -h ${ENDPOINT} -d mydb >> ${STEM}-${DATE}.log 2>/dev/null done pgbench をインストール $ sudo yum -y install postgresql $ sudo yum -
Pytestを実行するときに知っておくと便利なコマンド&オプションをまとめました。 環境 Python3.6 pytest 4.3.0 venv 特定のテストのみを実行する モジュールを指定して実行 モジュール毎にテストを実行します。 pytest test_1.py パスを指定して実行 フォルダ別にテストを実行します。 pytest testing/ キーワードを指定して実行 文字列に含まれるキーワードにマッチするもののみを実行します。 マッチング対象はファイル名、クラス名、関数名です。 pytest -k "MyClass and not method" 上の例の場合、”TestMyClass”のキーワードを含むテストを実行しますが、”method”キーワードを含むものは除きます。 例えば、 "TestMyClass.test_something" は実行されますが、 ”TestMyC
今回は SQLite3 のインメモリデータベースをテストで使うときに生じる問題点と、その解決策について。 SQLite3 のインメモリデータベースを使うと、追加でソフトウェアをインストールしたり、データベースファイルを作ることなくリレーショナルデータベースを扱うことができる。 この点はリレーショナルデータベースを扱うソフトウェアを作るときに自動テストを組む上で望ましい特性といえる。 ただ、SQLite3 のインメモリデータベースには、制約が複数ある。 まず一つ目はコネクションを閉じると永続化した内容が消えてしまうところ。 そして、二つ目は異なるスレッドから内容を参照できないところ。 これらの解決策として、無理に制約のあるインメモリデータベースを使わずテンポラリファイルを使ってディスクに永続化することを提案する。 使った環境は次の通り。 $ sw_vers ProductName: Mac
はじめに こんにちは、サーバーレス開発部の岡です。 普段Pythonを使っている人であれば当たり前の仕様かもしれませんが、Pythonでリストの要素をループ内で削除するときは少し工夫が必要です。 初心者だとハマりどころかと思うので、メモとして残しておきます。 ループ内で削除してみる data = [0,1,2,3,4,5,6,7,8,9] for i in data: data.remove(i) 期待する結果としては空のリストです。 ですが結果を見てみると、 print(data) // [1, 3, 5, 7, 9] なぜか奇数が残りました。 一瞬バグかと思いますがPythonの仕様です。 公式ドキュメントを見てみると、以下のように書かれていました。 注釈 ループ中でのシーケンスの変更には微妙な問題があります (これはミュータブルなシーケンスのみ、例えばリストで起こり得ます)。 どの要
Python環境構築ベストプラクティス2019 Published at: 2019-02-18 / Updated at: 2019-05-14 Web上には新旧さまざまなPython環境の構築の方法が乱れており, 正しい情報にたどり着けない人がいて不憫なので2019年2月現在のベストプラクティスをPythonを使いたい人の属性ごとに紹介したいと思います. 自分がどのような環境を作ればいいかわかったなら公式ドキュメントというほぼ絶対的な1次資料を元に最高の環境を作っていきましょう. For Beginners とりあえずPythonを勉強してみたい, 手軽に手元にあるデータを解析してみたいという人はこちらです. プログラムをガリガリ書いていくのではない場合, 自分のPCに環境構築する必要はありません. Googleが提供しているColaboratoryを使いましょう. 苦労することなくP
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く