
4/3 오후 수업은 제어문을 배워보는 시간을 가지게 되었습니다.
아무래도 C언어를 해본 경험이 있어서 아예 처음 프로그래밍을 배우는 사람보다 쉽다고 느낀 것 같습니다.
if는 C언어에서도 쓰이는 조건문으로 "만약 A가 B라면 X해줘"라는 형태로
True, False로 결과가 나와야 제대로 된 답변을 들을 수 있습니다.
참, 거짓으로 딱 떨어지게 결과를 받으려면 부등식이 확실하기에 연산자를 사용합니다.
이를 비교 연산자라고 하며 종류는 다음과 같습니다.
a = 1
b = 10
print(a > b) # a는 b보다 크다.
print(a < b) # a는 b보다 작다.
print(a == b) # a는 b와 같다.
print(a != b) # a는 b와 같지 않다.
print(a >= b) # a는 b보다 크거나 같다.
print(a <= b) # a는 b보다 작거나 같다.
False
True
False
True
False
True
if문은 조건이 참, 거짓으로 판단할 수 있는 문장을 만드는 것이 가장 중요합니다.
num = 5
if num <= 5: #문장이 끝날때 ":" 잊지 말기!
print("숫자가 5보다 작거나 같습니다.") #if 조건문이 True라면 처리해야 할 명령
elif 5 < num <= 10:
print("숫자가 10보다 작거나 같습니다.") #elif 조건문이 True라면 처리해야 할 명령
else:
print("숫자가 10보다 큽니다.") #위의 조건문이 전부 False라면 처리해야 할 명령
숫자가 5보다 작거나 같습니다.
if문을 배운 후에 제가 가장 많이 실수한 것은 ":"를 붙이는 것입니다. 추가로 if조건문이 참일 때 처리해야 하는 명령문을 들여쓰지 않는다면 오류가 발생합니다.
if True:
print("if문을 쓸 때")
print("들여쓰기를 ")
print("유의하자") #if 이후 명령문의 들여쓰기가 같은 위치에 있어야 한다.
File "", line 4
print("유의하자")
^
IndentationError: unexpected indent
아래의 예시는 print("if문을 쓸 때")에서 if문이 종료되고 print("들여쓰기를 ")에서는 새로운 명령을 처리하는 것으로 인식한 것입니다. 이후 print("유의하자")는 if문이 없음에도 들여쓰기가 되어있어 인식하지 못하는 것입니다.
if True:
print("if문을 쓸 때")
print("들여쓰기를 ") #if 이후 명령문의 들여쓰기가 같은 위치에 있어야 한다.
print("유의하자")
File "", line 4
print("유의하자")
^
IndentationError: unexpected indent
while은 조건을 만족하면 아래의 명령을 수행하는 반복문으로 간단한 명령으로 무한 반복시킬수 있다는 것이 특징입니다.
while True:
print("무한반복")
무한반복
무한반복
무한반복
무한반복
.
.
위와 같이 while 옆에 조건이 참이라면 해당 명령문을 무한 반복 시킬수 있습니다.
반복문의 경우 if와 조합하여 사용하는데 명령을 수행하는 도중 강제로 처음으로 돌리는 명령어 continue와 반복을 막는 명령어인 break가 있습니다.
i = 0
while True:
i += 1
if i<= 3: continue
if i== 4:
print(f"{i}입니다.")
break
4입니다.
이후에 나오는 for문에도 continue와 break는 사용할 수 있습니다.
for문은 while와 가장 큰 차이는 범위를 미리 정해서 시작하는 문장이 필수라는 것입니다.
for i in range(2, 11, 2): # for이후 변수를 설정, in 뒤에 list를 붙여 범위를 설정한다.
print(i)
2
4
6
8
10
아래는 수업 중 풀은 문제 중 하나입니다.
# 1부터 100까지의 정수 중에서 3의 배수이면서 5의 배수인 정수의 합을 구하는 코드를 작성하세요.
sum = 0
for i in range(1, 101): # 1~100까지 정수
if (i % 3 == 0) & (i % 5 == 0): # 3의 배수 "이면서(&)" 5의 배수
sum +=i # sum에 해당 숫자 더하기
print(f"15의 배수 : {i}")
print(f'정답 : {sum}')
15의 배수 : 15
15의 배수 : 30
15의 배수 : 45
15의 배수 : 60
15의 배수 : 75
15의 배수 : 90
정답 : 315
특별히 호출하지 않아도 사용할 수 있는 함수로 대표적인 함수는 upper, lower등이 있습니다.
a = 'PythoN 4/3~'
b = a.upper() # 문자를 대문자로 바꾸기
c = a.lower() # 문자를 소문자로 바꾸기
print(a,b,c)
PythoN 4/3~ PYTHON 4/3~ python 4/3~
평소 python에는 없는 함수로 호출하는 방식으로 해당 함수를 사용할 수 있게 됩니다.
time.localtime(time.time()) # 서버시간 호출
NameError Traceback (most recent call last)
in <cell line: 1>()
----> 1 time.localtime(time.time())
NameError: name 'time' is not defined
위의 함수는 time함수로 시간을 표기할 때 사용하는 함수입니다. 평소 python에는 없는 함수로 'import'를 사용해 함수를 호출하여 사용할 수 있습니다.
import time # time 함수 호출
time.localtime(time.time()) # 서버시간 호출
time.struct_time(tm_year=2024, tm_mon=4, tm_mday=3, tm_hour=7, tm_min=14, tm_sec=11, tm_wday=2, tm_yday=94, tm_isdst=0)
내장, 외장 함수에 없고 계속 반복해서 사용할 문장들을 하나의 함수로 묶어서 사용할 수 있습니다.
def my_name(name, age): # def 이후 함수의 이름(my_name)과 변수(name, age) 설정
print(f"제 이름은 {name}, 나이는 {age} 입니다. ") # 해당 함수로 처리할 문장
return name, age # 함수가 종료될 때 나오는 결과
output = my_name("재성", 30)
print(output)
제 이름은 재성, 나이는 30 입니다. # 함수로 처리한 내용
('재성', 30) # 함수의 결과