🟡 Python 2차 강의 🟡
✅ 조건문
🔰 if
- 가장 기본적인 조건문. 조건이 참일 경우에만 코드 블록을 실행
- 조건식은 반드시 불리언 값으로 평가될 수 있는 식 (True/False)
- 파이썬에서는 0, None, “”(빈 문자열), [](빈 리스트), {}(빈 딕셔너리) 등도 False
if 조건식:
# 조건식이 True일 때 실행할 코드
Ex)
age = 20
if age >= 18: # age가 18 이상이면 조건은 True
print("성인입니다.")
*>>>
출력: 성인입니다.*
🔰 if - else
조건이 참일 때와 거짓일 때 각각 다른 코드를 실행하고 싶을 때 사용
if 조건식:
# 조건이 True일 때 실행되는 코드
else:
# 조건이 False일 때 실행되는 코드
Ex)
age = 16
if age >= 18:
print("성인입니다.")
else:
print("미성년자입니다.")
*>>>
미성년자입니다.*
🔰 if - elif - else
여러 조건을 순차적으로 검사 해야할 경우, if 뒤에 elif (else if) 문을 하나 이상 사용할 수 있음
elif 문은 이전 조건들이 모두 False 일 때 자신의 조건을 검사
마지막으로 모든 조건이 거짓이라면 else 실행
if 조건식1:
# 조건1이 True일 때 실행할 코드
elif 조건식2:
# 조건1은 False이고, 조건2가 True일 때 실행할 코드
elif 조건식3:
# 조건1,2 모두 False이고 조건3이 True일 때 실행할 코드
else:
# 위의 모든 조건이 False일 때 실행할 코드
Ex)
score = 85
if score >= 90:
print("A 학점")
elif score >= 80:
print("B 학점")
elif score >= 70:
print("C 학점")
else:
print("D 학점")
*>>>
B 학점*
🔰 연산자
▶ 논리 연산자
- and : 모든 조건이 True일 때만 True
- or : 하나라도 조건이 True이면 True
- not : 조건의 결과를 반전(True ↔ False)
▶ 비교 연산자
- == : x와 y가 같으면 True
- ≠ : x와 y가 다르면 True
Ex) 짝수/홀수 판별
num = int(input("숫자를 입력하세요: "))
if num % 2 == 0:
print("짝수입니다.")
else:
print("홀수입니다.")
*>>>
숫자를 입력하세요: 9
홀수입니다.*
Ex) 로그인 검증
correct_id = "admin"
correct_pw = "1234"
user_id = input("아이디를 입력하세요: ")
user_pw = input("비밀번호를 입력하세요: ")
if user_id == correct_id and user_pw == correct_pw:
print("로그인 성공!")
elif user_id == correct_id and user_pw != correct_pw:
print("비밀번호가 틀렸습니다.")
else:
print("존재하지 않는 계정입니다.")
*>>>
아이디를 입력하세요: csa1215
비밀번호를 입력하세요: 1234
존재하지 않는 계정입니다.*
🔰
- pass 구문
x = 10
if x > 0:
pass # 조건이 True지만 아무 동작도 하지 않음
else:
print("0 이하입니다.")
- in / not in 연산자
fruits = ["apple", "banana", "cherry"]
if "apple" in fruits:
print("사과가 있습니다.") # 출력됨
if "orange" not in fruits:
print("오렌지가 없습니다.") # 출력됨
- 삼항 연산자 (조건부 표현식)
한 줄로 간단한 조건문을 표현할 수 있는 조건부 표현식(ternary operator)를 지원
참일때값 if 조건식 else 거짓일때값
Ex)
score = 75
result = "합격" if score >= 60 else "불합격"
print(result)
>>>
합격
✅ 반복문
🔰 for
주어진 범위나 반복 가능한(iterable) 객체의 요소를 순회하면서 실행
리스트, 튜플, 문자열, 범위(range) 객체 등과 함께 자주 사용
1) 기본 구조
for 변수 in 반복가능한객체:
수행할 코드 블록
Ex) 리스트 순회
numbers = [1, 2, 3, 4, 5]
for i in numbers:
print(i)
>>>
1
2
3
4
5
2) range() 함수와 함께 사용
- 특정 범위의 정수 시퀀스를 생성하는 함수
- 예를 들어 range(5)는 0부터 4까지의 정수를 만듦
- range(start, end, step) 형태로 시작값, 끝값(끝값은 포함하지 않음), 증가 폭을 지정할 수 있으며 음수 step도 가능
Ex)
for i in range(5):
print("현재 i의 값:", i)
>>>
현재 i의 값: 0
현재 i의 값: 1
현재 i의 값: 2
현재 i의 값: 3
현재 i의 값: 4
for i in range(10, 0, -2): # 10부터 1까지 짝수만
print(i)
>>>>
10
8
6
4
2
3) 문자열 순회
text = "Python"
for i in text:
print(i)
*>>>>
P
y
t
h
o
n*
🔰 while
조건식이 참(True)인 동안 해당 코드 블록을 반복
조건이 참이면 while 블록 안의 코드들이 실행되고, 실행 완료 후 다시 조건을 평가
조건이 처음부터 False라면 반복문은 한 번도 실행되지 않음
while 조건:
수행할 코드 블록
Ex) 1~5 출력하기
count = 1
while count <= 5:
print(count)
count += 1 # count를 1 증가시켜 조건 eventually False가 되도록 함
>>>
1
2
3
4
5
🔰 break, continue
- break
- 현재 반복문을 즉시 종료.
- 반복 조건이 아직 참이더라도, break를 만나는 순간 반복문을 빠져나옴
- continue
- 현재 반복 순회를 건너뛰고 다음 반복으로 넘어감
- 즉, 특정 조건일 때는 아래 코드를 실행하지 않고, 다시 반복문의 처음(조건 검사 단계)으로 이동
Ex) break 예시 - 1부터 10까지 숫자를 출력하되, 숫자가 5에 도달하면 반복을 종료
for i in range(1, 11):
if i == 5:
break
print(i)
>>>
1
2
3
4
Ex) continue 예시 - 1부터 10까지 숫자를 출력하되, 5는 건너뛰고 싶다
for i in range(1, 11):
if i == 5:
continue
print(i)
>>>
1
2
3
4
6
7
8
9
10
🔰
- 중첩 반복문
2차원 리스트(리스트의 리스트)나 행과 열을 처리해야 하는 경우 유용
Ex) 구구단 출력
for dan in range(2, 10): # 2단부터 9단까지
for num in range(1, 10): # 각 단에서 1부터 9까지 곱하기
print(f"{dan} x {num} = {dan * num}")
print() # 각 단이 끝나면 한 줄 공백
*>>>
2 x 1 = 2
2 x 2 = 4
...
2 x 9 = 18
3 x 1 = 3
3 x 2 = 6
...
9 x 9 = 81*
- enumerate()
인덱스와 값을 동시에 얻을 수 있음
fruits = "apple"
for idx, fruit_char in enumerate(fruits):
print(f"{idx}: {fruit_char}")
*>>>
0: a
1: p
2: p
3: l
4: e*
- zip()
여러 리스트를 병렬로 순회
fruits = ["apple", "banana", "cherry"]
prices = [1000, 2000, 3000]
for fruit, price in zip(fruits, prices):
print(f"{fruit}: {price}원")
*>>>
apple: 1000원
banana: 2000원
cherry: 3000원*
- 반복문을 활용한 실용적 예시
Ex ) 합계 구하기
numbers = [10, 20, 30, 40, 50]
total = 0
for num in numbers:
total += num # total = total + num
print("리스트 내 숫자들의 합:", total)
*>>>
리스트 내 숫자들의 합: 150*
Ex) 특정 패턴 출력하기
# 사용자로부터 줄 수를 입력 받아 해당 줄만큼의 별을 출력
height = 5
for i in range(1, height+1):
print("*" * i)
>>>
*
**
***
****
*****
🔰 과제
실습 01
1)

