[解決済み] なぜPythonの文字列ではバックスラッシュが3つで4つになるのですか?
2023-03-10 15:21:23
質問
なぜ
'?\\\?'=='?\\\\?'
は
True
? これは私を狂わせますし、合理的な答えを見つけることができません....
>>> list('?\\\?')
['?', '\\', '\\', '?']
>>> list('?\\\\?')
['?', '\\', '\\', '?']
どのように解決するのですか?
基本的にpythonはバックスラッシュの処理に若干甘いためです。引用元 https://docs.python.org/2.0/ref/strings.html :
標準Cとは異なり、認識できないエスケープシーケンスはすべて文字列のまま変更されない、すなわち バックスラッシュは文字列に残されます .
(原文のまま強調)
したがって、pythonでは、3つのバックスラッシュは4つに等しいというわけではなく、バックスラッシュの後に以下のような文字が続くと、4つになります。
?
のようにバックスラッシュの後に文字が続くと、2つ合わせて2文字として扱われます。
\?
は認識されるエスケープシーケンスではないためです。
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法