皆さんはダブルクオートとシングルクオート、どちらをよく使いますか? 私は打ちやすいダブルクオートが好きです。
ダブルクオート、シングルクオートは文字列を表すためにあります。
でも、なぜ2つ必要なんでしょうか?
なぜ2つも必要なの?
プログラムは1つめのダブルクオートを「文字列の始まり」、2つめのダブルクオートを「文字列の終わり」と認識します。
このような文字列を表したいとき、
value = "123"
ダブルクオートを使うとこうなってしまいます。
"value = "123", 0"
なのでこのように書いてしまうとプログラムが「value = 」と「, 0」を文字列と認識し混乱してしまいます。
でも文字列を表すための物がもう一つあれば...
'value = "123", 0'
プログラムは1つめのシングルクオートを「文字列の始まり」、2つめのシングルクオートを「文字列の終わり」と認識します。
これで文字列の中で文字列を表せます。
もちろん、シングルクオートとダブルクオートを入れ替えても結果は変わりません。
では本題です。
ダブルクオート、シングルクオートどっちを使ったら処理が速くなるか
皆さん、これは一度は気になったことがありと思います。
「ダブルクオート、シングルクオート、どう違うの?」
では、それを調べるためのサンプルコードを用意しました。
import time
def Quotation_Mark(): # ダブルクオート
start_time = time.process_time()
for i in range(100000000):
a = "aa" + "bb"
end_time = time.process_time()
return end_time - start_time
def Apostrophe(): # シングルクオート
start_time = time.process_time()
for i in range(100000000):
a = 'aa' + 'bb'
end_time = time.process_time()
return end_time - start_time
if __name__ == "__main__":
Quotation_Mark_ans = 0
Apostrophe_ans = 0
for i in range(10):
Quotation_Mark_ans += Quotation_Mark()
Apostrophe_ans += Apostrophe()
print(Quotation_Mark_ans - Apostrophe_ans) # 負の数値にっていればシングルクオートのほうが速い。
これを何回か実行していきます。
ダブルクオートを先に計算、シングルクオートを先に計算を同じ回数ずつやっていきます。
実行結果
回目 | ダブル(") | シングル(') | 結果 |
---|---|---|---|
1 | 27.953125秒 | 26.625 秒 | -1.328125秒 |
2 | 21.90625 秒 | 21.546875秒 | 0.359375秒 |
3 | 19.09375 秒 | 19.546875秒 | -0.453125秒 |
4 | 20.375 秒 | 20.96875 秒 | -0.59375 秒 |
5 | 20.125 秒 | 20.6875 秒 | -0.5625 秒 |
6 | 22.421875秒 | 21.53125 秒 | 0.890625秒 |
7 | 22.328125秒 | 21.3125 秒 | 1.015625秒 |
8 | 21.53125 秒 | 22.328125秒 | -0.796875秒 |
9 | 19.875 秒 | 21.21875 秒 | -1.34375 秒 |
10 | 23.96875 秒 | 23.9375 秒 | 0.03125 秒 |
平均 | 21.9578125秒 | 21.9703125秒 | 0.0125 秒 |
結果は誤差もありますがほぼ同じですね。
いい自由研究になりました。