age = int(input("나이를 입력하세요 : "))
rules = {'유아':0, '청소년':8000, '성인':12000, '시니어':6000}
rules_list = list(rules.items())
if 0 <= age <= 6:
print(f"{rules_list[0][0]}입니다. 요금은 {rules_list[0][1]}원 입니다.")
elif 7 <= age <= 18:
print(f"{rules_list[1][0]}입니다. 요금은 {rules_list[1][1]}원 입니다.")
elif 19 <= age <= 64:
print(f"{rules_list[2][0]}입니다. 요금은 {rules_list[2][1]}원 입니다.")
elif 65<= age < 150:
print(f"{rules_list[3][0]}입니다. 요금은 {rules_list[3][1]}원 입니다.")
else:
print("잘못된 나이입니다.")
2)

user_height = list(input("키를 입력하세요 : "))
kg = int(input("몸무게를 입력하세요 : "))
user_height.insert(1,'.')
height = float(''.join(user_height))
bmi = kg / (height**2)
print(bmi)
if height or kg > 0:
if 0 <= bmi <= 18.5:
print("저체중입니다.")
elif 18.5 < bmi <= 23:
print("정상입니다.")
elif 23 < bmi <= 25:
print("과체중입니다.")
else:
print("저체중입니다.")
else:
print("잘못된 입력입니다.")
3)

a = int(input("삼각형 변의 길이 1개를 입력하세요 : "))
b = int(input("삼각형 변의 길이 1개를 입력하세요 : "))
c = int(input("삼각형 변의 길이 1개를 입력하세요 : "))
if a < 0 or b < 0 or c < 0 or not a+b>c or not a+c>b or not b+c>a:
print("삼각형이 아닙니다.")
else:
if a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
print("직각삼각형")
elif a == b == c:
print("정삼각형")
elif a == b or a == c or b == c:
print("이등변삼각형")
else:
print("일반삼각형")
실습 02
1)

