첫번째 문제는
dig_pow(89, 1) should return 1 since 8¹ + 9² = 89 = 89 1
dig_pow(92, 1) should return -1 since there is no k such as 9¹ + 2² equals 92 k
dig_pow(695, 2) should return 2 since 6² + 9³ + 5⁴= 1390 = 695 2
dig_pow(46288, 3) should return 51 since 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288 51
def dig_pow(n,p): num = str(n) t = sum([int(num[i]) ** (p + i) for i in range(len(num))]) if t%n == 0: return t/n else: return -1
n을 문자열로 바꾼 후 그 길이만큼 반복문을 작성한다. 그 다음 숫자 n의 i번째 인덱스와 p+i만큼 제곱해준 후 다 더해주고 만약 t가 n으로 나누어 떨어진다면 그 나누어 떨어지는 몫을 아니면 -1을 리턴했다.
두번째는
A pangram is a sentence that contains every single letter of the alphabet at least once. For example, the sentence "The quick brown fox jumps over the lazy dog" is a pangram, because it uses the letters A-Z at least once (case is irrelevant).
Given a string, detect whether or not it is a pangram. Return True if it is, False if not. Ignore numbers and punctuation.
즉 주어진 문장에 알파벳이 다 들어가면 True를 아니면 False를 출력한다.
def is_pangram(s): el = [] s = s.lower() for i in s: if i.isalpha(): if i not in el: el.append(i) return len(el) == 26
반복문을 통해서 만약 i가 알파벳이고 el에 i가 없을 경우 i를 추가한다. 그리고 그 리스트의 길이가 알파벳 갯수와 같으면 True 아니면 False를 출력한다.