Input/python

파이썬 문자열의 글자 구성 파악 is__() : islower(), isupper(), isdigit(), isalpha()

buji-learn 2023. 11. 4. 21:00

·  isalnum()

: 알파벳 혹은 숫자로만 구성되어 있으면 참 (True) 반환, 공백이나 특수문자 있을 시 거짓 (False) 반환

test_alnum1 = "12345"
test_alnum2 = "AbcdE"
test_alnum3 = "XYZ9876"
test_alnum4 = "XYZ 98-76"

print(test_alnum1.isalnum())  # 결과 : True
print(test_alnum2.isalnum())  # 결과 : True
print(test_alnum3.isalnum())  # 결과 : True
print(test_alnum4.isalnum())  # 결과 : False

 

·  isalpha()

: 알파벳으로만 구성되어 있으면 참 (True) 반환, 숫자나 특수문자 있을 시 거짓 (False) 반환

test_alnum1 = "12345"
test_alnum2 = "AbcdE"
test_alnum3 = "XYZ9876"
test_alnum4 = "XYZ 98-76"

print(test_alnum1.isalpha())  # 결과 : False
print(test_alnum2.isalpha())  # 결과 : True
print(test_alnum3.isalpha())  # 결과 : False
print(test_alnum4.isalpha())  # 결과 : False

 

·  isdecimal()

: 정수 형태로만 구성되어 있으면 참 (True) 반환, 아니면 거짓 (False) 반환

 

·  isdigit()

: 숫자로 인식될 수 있으면 참 (True) 반환, 아니면 거짓 (False) 반환

test_digit1 = "12345"
test_digit2 = "12.345"
test_digit3 = "dot94"

print(test_digit1.isdigit())  # 결과 : True
print(test_digit2.isdigit())  # 결과 : False
print(test_digit3.isdigit())  # 결과 : False

 

·  isidentifier()

: 식별자로 사용가능하면 참 (True) 반환, 아니면 거짓 (False) 반환

 * 식별자 (identifier) : 프로그래밍 언어에서 이름을 붙여주는 변수, 함수, 메소드, 클래스, 모듈 등의 모든 것을 일컫는다.

_ 숫자 첫 글자 불가

_ 특수 문자 첫 글자 불가

_ 예약어 사용 기피

·  iskeyword()

: 예약어(keyword)이면 참 (True) 반환, 아니면 거짓 (False) 반환

from keyword import iskeyword

print('hello'.isidentifier())  # 결과 : True
print(iskeyword('hello'))      # 결과 : False

print('return'.isidentifier()) # 결과 : True
print(iskeyword('return'))     # 결과 : True

print('1numberFirst'.isidentifier()) # 결과 : False
print('.numberFirst'.isidentifier()) # 결과 : False

>> 예약어는 식별자로 사용은 가능하지만, 피하는 것이 관습이다.

 

Q. 식별자 사용 가능 여부는 이미 존재하는 식별자 인지 확인할 때 유용하지 않을까?

print(('test_iden'.isidentifier()))  # 결과 : True
test_iden = "test"
print(('test_iden'.isidentifier()))  # 결과 : True

print(('test_tuple'.isidentifier()))  # 결과 : True
test_tuple = (1, 2, 3)
print(('test_tuple'.isidentifier()))  # 결과 : True
test_tuple = (4, 5, 6)
print(test_tuple)  # 결과 : (4, 5, 6)

>> 아닌데? 어디 쓰는 걸까...?

·  islower()

: 소문자로만 구성되어 있으면 참 (True) 반환, 아니면 거짓 (False) 반환

·  isupper()

: 대문자로만 구성되어 있으면 참 (True) 반환, 아니면 거짓 (False) 반환

test_lower = "abcdef"
test_upper = "ZYXWVU"
test_mix = "AbCdE"

print(test_lower.islower())  # 결과 : True
print(test_upper.islower())  # 결과 : False
print(test_mix.islower())  # 결과 : False

print(test_lower.isupper())  # 결과 : False
print(test_upper.isupper())  # 결과 : True
print(test_mix.isupper())  # 결과 : False

 문자열이 문자로만 이루어져 있는지 확인할 때, string constans에서 loop를 돌려서 확인하는 방법도 있지만 isalpha()를 쓰면 훨씬 간단해진다.

test_T = "AbcDEFG"
test_F = "wXY__ Z"

import string

letters = string.ascii_letters 
print(letters)    
# 실행 결과 >>> abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

def check(string):
    for letter in string:
        if letter not in letters:
            return False
    return True

print(check(test_T))  # 결과 : True
print(check(test_F))  # 결과 : False
 

[python] 파이썬 공식홈페이지 string constants : ascii_letters, digits, punctuation

여태 필요하면 구글에 검색해서 사용하다가 파이썬 공식 문서를 보면서 정리해봤다. 역시 공식 홈페이지에는 뭐가 많다. String constants (문자열 상수) string.ascii_letters : 소문자 a ~ z + 대문자 A ~ Z st

buji-learn.com


test_T = "AbcDEFG"
test_F = "wXY__ Z"

print(test_T.isalpha())  # 결과 : True
print(test_F.isalpha())  # 결과 : False

 

 

Built-in Types

The following sections describe the standard types that are built into the interpreter. The principal built-in types are numerics, sequences, mappings, classes, instances and exceptions. Some colle...

docs.python.org