# 내코드
user = int(input("정수를 입력하세요 : "))
mylist = []
for i in range(1, user+1):
if user % i == 0:
mylist.append(i)
print(i)
print(mylist)
new = " ".join(map(str, mylist))
print(f"{user}의 약수 : {new}")
# 답코드
user = int(input("정수를 입력하세요 : "))
print(f"{user}의 약수 : end=' '")
for i in range(1, user+1):
if user % i == 0:
print(i, end=' ')
2)

user = list(map(str, input("문자열을 입력하세요 : ")))
print(user)
mylist = []
for i in range(len(user)-1, -1, -1):
mylist.append(user[i])
print(''.join(mylist))
3)

# 내코드
# 그냥 랜덤 숫자를 정답으로 하게끔 작성함
import random
user_num = int(input("정수를 입력하세요 (1~10) : "))
mylist = []
for i in range(1,11):
mylist.append(i)
answer_num = random.choice(mylist)
while user_num != answer_num:
if user_num != answer_num:
print("틀렸습니다. 다시 입력하세요.")
else:
break
user_num = int(input("정수를 입력하세요 (1~10) : "))
print("정답입니다!")
# 답코드
target = 7
while True:
guess = int(input("정수를 입력하세요 (1~10) : "))
if guess == target:
print("정답입니다!")
break
else:
print("틀렸습니다. 다시 입력하세요.")
미니과제
#####################################################################################
### 미니과제 조건문 5문제 ###
'''
# 01
num = int(input("입력 : "))
if num % 3 == 0 and num % 7 == 0:
print("3과 7의 공배수입니다.")
elif num % 3 == 0 and num % 7 != 0:
print("3의 배수입니다.")
elif num % 3 != 0 and num % 7 == 0:
print("7의 배수입니다.")
else:
print("3과 7의 배수가 아닙니다.")
# 02
user = input("입력 : ")
if user.isalpha() == True and len(user) >= 8:
print("사용 가능한 비밀번호입니다.")
else:
print("사용 불가능한 비밀번호입니다.")
# 03
num = int(input("입력 : "))
if num % 4 == 0 and num % 100 != 0 or num % 400 == 0:
print("윤년입니다.")
else:
print("윤년이 아닙니다.")
# 04
a, b = map(int, input("입력 : ").split(' '))
print(f"a = {a}, b = {b}")
if a != 0 and b != 0:
if a/b > 1:
print("a가 b보다 큽니다.")
elif a/b == 1:
print("두 수는 같습니다.")
else:
print("a가 b보다 작습니다.")
else:
print("0으로 나눌 수 없습니다.")
#05
user = input("입력 : ")
if user.isalpha() == True:
if user.islower() == True:
print("전부 소문자")
elif user.isupper() == True:
print("전부 대문자")
else:
print("대소문자 섞여 있음")
else:
print("알파벳 이외의 문자가 있습니다.")
'''
#####################################################################################
### 미니과제 반복문 9문제 ###
'''
# 01
num = int(input("입력 : "))
for i in range(1,num+1):
print(i)
# 02
num = int(input("입력 : "))
for i in range(num, 0, -1):
print(i)
# 03
for i in range(1,100):
if i % 3 == 0:
print(i)
# 04
num = int(input("입력 : "))
for i in range (1,num+1):
if num % i == 0:
print(i)
# 05
num = int(input("입력 : "))
cnt = 0
while num != 0:
cnt = cnt + num
num = int(input("입력 : "))
print(f"합계 : {cnt}")
# 06
num = int(input("입력 : "))
for i in range(1,num+1):
print(f"{str(i)*i}")
# 07
import random
mylist = []
for i in range(1, 101):
mylist.append(i)
picknum = random.choice(mylist)
print(picknum)
user_num = int(input("입력 : "))
while user_num != picknum:
if user_num > picknum:
print("너무 큽니다.")
else:
print("너무 작습니다.")
user_num = int(input("입력 : "))
print("정답입니다!")
# 08
for i in range(2,10):
for j in range(1,10):
print(f"{i} x {j} = {i*j}")
# 09
userlist = list(map(int, input("입력 : ")))
print(userlist)
count = 0
sumnum = 0
for i in range(0, len(userlist)):
sumnum += userlist[i]
count += 1
print("합계 : ", sumnum)
'''
#####################################################################################
### 미니과제 도전과제 2문제 ###
'Sparta > Theory' 카테고리의 다른 글
| [250822] 스파르타코딩 본캠프 14일차 (1) - Python 04 - dict, def (3) | 2025.08.22 |
|---|---|
| [250821] 스파르타코딩 본캠프 13일차 (1) - Python 03 - list (2) | 2025.08.21 |
| [250819] 스파르타코딩 본캠프 11일차 (1) - Python 01 - input, str (3) | 2025.08.19 |
| [250818] 스파르타코딩 본캠프 10일차 (1) - window function, with (1) | 2025.08.18 |
| [250814] 스파르타코딩 본캠프 9일차 (1) - union, join (5) | 2025.08.14 |