LoginSignup
1
2

More than 3 years have passed since last update.

Pythonの%sが何か分からなくて調べてみた話

Posted at

%って書き方を見かけて、初見じゃ解読できずちょっと調べてみましたので、備忘録をつけていきます。

>>> # 参考例
>>> print 'My name is %s %s.' % ('python', 'qiita')
My name is python qiita.

こんな感じ。

で、どうやら、文字列の置き換え
って言うらしい

上の例なら、
My name is %s %s
この、に当たる部分を置き換えることが出来る

置き換え方は後半に書いてある、
% ('python', 'qiita')
この部分。

%の後に、カンマ区切りで前者と後者を書いていく。
print 'My name is %s %s.' % ('python', 'qiita')

この場合の出力結果は、
My name is python qiita.

正直、可読性低いなって思います…

普通に文字列でかけば良くないか?
どうしても置き換えたいなら、変数に入れてくれた方がいい気がするんですけどね…
ってのが私の意見です。

そう思ってもう少し調査。

Pythonの文字列フォーマット(formatメソッドの使い方) | ガンマソフト株式会社
こちらの記事によると、Python3ではformatメソッドを使った書き方が一般的らしいですね。

# 参考例
from datetime import datetime

# 今日の日付(例:20210303)
today = datetime.now().strftime("%Y%m%d")

# formatメソッドを使用
file_1 = "file_{}.txt".format(today)

# 出力結果
#file_20210303.txt

こっちの方が %を使った置き換えより可読性高いかな?って印象です。

置き換え部分が{}ってなってるから直感的でわかりやすいです。

format()メソッドの使い方

line = "{0}さんの身長は{1}cm、体重は{2}kgです。".format("みっつ", 170, 65)
print(line)

# 実行結果
# みっつさんの身長は170cm、体重は65kgです。

こんな感じで書くらしいです。
うむ、見やすい…(気がします)

置き換え部分はインデックス対応らしいので、インデックスを使い回すって書き方もできそうですね!

所感

Pythonは色んな記法があるから面白いですよね。
調べるたびに新しい発見あります。

3D界隈(Mayaメイン)の私からすると、MELと違って、OSにアクセス出来るってのがステキですね。
エクスプローラー経由で色々できるから、データの保持とかに重宝してます。

あと、配列操作も強い。
MELじゃできないことがPythonならできちゃう。

そこがおもしろいから研究しがいがありますよね。
これからの備忘録はQiitaにつけていこうかしら?

以上

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2