python3を久しぶりに使ったらかなり忘れていたので、よく使うコードをメモとして残します。
文字コード変換
目的 | コード | 結果 |
---|---|---|
1文字を、10進数に変換 | ord('a') ord('あ') |
97 12354 |
10進数を、1文字に変換 | chr(97) ord(12354) |
'a' 'あ' |
文字列-数値変換、数値判定
目的 | コード | 結果 | 備考 |
---|---|---|---|
数値を、10進数で書かれた文字に変換 | str(97) | '97' | |
数値を、16進数で書かれた文字に変換 | hex(97) | '0x61' | 0xが追加される |
数値を、2進数で書かれた文字に変換 | bin(97) | '0b1100001' | 0bが追加される |
10進数で書かれた文字を、数値に変換 | int('97') | 97 | |
16進数で書かれた文字を、数値に変換 | int('61',16) eval('0x61') |
97 97 |
evalで式を評価する |
16進数で書かれた文字を、数値に変換 | int('1100001',2) eval('0b1100001') |
97 97 |
evalで式を評価する |
文字列が10進数で書かれているか判定 | '123'.isdigit() '456'.isdigit() '78.9'.isdigit() '-123'.isdigit() |
True True False False |
全角でも判定可能 少数は判定不能 マイナスは判定不能 |
文字列をint型に代入できるか判定するだけなら、try ~ except を使ったほうが楽だと思います。
try:
data = int(input())
except:
data = 0
文字列の長さ
目的 | コード | 結果 | 備考 |
---|---|---|---|
文字列の長さを調べる | len('abcdefg') len('あいうえお') |
7 5 |
半角も全角も1文字としてカウントする |
文字列の切り出し
切り出す部分 | コード | 結果 |
---|---|---|
前n文字分 | 'abcdefg'[:3] | 'abc' |
後ろn文字分 | 'abcdefg'[-3:] | 'efg' |
前n文字目より後ろ | 'abcdefg'[3:] | 'defg' |
後ろn文字目より前 | 'abcdefg'[:-3] | 'abcd' |
前n文字目からm文字目まで | 'abcdefg'[3:5] | 'de' |
大文字-小文字変換、文字判定
目的 | コード | 結果 |
---|---|---|
小文字を大文字にする | 'abcdefg'.upper() | 'ABCDEFG' |
大文字を小文字にする | 'ABCDEFG'.lower() | 'abcdefg' |
全て小文字か判定する | 'abcdefg'.islower() | True |
全て大文字か判定する | 'abcdefg'.isupper() | False |
半角-全角変換
英数字は半角に、日本語は全角に変換にする
import unicodedata
unicodedata.normalize('NFKC','12AB34cdあいウエ')
'12AB34cdあいウエ'
文字列検索、置換、分割
目的 | コード | 結果 | 備考 |
---|---|---|---|
対象とする文字列が存在するか判定 | 'cd' in 'abcdefg' | True | |
対象とする文字列の位置を求める | 'abcdefg'.find('cd') 'abcdefg'.find('hi') |
2 -1 |
一番左の文字位置を返す ない場合は-1を返す |
対象とする文字を置き換える | 'abc def ghi'.replace(' ','_') | 'abcd_def_ghi' | |
文字列を区切り文字で分割する | 'ab,cd,ef'.split(',') 'abcdef'.split('cd') |
['ab','cd','ef'] ['ab','ef'] |
区切り文字は2文字でも可能 |
文字列を複数の区切り文字で分割する | re.split('[,:]','ab,cd:ef') | ['ab','cd','ef'] | 正規表現モジュール(re)を使う |
空白処理
目的 | コード | 結果 | 備考 |
---|---|---|---|
前後の空白を削除する | ' abcd efg '.strip() | 'abcd efg' | 文字列の中にある空白は消えない |