이번주 안으로 300문제 다 끝낸다
파이썬 반복문 151~160
# 151
# 리스트에는 네 개의 정수가 저장돼 있다.
# for문을 사용해서 리스트의 음수를 출력하라.
리스트 = [3, -20, -3, 44]
# -20
# -3
for i in 리스트:
if i < 0 :
print(i)
# 152
# for문을 사용해서 3의 배수만을 출력하라.
리스트 = [3, 100, 23, 44]
# 3
for i in 리스트:
if i % 3 ==0: # 3으로 나누고 나머지 값이 0이면
print(i)
# 153
# 리스트에서 20 보다 작은 3의 배수를 출력하라.
리스트 = [13, 21, 12, 14, 30, 18]
# 12
# 18
for i in 리스트:
if i < 20 and i% 3 ==0: # and로 둘 다 충족하는 조건
print(i)
# 154
# 리스트에서 세 글자 이상의 문자를 화면에 출력하라.
리스트 = ["I", "study", "python", "language", "!"]
# study
# python
# language
for i in 리스트:
if len(i) >= 3: #len 문자열의 길이를 정수로 변환
print(i)
# 155
# 리스트에서 대문자만 화면에 출력하라.
리스트 = ["A", "b", "c", "D"]
# A
# D
# (참고) isupper() 메서드는 대문자 여부를 판별합니다.
# >> 변수 = "A"
# >> 변수.isupper()
# True
# >> 변수 = "a"
# >> 변수.isupper()
# False
for i in 리스트:
if i.isupper(): # 대문자면 True 값인 i로 출력
print(i)
# 156
# 리스트에서 소문자만 화면에 출력하라.
리스트 = ["A", "b", "c", "D"]
# b
# c
for i in 리스트:
if i.islower(): # 소문자면 True 값인 i로 출력
print(i)
# if i.isupper():
# print(i.lower)# 출력 값을 lower로도 가능
# 157
# 이름의 첫 글자를 대문자로 변경해서 출력하라.
리스트 = ['dog', 'cat', 'parrot']
# Dog
# Cat
# Parrot
# (참고) upper() 메서드는 문자열을 대문자로 변경합니다.
# >> 변수 = "a"
# >> 변수.upper()
# A
# >> 변수 = "abc"
# >> 변수.upper()
# ABC
for i in 리스트:
print(i.capitalize())
# 문자열이라 capitalize로 앞글자를 대문자로 변환이 좋다.
# 158
# 파일 이름이 저장된 리스트에서 확장자를 제거하고 파일 이름만 화면에 출력하라.
# (힌트: split() 메서드)
리스트 = ['hello.py', 'ex01.py', 'intro.hwp']
# hello
# ex01
# intro
for i in 리스트:
name, ext=(i.split('.')) #.을 기준으로 나눠 언패킹
print(name) # name = 파일이름
# ext = 확장자
# 159
# 파일 이름이 저장된 리스트에서 확장자가 .h인 파일 이름을 출력하라.
리스트 = ['intra.h', 'intra.c', 'define.h', 'run.py']
# intra.h
# define.h
for i in 리스트:
if i.endswith(".h"): # endswith()는 끝 문자로 검색하는 함수
print(i) # startswith()는 시작하는 문자를 검색
# 앞, 뒤 = i.split(".")
# if 뒤 == 'h' :
# print(i) 나는 이렇게 풀었다.
# 160
# 파일 이름이 저장된 리스트에서 확장자가 .h나 .c인 파일을 화면에 출력하라.
리스트 = ['intra.h', 'intra.c', 'define.h', 'run.py']
# intra.h
# intra.c
# define.h
for i in 리스트:
if i.endswith(".h") or i.endswith(".c"): # endswith()는 끝 문자로 검색하는 함수
print(i)
# split = i.split(".") # 메서드로 분할하고 [1]번째를 찾아도 된다.
# if (split[1] == "h") or (split[1] == "c"):
# print(i)
파이썬 반복문 161~170
# 161
# for문과 range 구문을 사용해서 0~99까지 한 라인에 하나씩 순차적으로 출력하는 프로그램을 작성하라.
for i in range(0,100):
print(i)
# 162
# 월드컵은 4년에 한 번 개최된다. range()를 사용하여 2002~2050년까지 중
# 월드컵이 개최되는 연도를 출력하라.
# 2002
# 2006
# 2010
# ...
# 2042
# 2046
# 2050
# 참고) range의 세번 째 파라미터는 증감폭을 결정합니다.
# >> print(list(range(0, 10, 2)))
# [0, 2, 4, 6, 8]
for i in range(2002,2051,4):
print(i)
# 163
# 1부터 30까지의 숫자 중 3의 배수를 출력하라.
# 3
# 6
# 9
# 12
# 15
# 18
# 21
# 24
# 27
# 30
for i in range(3,31,3):
print(i)
# 164
# 99부터 0까지 1씩 감소하는 숫자들을, 한 라인에 하나씩 출력하라.
for i in range(99,-1,-1):
print(i)
# 165
# for문을 사용해서 아래와 같이 출력하라.
# 0.0
# 0.1
# 0.2
# 0.3
# 0.4
# 0.5
# ...
# 0.9
for i in range(1,10):
print('0.',i,sep='') # sep로 공백을 지워준다
# print(str(float(i*0.1))[0:3]) ◀ 내가 푼 정답
# 166
# 구구단 3단을 출력하라.
# 3x1 = 3
# 3x2 = 6
# 3x3 = 9
# 3x4 = 12
# 3x5 = 15
# 3x6 = 18
# 3x7 = 21
# 3x8 = 24
# 3x9 = 27
for i in range(1,10):
print('3x',i,' = ',3*i,sep='')
# print(f'3x{i} = {i*3}',sep='') ◀ 내가 푼 정답
# └> 포멧팅 해서 값을 불러옴
# 167
# 구구단 3단을 출력하라. 단 홀수 번째만 출력한다.
# 3x1 = 3
# 3x3 = 9
# 3x5 = 15
# 3x7 = 21
# 3x9 = 27
for i in range(1,10,2): # 2를 넣어 간격을 생성
print(f'3x{i} = {i*3}',sep='')
# 168
# 1~10까지의 숫자에 대해 모두 더한 값을 출력하는 프로그램을 for 문을 사용하여 작성하라.
# 합 : 55
# answer 초기값 0을 출력 하고 싶으면 반복문 전에 print 해야함.
answer = 0
# ┌ a = answer ┐
# └ answer = 0 ┘ ◀ 이렇게 따로 변수를 하나 지정하는 수 밖에 없다!
for i in range(1,11):
answer = answer+ i # answer += i 도 가능
print(answer) # 출력된 answer 값은 반복문을 거친 answer 값만 출력 된다.
# 169
# 1~10까지의 숫자 중 모든 홀수의 합을 출력하는 프로그램을 for 문을 사용하여 작성하라.
# 합 : 25
result =0
for i in range(1,10,2): # 2를 넣어 간격을 생성
result += i
print("합 :",result)
# 170
# 1~10까지의 숫자를 모두 곱한 값을 출력하는 프로그램을 for 문을 사용하여 작성하라.
answer = 1
for i in range(1,11):
answer = answer* i
print(answer)
파이썬 반복문 171~180
# 171
# 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.
price_list = [32100, 32150, 32000, 32500]
# 32100
# 32150
# 32000
# 32500
# 0,1,2,3번째라는 생성된 정수를 인덱스 후
for i in range(0,4): # i 라는 변수에 순차적으로 반복
print(price_list[i])
# price_list는 [i]를 인덱싱 함.
# for i in price_list:
# price_list[:]
# print(i) # 조건이 없다면 이렇게 써도 된다.
# 172
# 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.
price_list = [32100, 32150, 32000, 32500]
# 0 32100
# 1 32150
# 2 32000
# 3 32500
for i in range(0,4):
print(i,price_list[i])
# range 인덱스에서 만든 정수 0~3번을 따로 출력
# 173
# 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.
price_list = [32100, 32150, 32000, 32500]
# 3 32100
# 2 32150
# 1 32000
# 0 32500
for i in range(0,4):
print(3-i,price_list[i]) # 3을 뺀다.
# 174
# 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.
price_list = [32100, 32150, 32000, 32500]
# 100 32150
# 110 32000
# 120 32500
for i in range(1,4):
print(90+(i*10),price_list[i]) # 90+ 10씩
# 175
# my_list를 아래와 같이 출력하라.
my_list = ["가", "나", "다", "라"]
# 가 나
# 나 다
# 다 라
for i in range(0,3): # 4로 하면 4줄 출력됨..
print(my_list[i],my_list[i+1])
# 0+1 , 1+2, ...
# 176
# 리스트를 아래와 같이 출력하라.
my_list = ["가", "나", "다", "라", "마"]
# 가 나 다
# 나 다 라
# 다 라 마
for i in range(0,3):
print(my_list[i],my_list[i+1],my_list[i+2])
# 177
# 반복문과 range 함수를 사용해서 my_list를 아래와 같이 출력하라.
my_list = ["가", "나", "다", "라"]
# 라 다
# 다 나
# 나 가
# for i in range(0,3): # 4로 하면 4줄 출력됨..
# print(my_list[3-i],my_list[2-i]) # 내가 쓴 정답
# 어렵게 생각하지 말고 그냥 range(3,0,-1)로 바꾸자
for i in range(3,0,-1):
print(my_list[i],my_list[i-1])
# 178
# 리스트에는 네 개의 정수가 저장되어 있다. 각각의 데이터에 대해서
# 자신과 우측값과의 차분값을 화면에 출력하라.
my_list = [100, 200, 400, 800]
# 100
# 200
# 400
for i in range(0,3):
print(my_list[i+1]-my_list[i])
# 179
# 리스트에는 6일 간의 종가 데이터가 저장되어 있다.
# 종가 데이터의 3일 이동 평균을 계산하고 이를 화면에 출력하라.
my_list = [100, 200, 400, 800, 1000, 1300]
# 233.33333333333334
# 466.6666666666667
# 733.3333333333334
# 1033.3333333333333
for i in range(0,4):
sum1 = my_list[i]+my_list[i+1]+my_list[i+2]
print(sum1/3)
# 180
# 리스트에 5일간의 저가, 고가 정보가 저장돼 있다. 고가와 저가의 차를 변동폭이라고 정의할 때,
# low, high 두 개의 리스트를 사용해서 5일간의 변동폭을 volatility 리스트에 저장하라.
low_prices = [100, 200, 400, 800, 1000]
high_prices = [150, 300, 430, 880, 1000]
volatility = [] # 새로 만들어야 할 volatility 리스트
for i in range(5): # 굳이 (0,5) 할 필요 없다
변동폭 = high_prices[i] - low_prices[i] # 변동폭은 빼서 구함
volatility.append(변동폭) # append로 리스트 안에 넣어준다.
print(volatility)
파이썬 반복문 181~190
# 181
# 아래 표에서 하나의 행을 하나의 리스트로, 총 3개의 리스트를 갖는 이차원 리스트 apart를 정의하라.
# 101호 102호
# 201호 202호
# 301호 302호
apart = [['101호','102호'],
['201호','202호'],
['301호','302호']]
print(apart)
# 182
# 아래 표에서 하나의 열을 하나의 리스트로, 총 2개의 리스트를 갖는 이차원 리스트 stock을 정의하라.
# 시가 종가
# 100 80
# 200 210
# 300 330
stock = [ ["시가", 100, 200, 300], ["종가", 80, 210, 330] ]
# 183
# 아래 표를 stock 이름의 딕셔너리로 표현하라.
# 시가를 key로 저장하고, 나머지 같은 열의 데이터를 리스트로 저장해서 value로 저장한다.
# 종가 역시 key로 저장하고 나머지 같은 열의 데이터를 리스트로 저장해서 value로 저장한다.
# 시가 종가
# 100 80
# 200 210
# 300 330
# 딕셔너리로 키 값 벨류값(리스트로 여러 값 가능) 생성
stock = {'시가':[100,200,300],'종가':[80,210,330]}
print(stock)
# 184
# 아래 표를 stock 이라는 이름의 딕셔너리로 표현하라.
# 날짜를 key로 저장하고, 나머지 같은 행의 데이터를 리스트로 저장해서 value로 저장한다.
# 첫 열이 날짜이다.
# 10/10 80 110 70 90
# 10/11 210 230 190 200
stock = {"10/10":[80, 110, 70, 90],
"10/11":[210, 230, 190, 200]}
print(stock["10/10"][0],stock["10/11"][:2])
# 80 [210, 230] 이런 식으로 원하는 벨류값 출력 가능
# 185
# 리스트에 저장된 데이터를 아래와 같이 출력하라.
apart = [ [101, 102], [201, 202], [301, 302] ]
# 101 호
# 102 호
# 201 호
# 202 호
# 301 호
# 302 호
# 이중 루프
for 층 in apart: # 아파트에 층을 올라가
for 집 in 층: # 집을 순회하고 그 다음 층으로
print(집,'호') # 담겨져 나오는 값은 집 호수이다.
# 186
# 리스트에 저장된 데이터를 아래와 같이 출력하라.
apart = [ [101, 102], [201, 202], [301, 302] ]
# 301 호
# 302 호
# 201 호
# 202 호
# 101 호
# 102 호
for 층 in apart[::-1]: # 아파트 전체 값을 뒤집음
for 집 in 층:
print(집,'호')
# 187
# 리스트에 저장된 데이터를 아래와 같이 출력하라.
apart = [ [101, 102], [201, 202], [301, 302] ]
# 302 호
# 301 호
# 202 호
# 201 호
# 102 호
# 101 호
for 층 in apart[::-1]:
for 집 in 층[::-1]: #층을 뒤집으면 층만 뒤집어짐
print(집,'호')
# 188
# 리스트에 저장된 데이터를 아래와 같이 출력하라.
apart = [ [101, 102], [201, 202], [301, 302] ]
# 101 호
# -----
# 102 호
# -----
# 201 호
# -----
# 202 호
# -----
# 301 호
# -----
# 302 호
# -----
for 층 in apart:
for 집 in 층:
print(집,'호') # 내가 푼 정답 : print(집,'호\n-----')
print('-----')
# 189
# 리스트에 저장된 데이터를 아래와 같이 출력하라.
apart = [ [101, 102], [201, 202], [301, 302] ]
# 101 호
# 102 호
# -----
# 201 호
# 202 호
# -----
# 301 호
# 302 호
# -----
for 층 in apart:
for 집 in 층:
print(집,'호')
# print(집+1,'호\n-----') ◀ 내가 푼 정답
# ↑ 안쪽 for 문의 끝나는 지점
print('-----') # 정답, 층 마다 '-----' 출력
# 190
# 리스트에 저장된 데이터를 아래와 같이 출력하라.
apart = [ [101, 102], [201, 202], [301, 302] ]
# 101 호
# 102 호
# 201 호
# 202 호
# 301 호
# 302 호
# -----
for 층 in apart:
for 집 in 층:
print(집,'호')
print('-----') # 아파트에 '-----'를 출력
이중 루프부터 뭔가 머리 아프다..
'📖TIL(Today I Learned)' 카테고리의 다른 글
어쩌면 마지막 티스토리 WIL (0) | 2024.12.20 |
---|---|
TIL 28일 차) 학습반 정리 및 Cursor(커서) (10) | 2024.12.18 |
TIL 26일 차)평균 (0) | 2024.12.16 |
TIL 25일 차) 🔥 초보자를 위한 파이썬 141~150문제 (2) | 2024.12.15 |
TIL 24일 차) 🔥 초보자를 위한 파이썬 131~140문제 (2) | 2024.12.14 |