静かなる名辞

pythonとプログラミングのこと


初心者向け

list, tuple, dict, setの基本的な使い方、相違点、使い分け、応用など

pythonでよく使う組み込みのコレクション型には、list, tuple, dict, setなどがあります。ただ、なんとなく使っている、いつもlist、それぞれ微妙に使い勝手が違って困る、という人も多いと思います。そこで、これらについて解説します。

TypeError: list indices must be integers or slices, not ***等の原因と対処法

はじめに pythonを触り始めたばかりの人は、よくこんなエラーに遭遇すると思います。 TypeError: list indices must be integers or slices, not *** ***の部分はfloatだったりlistだったりstrだったりといろいろありますが、とにかくこんなエラーです。 ま…

TypeError: '***' object is not subscriptableの対処法

はじめに Pythonを始めてからしばらく時間が経って、ある程度自力で複雑なプログラムを書くようになると、タイトルのようなエラーに遭遇することが多いと思います。 このエラーが出たときは、たいていはロジックに問題があります。一概に通用する対処法がな…

【python】print関数を使いこなそう

ぼくたちは本当のprintを知らない pythonのprint関数については、たかがprintと思っている人も多いと思いますが、しかしオプションをすべて言える人はあまりいないと思います。把握しておくと出力の細かい制御をしたいとき役立ちます。 そこで、printの使い…

【python】引数のデフォルト値は定義時評価なので注意

はじめに pythonでは関数の引数にデフォルト値を設定することができます。 この機能を使うと、引数が与えられなかったときの挙動を定義することができ、とても便利です。 >>> def f(x="hoge"): ... print(x) ... >>> f("aiu") aiu >>> f(x="aiu") aiu >>> f(…

【python】missing 1 required positional argument: 'self'などの対処法

はじめに pythonに不慣れな方は、よくタイトルのようなエラーを見かけると思います。 実際には、このエラーはTypeErrorで、全体は以下のようなものです。 TypeError: メソッドの名前 missing 1 required positional argument: 'self' では、どうしてこのエラ…

python環境構築まとめ

pythonの環境構築に悩む人たちのために、環境構築についてまとめておきます。

【python】listをforループで回してremoveしたら思い通りにならない

forループでループ対象のリストから要素を除去してしまったりすると、まったく想定と違った結果になってしまうことがあります。pythonプログラミングを始めたばかりの人がよくハマるネタです。

【python】辞書で同じキーに複数の値を登録する

ちょっとしたTips。 辞書(dict)は通常、一つのキーには一つの値しか登録できない。代入しても上書きされる。 >>> d = {} >>> d["hoge"] = 1 >>> d {'hoge': 1} >>> d["hoge"] = 2 >>> d {'hoge': 2} こういうときどうすれば良いのかというと、値をリスト等…

【python】pythonでscanf的なことをする

一年以上前にこんな記事を書きました。 これはこれで今読み返すと面白い(香ばしい)記事ですが、真剣にpythonでscanfと同じことをしたくてアクセスしてきた人には役に立たないという問題点がありました。 そこで、pythonでscanfと同じことをする方法につい…

【python】pythonでprintf的なことをする

一年以上前にこんな記事を書きました。 これはこれで今読み返すと面白い(香ばしい)記事ですが、真剣にpythonでprintfと同じことをしたくてアクセスしてきた人には役に立たないという問題点がありました。 そこで、pythonでprintf的なことをする方法をまと…

【python】dictのkeyとvalueを入れ替える話色々

dictのkeyとvalueを入れ替えたい、誰でも一度はそう思うのではないだろうか。 方法は何種類かある。それらについて説明する。 あと、この話は簡単なようで実は罠の宝庫。その辺もちょっと説明しておく。 目次 for文で書く リスト内包表記で書く 辞書内包表記…