Pythonの*(アスタリスク)は他のプログラミング言語と意味合いが違います。 Pythonにポインタはありません。 Pythonの*(アスタリスク)にはどんな機能があるのかまとめてみました。 *(アスタリスク)1個の機能は大きく分けると5つ
![【Python3入門】*(アスタリスク)1個の機能まとめ](https://cdn-ak-scissors.b.st-hatena.com/image/square/237fa7e35f1419dc0869ee5c7f9678b8d847ff14/height=288;version=1;width=512/https%3A%2F%2Fpycarnival.com%2Fwp%2Fwp-content%2Fuploads%2F2018%2F02%2Fpyimage.png)
はじめに 僕は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
class Person: def __init__(self, name): self._name = name @property def name(self): return self._name @name.setter def name(self, name): self._name = name 「あれ?」これどう説明したらいいんだ?と思いました。 おかしな点 さて、どこがおかしいのでしょうか。ところでPythonってオーバーロードありましたっけ? そう、以下の個所は見た感じ、name(self)とname(self, name)の「同じ名前で引数の数が異なる」メソッドが定義できているように見えます。 @property def name(self): return self._name @name.setter def name(self, name): self._name
はじめに pythonのloggerを使ってログ出力をキレイにやりたいなー、と思って調べたら難しかった。 でも実際に使ってみると、何とかなった。 なのでこれからloggerを使う方向けに大雑把に理解した使い方を、サンプルと共に書き連ねます。 もっとよい使い方を知りたいのでツッコミ大歓迎です。 前提知識 logging…loggerの大本。これをいじると影響範囲が広すぎるので使わない。 logger…loggingの子分。1つのを使いまわす、子供も作る、複数作るなど使いやすいので基本的にこれを使う。 handler…loggerにログの出力先や出力するフォーマットに関係するもの。めっちゃ重要。 基本的には、 (1)ログを管理するloggerを作成 (2)ログ出力を管理するhandlerを作成 (3)任意のhandlerをloggerにセット。 という風に使っていきます。 上手い言葉で説明でき
追記(2014/2/6) * pythonのバージョンは 2.7.5を用いました。python 3.Xでは確認しておりません。 * リスト型より辞書やセットの方が高速だと勧めて頂きましたので、修正致しました。 僕はswitch文が好きです。プログラムの見通しが断然良くなりますし、頭が整理されます。しかし、pythonにはswitch文は存在しません。条件分岐にはif, elif などを使うのがメジャーで、例えば以下のようなswitch文がある場合、 # javaなどで用いられる一般的なswitch文 switch(str){ case 'a': case 'b': print('a,b'); break; case 'c': print('c'); break; }
ホーム 1. Python を始める 2. 基本仕様 3. クラス 4. モジュールとパッケージ 5. ファイル操作 6. 例外 7. ジェネレータ 8. テスト import math class Point: def __init__(self, x, y): self.x = x self.y = y @property def distance(self): return math.sqrt(self.x * self.x + self.y * self.y) @property のように @ ではじまるキーワードは デコレータ といって関数やクラスに特殊な振る舞いを注入することのできる機能になっています。distance() は関数として定義されていますが @property デコレータがついていると変数のように参照することができるようになります。
Pythonで文字列を検索して特定の文字列を含むか判定したりその位置を取得したりするにはin演算子やfind()メソッドを使う。標準ライブラリのreモジュールを使うと正規表現でより柔軟な処理が可能。 文字列中に含まれる特定の文字・文字列の出現回数(個数)をカウントする方法は以下の記事を参照。 関連記事: Pythonで文字・文字列の出現回数をカウント 文字列の抽出・置換・比較については以下の記事を参照。 関連記事: Pythonで文字列を抽出(位置・文字数、正規表現) 関連記事: Pythonで文字列を置換(replace, translate, re.sub, re.subn) 関連記事: Pythonで文字列を比較(完全一致、部分一致、大小関係など) テキストファイルの中身を検索したい場合は、ファイルを文字列として読み込めばよい。 関連記事: Pythonでファイルの読み込み、書き込み
解説 1つ目の方法、2つ目の方法ともに問題なく動作します。 pythonのlistは、空であればFalse、中身が入ってればTrueを返す性質があります。 1つ目の方法はこの性質を使って判定しています。 2つ目の方法は、listの要素数を調べてサイズが0であれば空ということにしています。 stack overflowではどちらの方法が良いかという議論があり、1つ目が優勢です。 理由としては、listのサイズを調べる前に、まずlist変数の真偽を調べるのが先だということです。 またPythonのコーディング規約のPEP8においても1つ目の方法が推奨されています。 2つ目も可読性があって良いとは思います。 追記 3つ目
皆さん こんにちは、こんばんは TomoProgです。 久しぶりにブログ書こうと思います。 今回はPythonの辞書型を使っていると遭遇するKeyErrorについて少し調べてみました。 それでは頑張っていきましょう。 辞書型って何? KeyErrorの前にまずは辞書型について少し書いておきます。 辞書型とは任意のキーに対して値を持てる型のことです。 他の言語でハッシュマップや連想配列という言葉を聞いたことがある人はそれとほぼ同じ型だと思います。 辞書型を使う場合は波括弧を使って「'キー':'値'」の形で表現します。 #-*- coding:utf-8 -*- def main(): person_dict = {'name':'tomoprog', 'age':24, 'blood':'A'} print(person_dict['name']) print(person_dict['ag
Pythonで、既存のリスト(配列)の特定の条件を満たす要素のみを抽出・削除したり置換や変換などの処理をしたりして新たなリストを生成するには、リスト内包表記を使う。
pandas.read_excel# pandas.read_excel(io, sheet_name=0, *, header=0, names=None, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, parse_dates=False, date_parser=_NoDefault.no_default, date_format=None, thousands=None, decimal='.', comment=None,
Pythonで現在時刻を取得するには標準ライブラリのtimeモジュールかdatetimeモジュールを使う。 UNIX時間(エポック秒)で取得したい場合はtimeモジュール、日時(日付と時刻)を表すdatetimeオブジェクトなどで取得したい場合はdatetimeモジュール。
Pythonのglobモジュールを使うと、ワイルドカード*などの特殊文字を使って条件を満たすファイル・ディレクトリ(フォルダ)などのパスの一覧をリストやイテレータで取得できる。 glob --- Unix 形式のパス名のパターン展開 — Python 3.11.4 ドキュメント パスをオブジェクトとして操作するpathlibモジュールでglob処理を行うこともできる。条件で抽出したあとで削除などの処理を行う場合はpathlibのほうが便利。 関連記事: Python, pathlibでファイル一覧を取得(glob, iterdir) 本記事のサンプルコードでは以下のようにglobモジュールとosモジュールをインポートしている。どちらも標準ライブラリに含まれているので追加のインストールは不要。
Pythonでは配列をどのように扱うのでしょうか。 Pythonの配列であるリストの使い方の中から基礎的なものとして、リストの要素やサイズの取得、要素の追加・挿入・削除などについてまとめました。 また、リストと似た部分が多いタプルについても基礎的な部分を紹介します。 Pythonで配列を扱う際にはリストを使います。タプルも配列を扱うことができますが、タプルは要素を変更できないという違いがあります。 リスト リストの定義は角括弧を使います。 次のように宣言すると、空のリストを作成することができます。 list = [] 角括弧の中に要素をコンマで区切って記述することで宣言と同時に初期化することができます。 list_number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list_chess = ['king', 'queen', 'rook', 'bishop',
こんにちは! プログラマーのakiraです。 みなさんの中には、 ・ キャストってどういう意味だろう? ・ 文字列⇆数値のキャストの方法が知りたい! と思っている方もいるのではないでしょうか? 本記事では、キャストとはから文字列⇆数値の様々なキャストの方法まで解説していますので、是非参考にしてください! なお、Pythonの記事については、こちらにまとめています。 キャストとは キャストとは、変数やオブジェクトを別の型に変換することです。 型変換とも言います! 例えば、ある数値を他の文字列と連結したい場合などによく利用します。 具体的なキャスト方法については次項以降でより詳しく確認していきましょう! 数値から文字列へのキャスト ここでは、数値から文字列へのキャスト方法について解説します。 もし「Pythonの文字列って何?」という場合は、以下の記事で文字列について詳しく解説されていますので
pandas.DataFrameの列の値に対する条件に応じて行を抽出するにはquery()メソッドを使う。比較演算子や文字列メソッドを使った条件指定、複数条件の組み合わせなどを簡潔に記述できて便利。 pandas.DataFrame.query — pandas 2.0.3 documentation Indexing and selecting data - The query() Method — pandas 2.0.3 documentation ブーリアンインデックス(Boolean indexing)による条件指定については以下の記事を参照。 関連記事: pandasで複数条件のAND, OR, NOTから行を抽出(選択) 本記事のサンプルコードのpandasはバージョン2.0.3。バージョンによって挙動が異なる可能性があるので注意。以下のpandas.DataFrameを例と
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く