【Python】Python今日ググったこと(小ネタ集)
概要
Python関連の今日ググったことまとめました。
(もうちょいためてからリリースする予定だったが、
あんまりネタがたまらなかった。。)
目次
- 概要
- ■文字列にクォーテーションで囲われているか調べる
- ■Pylintで「Comparison to False should be 'not expr' or 'expr is False'」って怒られた
- おわりに
■文字列にクォーテーションで囲われているか調べる
動作確認環境
内容
クォーテーションを文字列として扱いたいときって、
エスケープが必要だよな?
と思い、下記のサイトを参考にしました。
- エスケープ必要
シングルクォートをシングルクォートで囲む:'\''
ダブルクォートをダブルクォートで囲む:"\""
- エスケープ不要
シングルクォートをダブルクォートで囲む:"'"
ダブルクォートをシングルクォートで囲む:'"'
で、ほうほうと思い、
下記のコードを書きました。
エスケープは見た目混乱するので、避けました。
文字列がダブルクォーテーションで囲われていなければ囲う処理です。
※まず悪い例です。
if str[0] == '"' and str[-1] == '"': pass else: str = '"' + str + '"'
しかしこれは、
str
の値が"
だった場合は囲ってくれません。
文字列の判定は、正規表現を使いましょう。
matchメソッドでひっかけました。
import re pattern = r'^".*"$' m = re.match(pattern, str) if m: pass else: str = '"' + str + '"'
下記、参考にしました。
reモジュールは別途また勉強します。
■Pylintで「Comparison to False should be 'not expr' or 'expr is False'」って怒られた
動作確認環境
- python 2.7.16
内容
if (Boolean型変数) == False: print("something")
==
は異なるオブジェクト間でも比較できてしまいます。
あえてそうしたいときはいいけど、
同一オブジェクトとして引っ掛けるときは、
is
を使いましょう。とのことです。
if (Boolean型変数) is False: print("something")
上記の通り直したら、
怒られなくなりました!
オブジェクト型も意識したコーディングをしようと心に誓いました。
おわりに
大した小ネタではないですが、
またいつかググりそうなことをまとめました。