LoginSignup
0
0

More than 1 year has passed since last update.

Python学習日記 ~文字列型に関連するメソッドについて~

Posted at

ということで、python学習開始2日目です。
学んだことは自分で文字に起こして忘れないよう、
知識定着できるよう適宜まとめていきたいと思います。

まず、pythonでは、

オブジェクト.メソッド() 

として、関数を示すことがわかりました。いままでやってきたPHPの時とはちがうなあ!
JSと近いイメージだなと思いました。(素人感想すみません、、)

以下は本日学習した、文字列に関連する関数とユースケースです。

文字列の複製

fruit_10 = 'fruit' * 10
print(fruit_10)
→fruitfruitfruitfruitfruitfruitfruitfruitfruitfruitfruitfruit

文字列の連結

new_fruit = 'apple' + 'banana'
print(new_fruit)
→applebanana

特定のインデックスの文字のみ抽出

fruit = 'fruit'
print(fruit[2])
→u
※f(0) r(1) u(2) i(3) t(4)

count 指定の文字列が何個あるか

msg = 'ABCDEABC'
print(msg.count('ABC'))
msg内に’ABC’は2個あるから、2を返す

startswith 指定の文字列から始まっているかいないか

msg = 'ABCDEABC'
print(msg.startswith('ABCD'))
msgは’ABCD’で始まっているので、Trueを返す
違う場合は、Falseを返す

endtswith 指定の文字列で終わっているかいないか

msg = 'ABCDEABC'
print(msg.endswith('ABC'))
msgは’ABC’で終わっているので、Trueを返す
違う場合は、Falseを返す

strip(両端) rstrip(右端) lstrip(左端)

msg = 'ABCDEABC'
print(msg.strip('CBA'))
両端から、’CBA’それぞれと一致した文字列を削除する
上記の場合は、両端にA/B/Cがあるので、DEを返す。

例えば
msg = 'ABCDEABC'
print(msg.strip('CA'))
とすると、左端の場合は、まずAを削除。
次のBはstripで指定していないのでそこで削除終了。
右はCを削除。次のBはないので削除終了。BCDEABを返す。

rstripは右端のみ。lstripは左端のみを返す。

upper lower swapcase 大文字・小文字を変換する

msg = 'abcABC'
msg_u = msg.upper() #大文字
msg_l = msg.lower() #小文字
msg_s = msg.swapcase() #大文字と小文字を変換する

・upper:すべての文字列を大文字にする(msg_u = ABCABC)
・lower:すべての文字列を小文字にする (msg_l = abcabc)
・swapcase:すべての文字列の大文字と小文字を入れ替える (ABCabc)

replace 文字列の置換

msg = 'ABCDEABC'
msg_r = msg.replace('ABC', 'FFF')
第1引数の文字列を第2引数の文字列に置換する(msg_r = FFFDEFFF)

第3引数があるとき
msg = 'ABCDEABC'
msg_r = msg.replace('ABC', 'FFF', 1) #変換 第三引数は左からその順番のものだけ変換
第3引数には数値を入れる。左から順に見てn番目の文字列のみ置換する
上記の場合は、msg_r = FFFDEABC

capitalize 一文字目のみ大文字に変換

msg = 'hello World'
print(msg.capitalize())
上記の場合は、Hello worldを返す。
※大文字だったWは一文字目ではないので小文字に変換

文字列の一部取り出し

msg = 'hello my name is Taro'
print(msg[:7])
print(msg[7:])
print(msg[1:7])
print(msg[1:7:2])
上から順に、
hello m(indexで数えて7番目まで)
y name is Taro(indexで数えて7番目よりあと)
ello m(indexで数えて1番目から7番目まで)
el(indexで数えて1番目から7番目までを2文字飛ばしで’e’’l’’ ’)
※第3引数はn文字飛ばしで取り出しを行う。

islower と isupper 大文字小文字の判別

・islower すべて小文字ならTrue 一文字でも小文字でないならFalse
・isupper すべて大文字ならTrue 一文字でも大文字でないならFalse
msg = 'apple'
print(msg.islower()) #すべて小文字なのでTrue
print(msg.isupper()) #すべて大文字ではないのでFalse

find rfind index rindex 文字列のある場所を返す

msg = 'ABCDEABC'
print(msg.find('ABC'))
print(msg.rfind('ABC'))
print(msg.index('ABC'))
print(msg.rindex('ABC'))

上から順に、
0(indexで0番目にあるため)
5(indexで5番目にあるため)
0(indexで0番目にあるため)
5(indexで5番目にあるため)

※findとindexの違いは、指定の文字列が見つからなかったとき
find:見つからなかったら、-1を返す
index:見つからなかったら、エラーとなる

所感

今までPHPを少し学んでいたこともあって、そんなに抵抗なくメソッドの知識が入ってきている実感があります。さっさと知識身に着けてアプリ作ってみて10月の入社まで引き続き頑張ります。
つたない文章でしたが、お読みいただいてありがとうございました。

※encodeとformatは落ち着いたら別の機会にまとめようと思います。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0