タグ

pythonに関するcraftsman055のブックマーク (83)

  • PyCharmでは未importのクラスや関数の入力補完ができない、と思い込んでいた話 - Qiita

    TL;DR PyCharmではCtrlを押したままSpaceを2回叩くと幸せになれる PyCharmが大好き、でも Pythonは2.7あたりの頃から使っていて、作業効率化ツール開発やpyserialを使った組み込み機器との通信テストなどで使用していました。当初からわりと規模が大きめなプロジェクトで使っていたので、対話シェルやコマンドラインベースではなく、PyCharmのお世話になりながらPythonと付き合ってきました。 私はAndroidアプリ開発もやってますが、Android Studioができる前からEclipse+ADTを窓から投げ捨てIntelliJ IDEAを採用していたので、JetBrains IDEにかなり親しみを持っており、その操作感覚を引き継げるPyCharmでの開発は当に当に大好きでした。 ただ、ある一点を除いては・・・ 他のJetBrains IDEと同じよう

    PyCharmでは未importのクラスや関数の入力補完ができない、と思い込んでいた話 - Qiita
  • 爆速python-fire - Qiita

    Help us understand the problem. What are the problem?

    爆速python-fire - Qiita
  • Pythonで競技プログラミング -ライブラリ編- - Qiita

    okumuraです。前回の記事で異様にいいねがついて少々驚きました。その記事の最後に「余力があればよく使うライブラリー集とかも出すかもしれません」とかいってて何もしてなかったので、まとめました。 0. はじめに この記事は半分自分用のために作りました。私自身あんまりライブラリを使わない方なので、結構抜けているかもしれません。「推しライブラリがないぞ!」などなどはコメントに記入していただけると幸いです。また説明が雑な箇所や個人的見解、ミスなど多々見られるかもしれません。これは私の理解力不足と経験不足などなどからくるものです、申し訳ございません。 一応各項目の後には私のAtCoder,Codeforcesでの使用例も載せておきました。問題のネタバレも含むので読むときには注意してください。参考になればいいと思います。 1. sys sys.exit プログラムを終了させます。私がsysモジュール

    Pythonで競技プログラミング -ライブラリ編- - Qiita
  • PythonでAtCoder青になるまで -Pythonで競プロやるときに気をつけること- - Qiita

    okumuraです。前のコンテストでAtCoder青になったのでそれを記念して初投稿いたします。(すぐに水色に落ちそうなので怖いんですが) そのほかの人も結構こういう記事が多いので、今回は個人的にやったこと半分とPythonで気をつけること半分で話したいと思います。 1 AtCoderやり始めたとき AtCoderをやるまでプログラミングはif,for,while文ちょっと知っているぐらいでした。とりあえず、問題解いたらPythonの他の文法とか覚えるだろーと思ってやり始めました。 Pythonを選んだ理由は友人がやってたのと、文法が楽だったからです。 AtCoderに登録したら、まず ・AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ をやってどんな感じかを学びました。Pythonだと文法で困るということは少ないのでいきなりこの問題し始めて

    PythonでAtCoder青になるまで -Pythonで競プロやるときに気をつけること- - Qiita
  • Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net

    はじめに 標準入力 input と sys.stdin.readline ソート sort と sorted ソートの key ループ for と while リスト リストの初期化 二次元配列の場合 リストの値参照 リストへの値追加 それぞれの処理速度 まとめ はじめに 最近、PythonAtCoderなどの競技プログラミングに挑戦しています。これまであまりに気にしなかったけど、ちょっとした書き方で処理速度が変わってくることに気づいたので、これを気に少し調べてみました。 目次にあるように、標準入力、ソート、ループ、リストについて、計8個の処理の速度比較を行いました。処理速度の計測方法は、Mac Book Pro*1を使い、timeitでそれぞれ100回計測*2し、平均と標準偏差を求めています。 結果だけ知りたい方は、まとめへどうぞ。 計測に用いたコードは以下にあります。 github.

    Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net
  • bitFlyerの価格をリアルタイム取得する、ほぼ最小のPython実装|yuza

    Websocketの小さな実用例が欲しい方や、Bot開発のお供にどうぞ。 組み込んでの再配布など、ご自由にお使いください。 価値を感じたら、サポート・投げ銭・購入などで応援をお願いします。 (記事自体は無料部分で全てです) 概要: ・現在価格・最寄り板の価格、Buy/Sellボリューム等を取得できます ・APIリクエスト制限に関わらず問い合わせできます ・スレッドを使い、メインの処理を止めません ・ログイン情報不要、エラー時は自動で再接続します 下準備: $ pip install websocket $ pip install websocket-client==0.46.0実装&動作サンプル: #!/usr/bin/python3 # coding: utf-8 #---------------------------------------------------------- #

    bitFlyerの価格をリアルタイム取得する、ほぼ最小のPython実装|yuza
  • 【python】missing 1 required positional argument: 'self'などの対処法 - 静かなる名辞

    はじめに pythonに不慣れな方は、よくタイトルのようなエラーを見かけると思います。 実際には、このエラーはTypeErrorで、全体は以下のようなものです。 TypeError: メソッドの名前 missing 1 required positional argument: 'self' では、どうしてこのエラーは出るのでしょうか。そして、どうすれば良いのでしょうか。 簡単に解説していきます。なおpython3を使っていることを前提とします。 クラスをインスタンス化していない このエラーは、なんとなくエラーの文面だけ見ると、引数を渡してあげれば良いのかな? というような気がします。実際、引数を要求する関数を引数無しで呼び出すとほぼ同じエラーが出ます。 >>> def f(a): ... pass ... >>> f() Traceback (most recent call last)

    【python】missing 1 required positional argument: 'self'などの対処法 - 静かなる名辞
    craftsman055
    craftsman055 2020/04/24
    エラーの種類
  • Pythonで、デザインパターン「Singleton」を学ぶ - Qiita

    GoFのデザインパターンを学習する素材として、書籍「増補改訂版Java言語で学ぶデザインパターン入門」が参考になるみたいですね。ただ、取り上げられている実例は、JAVAベースのため、自分の理解を深めるためにも、Pythonで同等のプラクティスに挑んでみました。 ■ Singleton(シングルトン) Singletonパターン(シングルトン・パターン)とは、オブジェクト指向のコンピュータプログラムにおける、デザインパターンの1つである。GoF (Gang of Four; 4人のギャングたち) によって定義された。Singleton パターンとは、そのクラスのインスタンスが1つしか生成されないことを保証するデザインパターンのことである。ロケールやルック・アンド・フィールなど、絶対にアプリケーション全体で統一しなければならない仕組みの実装に使用される (以上、ウィキペディア(Wikipedi

    Pythonで、デザインパターン「Singleton」を学ぶ - Qiita
  • Pythonで、デザインパターン「Adapter」を学ぶ - Qiita

    GoFのデザインパターンを学習する素材として、書籍「増補改訂版Java言語で学ぶデザインパターン入門」が参考になるみたいですね。ただ、取り上げられている実例は、JAVAベースのため、自分の理解を深めるためにも、Pythonで同等のプラクティスに挑んでみました。 ■ Adapter(アダプター・パターン) Adapterパターン(アダプター・パターン)とは、GoF (Gang of Four; 4人のギャングたち) によって定義されたデザインパターンの1つである。Adapterパターンを用いると、既存のクラスに対して修正を加えることなく、インタフェースを変更することができる。Adapterパターンを実現するための手法として"継承を利用した手法"と"委譲を利用した手法"が存在する。 UML class diagram 1. 継承を利用したAdapter 継承を利用したAdapterは、利用した

    Pythonで、デザインパターン「Adapter」を学ぶ - Qiita
  • Python Tips: Python でインタフェースを使いたい

    Python でインタフェースの機能を使う方法をご紹介します。 ・・・といっても、 Python 3.6 の時点で Python には言語機能としてのインタフェースは存在しません。具体的にいうと、「継承先に特定のインタフェースの実装を強制できるような仕組み」が Python にはありません。 しかし、標準ライブラリの abc を使うと次の 2 つのことが実現できます。 a. 複数のクラスを抽象クラスでまとめる b. 継承先クラスのインスタンス生成時にメソッドの存在チェックをかける このことをもって、「 Python でも他の言語でいうところの『インタフェース』の機能をある程度は利用できる 」と考えてもよいのではないかな、と個人的には思います。 今回はこの Python におけるインタフェース的な機能を abc で実現する方法をご紹介します。上の a b を順に見ていきましょう。 a. 複数

    Python Tips: Python でインタフェースを使いたい
  • PythonでC#やJavaのinterfaceみたいなものを実現する - Qiita

    はじめに 僕はC#やJavaのような静的型付けのオブジェクト指向言語に慣れており、pythonを勉強中です。 C#やJavaにはinterfaceというのがあり、そのinterfaceを実装したさまざまなクラスのインスタンスを、すべて同じ型のオブジェクトのように取り扱うことができます。 同じようなことをpythonでもできないのかな、と思って調べてみました。 抽象基底クラス(ABC: Abstract Base Class)の定義 pythonはバージョン3で抽象基底クラス(ABC: Abstract Base Class)というものをサポートするようになったそうです。 これを利用することで、C#やJavaのインタフェースみたいなものを実現できるようです。 試してみましょう。 class AbstractHello(metaclass=ABCMeta): @abstractmethod d

    PythonでC#やJavaのinterfaceみたいなものを実現する - Qiita
  • スタティックメソッドは要らない子? - atsuoishimoto's diary

    Pythonでは、クラス内で定義することの出来るメソッドが三種類用意されている。メソッド・クラスメソッド・スタティックメソッドの3種類だ。それぞれどんな特徴を持っているのだろうか? メソッド まず、メソッドはおなじみのインスタンスメソッドで、第一引数としてインスタンスを受け取り、呼び出す時には必ずインスタンスが必要となる。 class Foo(object): # メソッド def method(self, arg): pass Foo().method("arg") #OK Foo.method("arg") #これはエラー クラスメソッド クラスメソッドは第一引数としてクラスオブジェクトを受け取り、インスタンスが無くとも呼び出すことが出来る。 class Foo(object): # クラスメソッド @classmethod def clsmethod(cls, arg): pass

    スタティックメソッドは要らない子? - atsuoishimoto's diary
  • Pythonで classmethod、staticmethod を使う - Qiita

    いつ使うと良いか インスタンス変数やインスタンスメソッドにアクセスしないとき(メソッド内でselfを使わないとき)は classmethod、staticmethodを使おう。 classmethod: クラス変数にアクセスすべきときや、継承クラスで動作が変わるべきときは classmethodを使おう。 staticmethod: 継承クラスでも動作が変わらないときはstaticmethodを使おう どちらもデコレーターで定義できる。classmethodでは第一引数にclsを与えて定義する。 例 class Student: def __init__(self, name, school): self.name = name self.school = school self.marks = [] def average(self): """平均成績を返す インスタンス変数にアクセスし

    Pythonで classmethod、staticmethod を使う - Qiita
    craftsman055
    craftsman055 2020/03/28
    staticmethodについて
  • Python で AtCoder を遊ぶときに知ってると便利かもしれないこと - 菜

    気が向いたら後で検証したりで増やしたりするかも 割と当たり前のこととかそんなに使わないこととかが混じってる PyPy を使う これ必須 AtCoder で使える言語には PyPy があって Python の代わりに使える Numpy が使えなかったりするけど速い 特にループが 3 重とかになるときに効果的 (オーバーヘッドが大きいので最初使ったときに微妙だなって勘違いしがち) 同じコードでの比較(もっと差がついたのもあった気がするけど忘れた) Python (TLE) https://atcoder.jp/contests/abc073/submissions/2692814 PyPy (841ms) https://atcoder.jp/contests/abc073/submissions/2692842 入力の基 下の 5 通りをコピペできるようにしておくと便利 # 整数 1 つ

    Python で AtCoder を遊ぶときに知ってると便利かもしれないこと - 菜
  • PythonのCounterでリストの各要素の出現個数をカウント | note.nkmk.me

    Pythonでリストやタプルの全要素の個数は組み込み関数len()、各要素の個数(要素ごとの出現回数)はcount()メソッドで取得できる。さらに、Python標準ライブラリcollectionsのCounterクラスを使うと、出現回数が多い順に要素を取得可能。

    PythonのCounterでリストの各要素の出現個数をカウント | note.nkmk.me
  • Pythonで競プロやるときによく書くコードをまとめてみた - Qiita

    はじめに 最近,よくPythonを使って競技プログラミングに参加しています.そこで競プロの問題を解くときに書くことの多い単純な処理について,Python3のコードを基的なところからまとめてみます.文字列操作やデータ操作に慣れると,質的なアルゴリズムに専念できてより楽しくなると思います.競プロやってみたいなと思っている人の参考になればうれしいです.(もちろん競プロ以外でも参考になると思います) まずは基 まずは基的な入出力からです.ここで躓くと面白くないのでしっかりと押さえておきたいところです. 基的な入出力 最近自分がはじめたAtCoderや2018年のGoogle Code Jamは入力データを標準入力で受け取り,回答を標準出力に出して結果を判定してもらいます.Pythonでは入力はstdin.readline(),出力はprint()を使うとうまくいきます. 入力データの末尾

    Pythonで競プロやるときによく書くコードをまとめてみた - Qiita
  • AtCoder緑になるまで - Qiita

    自己紹介 こんにちは、HIROSHI0635です。今は、金融関係で働く社会人2年目です(仕事でプログラミングは全くしませんOrz...)。大学時代は文系で、プログラムの「プ」も触ったこともなかったですが、競プロ始めて10ヶ月でなんとか緑になれましたので、やってみたかった「〜色になりました」の記事を書いてみました。自分語りの自己満記事ですが、AtCoder始めたてのPythonコーダーなら少しは役に立つことが書いているかもしれません。 1.AtCoder始めるまで 始めた動機は、今の仕事に向いてないなと思って当に辞めようかと迷ってた時、じゃあ次は技術力で勝負できる仕事がいいなと思って、「今からでもやれるもの」という発想でプログラミングに行き着きました。ただ、プログラミングの「プ」もわからない状態で、何か作りたいものもなかったので、どうしようかと迷っていた時に、大学時代の先輩が薦めてくれたの

    AtCoder緑になるまで - Qiita
  • ループで辞書の要素を削除しようと思ったらRuntimeError: dictionary changed size during iteration - 静かなる名辞

  • PythonのDecimal型(10進数浮動小数)で小数を比較する | たくのこ Web

    多くのプログラミング言語で数値は2進数で表されます。 整数を表す際には問題無いのですが、小数を表現する際には問題になったりします。 これはPythonも同様です。 この記事で用いるプログラムはPython3(Anaconda 2.1.0)のインタラクティブシェルを利用して実行した結果です。 実行結果は以下の規則に従って記載します。(インタラクティブシェルの貼り付け) >>> 実行コマンド 出力 >>> print("hoge") hoge 問題点 具体例で示したいと思います。 >>> 0.1*3 0.30000000000000004 a*3は0.3になって欲しいところですが、謎の0.300…004が入っています。 これはプログラミングを勉強したことがある方ならどこかで聞いたことがあると思いますが、2進数では(2^-nの和で表せない)小数を正確に表すことができず、実は微妙にズレた値になって

    PythonのDecimal型(10進数浮動小数)で小数を比較する | たくのこ Web
  • 桁落ちに気をつけよう【Pythonの数値計算】 - Qiita

    ですね。 これをPythonで解いてみましょう。 解の公式をそのまま出力するものが以下の関数です。 import numpy def qeq(a, b, c): return((-b + numpy.sqrt(b**2 - 4 * a * c))/(2 * a), (-b - numpy.sqrt(b**2 - 4 * a * c))/(2 * a))

    桁落ちに気をつけよう【Pythonの数値計算】 - Qiita