문자열에 문자와 숫자가 모두 포함되어 있는지 확인하는 방법
Nov 17 2020
문자열 경우 확인하는 방법 엄격 문자와 숫자가 모두 포함?
다음은 충분하지 않습니까?
def containsLettersAndNumber(input):
if input.isalnum():
return True
else:
return False
isAlnum = containsLettersAndNumber('abc') # Should return false
isAlnum = containsLettersAndNumber('123') # Should return false
isAlnum = containsLettersAndNumber('abc123') # Should return true
isAlnum = containsLettersAndNumber('abc123$#') # Should return true
그것은주의하시기 바랍니다 해야 문자와 숫자를 모두 포함
답변
2 JonKiparsky Nov 17 2020 at 03:13
문자열 메서드 만 사용하는 가장 간단한 방법 :
def containsLetterAndNumber(input):
return input.isalnum() and not input.isalpha() and not input.isdigit()
input.isalnum
S의 모든 문자가 영숫자이면 true를 input.isalpha
반환하고, 입력에 알파벳이 아닌 문자 input.isdigit
가 포함되어 있으면 false를 반환하고, 입력에 숫자가 아닌 문자가 포함되어 있으면 false를 반환합니다.
따라서 input
영숫자가 아닌 문자 가 포함 된 경우 첫 번째 검사는 거짓입니다. 만약 not input.isalpha()
그것이 input
적어도 하나의 알파벳이 아닌 문자 를 포함하고 있다는 것을 안다면 -우리가 확인했기 때문에 숫자 여야합니다 input.isalnum()
. 마찬가지로, not input.isdigit()
True이면 input
알파벳 문자 여야하는 숫자가 아닌 문자가 하나 이상 포함되어 있음을 알 수 있습니다.
7 Aplet123 Nov 17 2020 at 00:26
문자를 찾았는지 번호를 찾았는지 반복하고 추적 할 수 있습니다.
def containsLetterAndNumber(input):
has_letter = False
has_number = False
for x in input:
if x.isalpha():
has_letter = True
elif x.isnumeric():
has_number = True
if has_letter and has_number:
return True
return False
또는 더 비단뱀 적이지만 더 느린 방법 :
def containsLetterAndNumber(input):
return any(x.isalpha() for x in input) and any(x.isnumeric() for x in input)