# solution 1) isupper(), islower()를 활용 # string이 list로 convert되었는지 구분하기 위한 flag변수 flag = False iv = ['A', 'b', 'C'] # iv = "AbCdEf" # 만약 입력한 값이 문자열인 경우, 리스트로 변환하고 flag변수를 True로 변환한다. iftype(iv) == str: iv = [w for w in iv] flag = True for idx, w inenumerate(iv): if w.isupper(): iv[idx] = w.lower() else: iv[idx] = w.upper() if flag: print(''.join(iv)) else: print(iv)
# solution 2) ASCII CODE를 활용 # string이 list로 convert되었는지 구분하기 위한 flag변수 flag = False iv = ['A', 'b', 'C'] # iv = "AbCdEf" # 만약 입력한 값이 문자열인 경우, 리스트로 변환하고 flag변수를 True로 변환한다. iftype(iv) == str: iv = [w for w in iv] flag = True for idx, w inenumerate(iv): # w의 ASCII 코드가 65이상 90이하인 경우 (대문자의 경우) iford(w) >= 65andord(w) <= 90: iv[idx] = chr(ord(w)+32) else: iv[idx] = chr(ord(w)-32) if flag: print(''.join(iv)) else: print(iv)
if day in day_list[:5] or day.replace("요일", "") in day_list[:5]: print("평일이네요ㅜㅜ") elif day in day_list[5:] or day.replace("요일", "") in day_list[5:]: print("주말입니다^^") else: print("요일을 입력하세요")
# conditional express print("평일이네요ㅜㅜ") if day in day_list[:5] or day.replace("요일", "") in day_list[:5] else \ print("주말입니다 ^ ^") if day in day_list[5:] or day.replace("요일", "") in day_list[5:] else \ print("요일을 입력하세요")
튜플의 형태로 평일과 주말을 분류하고, 입력한 문자열이 각각의 튜플의 내부에 있는지 검사해서 출력한다.
For
1 2 3
for 변수 in (리스트 or 문자열): 실행문1 ...
1 2
for i in ["python", "java", "golang"]: print(i)
1 2 3 4
# 복수 변수는 변수이름을 명명할때 복수로 명사로 선언한다. animals = ['cat', 'dog', 'aligator', 'tiger', 'lion'] for animal in animals: print('There is {} in cage.'.format(animal))
1 2 3 4 5 6 7
# 1부터 N까지의 합을 구하기 # (수식 : n(n+1)/2) - O(1) # For-loop를 사용한 풀이 - O(N) # 가독성을 높이기 위해 101이 아닌 100+1의 형태로 숫자를 작성해준다. for i inrange(1, 100+1): result += i print(result)
시간복잡도 이해
만약에 위의 문제를 for-loop를 사용해서 해결하지 않고, n(n+1)/2라는 수식으로만 해결을 한다면, 빅오 표기법으로 O(1)의 시작 복잡도를 갖는다. 반면에 for-loop를 사용해서 해결을 한다면, N번만큼 반복해야되므로 빅오 표기법으로 O(N)만큼의 시간복잡도를 갖는다.
magic_number = random.randint(1,20) print("Stop at ", magic_number) for i inrange(1, 100+1): if i == magic_number: break elif i%2==0: print('skip for now') # continue는 다음 index에 대해서 새로운 cycle을 시작하라는 의미이다. continue print(i)
continue는 현재 실행한 cycle을 끝내고 다음 cycle로 시작하고, break는 구문(for-loop)을 끝낸다.
Practice(2)
내가 작성한 코드
1번 문제)
1 2 3 4 5
num = int(input()) result = 1 while num > 0: result *= num num -= 1
2번 문제)
1 2 3 4 5 6
num_list = [[1, 0, 7, 0], [0, 2, 0, 9], [0, 6, 3, 7], [4, 0, 5, 1],] sum = 0 for i inrange(len(num_list)): for j inrange(len(num_list[i])): sum += num_list[i][j] print(sum)
강사님이 작성하신 코드 솔루션
1 2 3 4 5 6
user_num = int(input('Enter just one number(2-100): ')) print(user_num, type(user_num)) result = 1 for i inrange(1, user_num+1): result *= i print(result)