1. quiz
- 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
2. answer
import re
def solution(my_string):
numbers = re.findall(r'\d+', my_string)
return sum(i for i in list(map(int,numbers)))
3. 다른 사람의 풀이
def solution(my_string):
s = ''.join(i if i.isdigit() else ' ' for i in my_string)
return sum(int(i) for i in s.split())
import re
def solution(my_string):
return sum([int(i) for i in re.findall(r'[0-9]+', my_string)])
4.
4.1. isdigit(), isalpha(), isalnum()
- isdigit() : 숫자로만 구성되어 있으면 True, 문자열에서 정수 추출
- isalpha() : 문자로 구성되어 있으면 True, 문자열에서 글자 추출
- isalnum() : 글자 또는 숫자로 구성되어 있으면 True
4.2. re.findall()
- r'\d+' : 1회 이상 연속된 숫자들에 대한 패턴 추출
- r'\d' : 숫자 1개씩 추출
import re
numbers = re.findall(r'\d+', string)
number = re.findall(r'd', string)
- [0-9]+ : 숫자들 추출 정규식
- [a-zA-Z] : 문자들 추출 정규식