中安拓也のブログ

プログラミングについて書くブログ

【Python3】特徴的だと思った機能まとめ その2

引き続き、面白いな〜と思った機能をまとめていく

前回の記事

【Python3】特徴的だと思った機能まとめ その1 - L08084のブログ

バージョン情報

  • Python 3.7.2

出典元

https://www.oreilly.co.jp/books/9784873117386/

オライリーの「入門 Python 3」

学習メモ

「入門 Python 3」を読んでいて、印象に残った関数・機能をまとめています。

文字列操作関数の種類が豊富(isalnum(), title(), capitalize(), center(), ljust(), rjust())

文字列をあれこれする関数が多い。正直、これいる?みたいなのもある。

文字列が英数字のみか判定するisalnum()

文字列が英数字のみだと、Trueを返す関数

>>> old_commic = 'koroshiya1'
>>> yondenai = 'ホムンクルス1巻'
>>> new_commic = 'HIKARI-MAN'

>>> old_commic.isalnum() # 英数字しか含まれていないため、True
True
>>> yondenai.isalnum() # 英数字以外が含まれているのにTrue(えっ????)
True
>>> new_commic.isalnum() # 英数字以外(記号)が含まれているため、False
False

実際にサンプルコードを書いてみて初めて気づいたんですが、全角文字はTrueと判定されるらしい。まじで何の役に立つんだ??英語圏の人間が憎い...

>>> 'アイウエオ'.isalnum() # 全角文字はTrueと判定される
True
文字列の単語の頭文字を大文字にするtitle()

一生使わない気がする

>>> 'fight club'.title() # 英字単語の頭文字が大文字になる
'Fight Club'
先頭の一文字を大文字にするcapitalize()

capitalize には「〜を大文字で書く(始める)」という意味があるそうな

>>> 'django unchained'.capitalize() # 先頭の一文字を大文字にする
'Django unchained'
文字列の左寄せ、中央寄せ、右寄せ(ljust(), center(), rjust())

ljust(), center(), rjust()は、空白を追加することによって、指定した文字列を左寄せ、中央寄せ、右寄せしてくれる関数です。
第一引数に生成する文字列の長さを指定してあげる必要があります。

>>> 'serpent'.center(15) # 中央寄せ
'    serpent    '
>>> 'serpent'.ljust(15) # 左寄せ
'serpent        '
>>> 'serpent'.rjust(15) # 右寄せ
'        serpent'

三項演算子の文法が独特

JavaとかJavaScriptでもおなじみの条件(三項)演算子ですが、Pythonだと文法がだいぶ異なります。

  • JavaScriptの場合

JavaScriptの条件演算子の文法は次のようになっています。

[条件] ? [真の場合に返される値] : [偽の場合に返される値]

// 年齢が20才以上だったら、statusに'adult'の文字列が代入される
const status = age >= 20 ? 'adult' : 'child';
  • Pythonの場合

Pythonの場合はこうです。

[真の場合に返される値] if [条件] else [偽の場合に返される値]

status = 'adult' if age >= 20 else 'child'

Pythonの三項演算子、JavaScriptのそれと比べると書き方がちょっとくどいなって感じたんですが、文法が冗長なぶん読みやすいので、好みの問題かもしれないです。

以上

次回の記事

【Python3】特徴的だと思った機能まとめ その3 - 中安拓也のブログ