MENU

1-08 条件分岐で文字列を扱うためのメソッド

ファイル名: note08.ipynb

if, else を用いた条件分岐で数値を扱うことについては、前の授業で学習しましたが、文字に関する条件分岐を今回は考えてみます。例えば、パスワードを設定するときに、英字だけではなく数字も含めるようにシステムが指示してくることがありますね。文字列に対して、数字が無ければ”False”, 大文字が無ければ”False”となるような判定につかうのがメソッドです。

1. 文字列を扱うためのメソッド

メソッドは関数と似た働きをしますが、コード上の見た目が違います。

関数は、 xxx( ) のような形式です。括弧の中に処理する対象を入れます。

print("hello")
len("hello")

一方、メソッドは処理する対象の文字列の後ろに「 . 」 をつけて呼びます。

"hello".upper()

あるいは変数を用いて次のようにコードを書くこともできます。

text="hello"
text.upper()

2. 文字列を扱うメソッドの種類

文字列を扱う主要なメソッドは4つあります。

a. 変換系メソッド

文字を全て大文字に変換する .upper()
文字を全て小文字に変換する .lower()
単語の最初の文字を大文字に変換する .title()

text = "HeLlo, worLD"
print(text.upper())
print(text.lower())  
print(text.title())  

b. 調査系メソッド

パスワードが適正化どうかを判定するときなどに用います。

文字列が数字だけかどうかを判定 .isdigit()
文字列がアルファベットだけかを判定 .isalpha()
文字列が大文字だけかを判定 .isupper()
文字列が小文字だけかを判定 .islower()
文字列が空白だけかを判定.isspace()

判定例:

print("123".isdigit())      #True(全て数字)
print("abc".isdigit())      # False
print("12ab".isdigit())     # False(混ざっているとFalse)
print("".isdigit())         # False(空文字もFalse)

c. 検索系メソッド

文字列の中に特定の文字列が入っているかどうかを判定します。

文字列の最初に”xyz”が入っているかどうかを判定 .startwith("xyz")
文字列の最後に”xyz”が入っているかどうかを判定 .endwith("xyz")

判定例:

text = "hello@example.com"
print(text.startswith("http:"))  # False
print(text.endswith(".com"))    # True
print("@" in text)              # True

d. 整形系メソッド

特定文字を削除したり、置き換えたり、文字列を分割したりする。

文字列の両端にある空白を削除する .strip()

"  Hello World ".strip()

文字列”old”を”new”に置き換える .replace(old, new)

"Hello World".replace("World", "Python")

文字列を指定した文字”X”で分割する .split(“X”)

"Yamada.Taro.com" .split(".")

3. メソッドを用いた条件分岐の例

入力された電話番号が空欄/スペースだった場合のチェック

phone = input("Please enter your phone number")
if phone.strip() =="":
    print("電話番号が入力されていません")
else:
    print("Your phone number is", phone)

URLのチェック。https:で始まれば正しいURLと表示、http:で始まればセキュリティ上問題と警告、そうで無ければ「正しいURLを入力」するよう促す。

url = input("URLを入力してください")
if url.startswith("https:"):
    print("URLは",url,"です")
elif url.startswith("http:"):
    print("このURLはセキュリテイ上の問題があります")
else:
    print("正しいURLを入力してください")

コメント

コメントする