ぴよ丸水産

週末ファゴッティストによる技術ブログ

【Python】Python今日ググったこと(小ネタ集)

概要

Python関連の今日ググったことまとめました。
(もうちょいためてからリリースする予定だったが、
あんまりネタがたまらなかった。。)

目次

■文字列にクォーテーションで囲われているか調べる

動作確認環境

内容

クォーテーションを文字列として扱いたいときって、
エスケープが必要だよな?
と思い、下記のサイトを参考にしました。

techacademy.jp

シングルクォートをシングルクォートで囲む:'\''
ダブルクォートをダブルクォートで囲む:"\""

シングルクォートをダブルクォートで囲む:"'"
ダブルクォートをシングルクォートで囲む:'"'

で、ほうほうと思い、
下記のコードを書きました。
エスケープは見た目混乱するので、避けました。

文字列がダブルクォーテーションで囲われていなければ囲う処理です。

※まず悪い例です。

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モジュールは別途また勉強します。

qiita.com

■Pylintで「Comparison to False should be 'not expr' or 'expr is False'」って怒られた

動作確認環境

内容

qiita.com

if (Boolean型変数) == False:
    print("something")

==は異なるオブジェクト間でも比較できてしまいます。
あえてそうしたいときはいいけど、
同一オブジェクトとして引っ掛けるときは、
isを使いましょう。とのことです。

if (Boolean型変数) is False:
    print("something")

上記の通り直したら、
怒られなくなりました!
オブジェクト型も意識したコーディングをしようと心に誓いました。

おわりに

大した小ネタではないですが、
またいつかググりそうなことをまとめました。