目標の長さと比較する
このステップでは、文字列の長さを目標の長さと比較する方法を学びます。これは、ユーザー入力の検証や特定の長さ要件に合わせなければならないデータの処理など、プログラミングにおける一般的なタスクです。
ユーザーが入力したユーザー名が 3 文字以上 10 文字以下であることを確認したいシナリオを作成しましょう。~/project
ディレクトリ内の string_length.py
ファイルを以下の内容に変更します。
## filename: string_length.py
username = input("Enter a username: ")
length = len(username)
if length < 3:
print("Username must be at least 3 characters long.")
elif length > 10:
print("Username must be no more than 10 characters long.")
else:
print("Username is valid.")
ファイルを保存して実行します。
python ~/project/string_length.py
ユーザー名が短すぎる場合:
Enter a username: ab
出力は以下のようになります。
Username must be at least 3 characters long.
ユーザー名が長すぎる場合:
Enter a username: abcdefghijk
出力は以下のようになります。
Username must be no more than 10 characters long.
有効なユーザー名を入力した場合:
Enter a username: abcdef
出力は以下のようになります。
Username is valid.
この例は、len()
関数を使用して文字列が特定の長さ条件を満たしているかどうかを確認する方法を示しています。
次に、パスワードを検証するより複雑なシナリオを考えてみましょう。パスワードは 8 文字以上 16 文字以下で、少なくとも 1 つの数字を含まなければなりません。string_length.py
ファイルを以下のように変更します。
## filename: string_length.py
password = input("Enter a password: ")
length = len(password)
has_digit = False
for char in password:
if char.isdigit():
has_digit = True
break
if length < 8:
print("Password must be at least 8 characters long.")
elif length > 16:
print("Password must be no more than 16 characters long.")
elif not has_digit:
print("Password must contain at least one digit.")
else:
print("Password is valid.")
ファイルを保存して実行します。
python ~/project/string_length.py
パスワードが短すぎる場合:
Enter a password: abcdefg
出力は以下のようになります。
Password must be at least 8 characters long.
パスワードが長すぎる場合:
Enter a password: abcdefghijklmnopq
出力は以下のようになります。
Password must be no more than 16 characters long.
パスワードに数字が含まれていない場合:
Enter a password: abcdefgh
出力は以下のようになります。
Password must contain at least one digit.
有効なパスワードを入力した場合:
Enter a password: abcdefg1
出力は以下のようになります。
Password is valid.
この例は、len()
関数を他の手法(文字列内をループして特定の文字をチェックするなど)と組み合わせて、より高度な検証を行う方法を示しています。