인사말
안녕하세요!
오늘은 아침부터 비가 보슬보슬 내려서 어두컴컴하네요
비 온 뒤, 기온도 떨어지고 급작스런 겨울이 시작될 거 같네요 🥲
모두 감기 조심하시고, 연말이니만큼 파이팅입니다!
오늘도 12시간 동안 공부한 내용을 포스팅해보겠습니다!
12시간이기 때문에 본문 내용이 아주 아주 깁니다!
요약
1. 제어문과 반복문
- 제어문이란?
- 반복문이란?
- 명령문과 반복문의 결합
- 프로그래밍에서의 중요성
2. Python 조건문
- If문 (True일 때)
- else문 (False일 때)
- elif문 (여러 개의 조건을 순차적으로 검사할 때)
- 중첩 구조문(조건문 안에 또 다른 조건문 사용)
3. Python 반복문
- for문 (리스트, 튜플, 문자열을 기반으로)
- while문 (조건문이 참인 동안 반복, 조건식이 거짓이면 종료)
- break문 (반복문 내에서 특정 조건이 만족되면 더 이상 반복할 필요가 없을 때 사용)
- continue문 (현재 반복을 건너뛰고, 다음 반복을 이어감)
- range() 함수 (특정 범위의 숫자 시퀀스를 생성)
- 중첩 반복문 (대표적 예시 : 구구단)
4. 들여 쓰기
5. 함수의 개념
6. 프로그래머스 문제 풀이
1. 제어문과 반복문
1.1 제어문이란?
- 개념 : 프로그램의 실행 흐름을 제어하는 것
- 특징
- 코드의 특정 부분을 조건에 따라 실행하거나, 실행하지 않게 할 수 있음
- 제어문은 프로그램을 더욱 유연하고, 다양한 상황에 대처할 수 있도록 만듦
1.2 반복문이란?
- 개념 : 반복되는 작업을 자동화하는 것
- 예시
- 리스트의 모든 요소를 출력 (age가 30개 이상일 때)
- 1부터 10까지의 합을 구할 때
- 반복문이 없다면, 같은 코드를 여러 번 작성해야 하는 비효율적인 상황이 발생함
- 사용처
- 데이터 처리 : 리스트나 배열의 모든 요소에 대해 동일한 작업을 수행할 때
- 자동화 작업 : 일정한 패턴의 작업을 반복해야 할 때. (100번의 반복 작업을 수행해야 하는 경우)
- 조건에 따른 반복 : 특정 조건이 만족될 때까지 작업을 반복하는 경우 (사용자가 올바른 값을 입력할 때까지 계속 입력을 요구하는 경우)
- 예시
1.3 제어문과 반복문의 결합
- 특징
- 더욱 복잡한 논리 흐름을 만들 수 있음
- 반복문 앞에서 조건문을 사용하여 특정 조건을 만족할 때만 반복을 계속하거나, 반복을 중단할 수 있음
- 더욱 복잡한 논리 흐름을 만들 수 있음
- 사용처
- 조건부 반복 : 특정 조건이 만족될 때까지 반복을 실행
- 반복 중 조건 처리 : 반복 과정 중 조건을 체크하여 특정 작업을 수행하거나, 반복을 중단하는 기능을 추가.
1.4 프로그래밍에서의 중요성
- 유연성 : 제어문과 반복문을 사용하면 프로그램이 다양한 상황에 대처할 수 있음
- 코드 재사용 : 반복문을 통해 동일한 작업을 여러 번 반복할 수 있으므로, 코드의 길이를 줄이고 유지보수를 쉽게 할 수 있음
- 자동화 : 반복문을 활용하여 대량의 데이터 처리나 반복 작업을 자동화할 수 있음
2. Python 조건문
- 개념
- 프로그램에서 주어진 조건에 따라 특정 코드 블록을 실행하거나 건너뛰는 기능을 함
- 조건문을 통해 프로그램은 단순한 순차적 실행을 넘어서 결정을 할 수 있게 됨
2.1 If문
- if 뒤에는 조건이 오고, 조건이 참(True)이면 해당 코드 블록이 실행됨.
if 조건식:
실행할 코드
#If문
age = 20
if age > 19:
print("성인입니다")
#결괏값 = 성인입니다
여기서 포인트가 되는 것은
하나의 코드를 입력 후 들여 쓰기를 해서 Print()를 하게 된다면
해당 코드에 관한 Print()가 됩니다!
들여 쓰기를 유용히 쓰면 될 거 같네요!
- if문 예시
#If문 실습
## 사용자로부터 나이를 입력받아 성인인지 아닌지 판단하는 프로그램
age = int(input("나이를 입력하세요: "))
반드시 Int()를 입력하여야 문자열을 정수로 변환해 주기 때문에 꼭!! 입력하셔야 합니다!
- 실습
#If문 실습
age = 20
if age >= 18:
print("성인입니다")
#결괏값 = 성인입니다
2.2 else문
- 개념 : else문은 if문의 조건이 거짓(False) 일 때 실행되는 코드 블록
- else문 예시
if 조건식 :
실행할 코드 (조건이 참일 때)
else :
실행할 코드 (조건이 거짓일 때)
- 실습
#If + else문 실습
age = 17
if age >= 18:
print("성인입니다")
else:
print("미성년자입니다.")
#결괏값 = 미성년자입니다.
2.3 elif문
- 특징
- 여러 개의 조건을 순차적으로 검사할 때 사용함
- if문 다음에 여러 개의 elif문을 사용하여 각 조건을 순서대로 검사함
- 처음으로 참인 조건이 발견되면 해당 코드 블록이 실행됨
- 주의점
- 큰 값이 위로 올라와야 하며 밑으로 내려갈수록 작은 값이어야 함!
- elif문 예시
if 조건식1:
실행할 코드1
elif 조건식2:
실행할 코드2
elif 조건식3:
실행할 코드3
else:
실행할 코드4 (모든 조건이 거짓일 때)
- 실습
#If + elif + else문 실습
age = 31
if age > 19:
print("성인입니다.")
elif age > 30:
print("확실한 성인입니다.")
else:
print("미성년자입니다.")
#결괏값 = 성인입니다.
age가 31인데 결괏값이 "확실한 성인입니다."가 나오지 않았죠?
왜냐하면
elif문은 순차적으로 검사하기 때문에 그렇습니다.
그렇기 때문에 이렇게 수정해 준다면
#If + elif + else문 실습2
age = 31
if age > 30:
print("확실한 성인입니다.")
elif age > 19:
print("성인입니다.")
else:
print("미성년자입니다.")
#결괏값 = 확실한 성인입니다.
원하는 "확실한 성인입니다"가 도출됩니다!
2.4 중첩 구조문
- 개념 : 조건문 안에 또 다른 조건문을 사용할 경우
- 중첩 구조문 예시
#중첩 구조문
if 조건식1:
if 조건식2:
실행할 코드1
else:
실행할 코드2
else:
실행할 코드3
- 실습
#중첩 구조문1
age = 25
name = "배민경"
if age > 20:
if name == "배민경":
print("그래요, 저예요!")
#결괏값 = 그래요, 저예요!
#중첩 구조문2
age = 25
name = "김민경"
if age > 20:
if name == "배민경":
print("그래요, 저예요!")
else:
print("없어요")
#결괏값 = 없어요
중첩 구조문을 개념으로만 들었을 땐 짜증 났는데
직접 해보니까 재밌네요 😋
- 중첩 구조문 심화 실습
#사용자로부터 나이와 학생 여부를 입력받아 상태를 출력하는 프로그램
age = int(input("나이를 입력하세요: "))
is_student = input("학생입니까? (yes/no): ")
if age >= 18:
if is_student.lower() == "yes";
print("성인이며, 학생입니다.")
else:
print("성인이며, 학생이 아닙니다.")
else:
if is_student.lower() == "yes"
print("미성년자이며, 학생입니다.")
else:
print("미성년자이며, 학생이 아닙니다.")
이 프로그램은 나이와 학생 여부에 따라 다양한 메시지를 출력하고, 소문자로 출력합니다.
- 추가 개념
#and를 써서 똑같은 결괏값 도출하기
age = 25
name = "배민경"
if age > 20 and name == "배민경":
print("그래요, 저예요!")
#결괏값 = 그래요, 저예요!
이렇게 and를 써서도 도출해 낼 수 있다는 것도 배웠습니다!
3. Python 반복문
- 개념 : 프로그램 내에서 동일한 코드 블록을 여러 번 실행할 수 있도록 하는 구조
- 특징
- 코드의 중복을 줄이고, 효율적인 프로그램을 작성할 수 있음
- 가장 기본적인 반복문은 for문과 while문임
3.1 for문
- 개념 : 컬렉션(리스트, 튜플, 문자열)을 순차적으로 순회하여 코드 블록을 실행
#반복문
## for문 (컬렉션 기반)
for 변수 in 컬렉션:
실행할 코드
- for문 예시
#반복문
## for문 (컬렉션 기반)
list_sample = [2,4,6,8,10]
for element in list_sample:
print(element)
#결괏값 = #2 4 6 8 10
## for문 (문자열)
list_sample_2 = "안녕"
for a in list_sample_2:
print(a)
#결괏값 = 안 녕
그리고!
컬렉션 명 이름이 아니라 컬렉션 그 자체가 들어가도 결괏값이 도출됩니다!
또한 결괏값이 각각 낱개로 도출되더라구요
신기했습니다 🤨
- for문 실습
## for문 (제곱 실습)
numbers = [5,6,7]
for number in numbers:
square = number ** 2
print(f"{number}의 제곱은 {square}입니다.")
#결괏값
5의 제곱은 25입니다.
6의 제곱은 36입니다.
7의 제곱은 49입니다.
3.2 while문
- 개념 : 조건식이 참인 동안 반복해서 코드 블록을 실행
- 특징 : 조건식이 거짓이 되면 반복문이 종료됨.
## while문 (조건식이 참일 때 실행, 거짓이면 종료)
while 조건식:
실행할 코드
- while문 예시
## while문 (조건식이 참인 동안 실행됨, 거짓이 되면 종료됨)
age = 15
while age < 20:
print("나이를 먹었습니다")
이 상태에서 실행을 한다면 무한 동력으로 실행된다고 하더라구요
이런 걸 활용할 때는 게임 서버를 운영할 때 쓰이는 구조라는 걸 배웠습니다!
하지만, 저희는 서버를 운영하는 것이 아니라
공부하기 위함이기 때문에 좀 더 붙여주었습니다.
## while문 (조건식이 참인 동안 실행됨, 거짓이 되면 종료됨)
age = 15
while age < 20:
print("나이를 먹었습니다", age)
age = age + 1
#결괏값
나이를 먹었습니다 15
나이를 먹었습니다 16
나이를 먹었습니다 17
나이를 먹었습니다 18
나이를 먹었습니다 19
언젠가 멈추어야 하기 때문에 거짓된 값을 만들어주어야 합니다!
재밌어요!
정말 코드를 자세히 쓸 때마다 결괏값이 달라진다는 게
너무 재밌습니다 😁
- while문 실습
## while문 실습1
age = 15
while age <= 20:
print(age)
age += 1
15
16
17
18
19
20
## while문 실습2
age = 15
while age <= 20:
age += 1
print(age)
16
17
18
19
20
21
결괏값이 이렇게 두 가지로 나오게 되었습니다
이게 참이 되는 조건문이랑
조건문이 거짓이 되는 문장의
위치에 따라 결괏값이 달라지더라구요
이 점을 주의해서 코드를 활용해야겠습니다!
- 다르게 표현해 보기 (list)
## while을 다르게 표현해보기
start_position = 0
while start_position < len(list_sample):
print(list_sample[start_position])
start_position += 1
2
4
6
8
10
3.3 break문
- 개념 : 반복문을 즉시 종료시킴
- 특징 : 반복문 내에서 특정 조건이 만족되면 더 이상 반복할 필요가 없을 때 사용함
- break문 예시
## break문 (반복문 자체를 멈추고 싶을 때)
a = 0
while a < 100:
condition = int(input("10을 입력하면 출력이 안 돼요!"))
if condition == 10:
break
a += 1
10을 입력하면 출력이 안 돼요!1
10을 입력하면 출력이 안 돼요!2
10을 입력하면 출력이 안 돼요!3
10을 입력하면 출력이 안 돼요!10
baeminkyung@baemingyeong-ui-MacBookAir Desktop %
break는 10을 입력하자마자 반복문이 끝나버렸습니다.
아예 반복문을 끝내고 싶을 때 반복문 밑에
break를 써주시면 됩니다!
- for문에서도 사용 가능한 break
### for문에서도 사용 가능한 break
list_sample_3 = [1,2,3,4,5,6]
for i in list_sample_3:
print(i)
if i == 4:
break
1
2
3
4
for문을 써도 적용이 가능하네요!
그냥 반복문 전체에서 사용 가능하기 때문에
여기저기 다 붙여 쓰시면 됩니다!
3.4 continue문
- 개념 : 현재 반복을 건너뛰고, 다음 반복을 이어감
- 특징 : 특정 조건에서 코드 블록의 일부를 실행하지 않고 다음 반복으로 넘어가고 싶을 때 사용
- continue문 예시
## continue문 (특정 조건이 들어와도 다시 반복)
a = 0
while a < 100:
condition = int(input("10을 입력하면 출력이 안 돼요!"))
if condition == 10:
continue
print("hi")
a += 1
10을 입력하면 출력이 안 돼요!10
10을 입력하면 출력이 안 돼요!10
10을 입력하면 출력이 안 돼요!2
hi
10을 입력하면 출력이 안 돼요!9
hi
10을 입력하면 출력이 안 돼요!10
10을 입력하면 출력이 안 돼요!
반면에 continue를 쓰게 되면 계속 반복문이 반복되는 걸 알 수 있습니다
break는 단어 그대로 끝! 내는 거고
continue도 단어 그대로 이어져 가는 거네요! 😉
3.5 range() 함수
- 개념 : 특정 범위의 숫자 시퀀스를 생성함
- 특징
- for문과 함께 자주 사용됨
- 반복 횟수를 지정할 때 유용함
# range() : 특정 범위의 숫자 시퀀스 생성
for i in range(시작, 종료, 단계):
실행할 코드
- 시작 : 시작할 숫자 (기본값 0).
- 종료 : 종료할 숫자 (해당 숫자는 포함되지 않음).
- 단계 : 숫자 간의 간격 (기본값 1).
- range() 예시
# range()_1
for e in range(0,10,2):
print(e)
2
4
6
8
이번 거는 range() 함수 안에 3개의 값 모두 서술한 경우이고,
# range()_2
for e in range(10):
print(e)
0
1
2
3
4
5
6
7
8
9
이번 거는 range() 함수에 한 가지 값만 넣었더니
0부터 9까지 출력되었습니다!
한 가지 값만 넣으면 그 값이 "종료"값이 되네요! 😮
- 몇 번째의 값인지 확인해 보는 코드
# range()_3
for e in range(len(list_sample_3)):
print(list_sample_3[e])
print(e,"번째")
1
0 번째
2
1 번째
3
2 번째
4
3 번째
5
4 번째
6
5 번째
list_sample_3에는 총 6개의 값이 들어가 있었음을 알 수 있네요!
재밌습니다 🤗
좀 더 보기 좋게 출력하려면
# range()_4
for e, f in enumerate(list_sample_3):
print(e,f)
0 1
1 2
2 3
3 4
4 5
5 6
enumerate()를 써주시면 더 가독성이 좋아지게 도출됩니다!
3.6 중첩 반복문
- 개념 : 반복분 안에 또 다른 반복문을 사용하는 것(=Nested Loop)
- 특징
- 2차원 데이터 (예 : 행렬)를 처리할 때 씀
- 복잡한 반복 작업을 수행할 때 유용함
# 중첩 반복문
for i in range(첫 번째 범위):
for j in range(두 번째 범위):
실행할 코드
- 중첩 반복문 예시 (구구단)
# 중첩 반복문 (구구단)
for i in range(2,3):
print(f"{i}단:")
for j in range(1,10):
print(f"{i} x {j} = {i*j}")
print()
2단:
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
오늘 한 것 중에 제일 재밌었던
결괏값이었습니다 🤣
4. 들여 쓰기
- 개념 : 코드의 각 줄을 왼쪽에서 오른쪽으로 일정한 간격만큼 일어내는 것
- 특징
- Python에서 들여 쓰기는 필수적
- Python은 들여 쓰기를 통해 코드 블록의 시작과 끝을 구분함
- 들여 쓰기가 잘못되면, Python 인터프리터가 코드의 구조를 이해하지 못하여 오류를 발생시킴
- 조건문, 반복문, 함수 등의 모든 구조적 코드에서 필수적으로 사용됨
- 들여쓰기가 오류가 생기면 indentationError라고 뜸
- 규칙
- 일관된 들여쓰기
- 공백 4칸이 표준
- 탭과 공백(띄어쓰기)의 혼용 금지
- 들여쓰기 예시
#들여쓰기 예시
if True:
print("이 코드는 실행됩니다.")
#결괏값 = 이 코드는 실행됩니다.
<조건문과 들여 쓰기>
# if문과 else문, elif문도 마찬가지
if 조건식:
실행할 코드 # 조건이 참일 때 실행
else:
실행할 코드 # 조건이 거짓일 때 실행
<반복문과 들여 쓰기>
# for문과 while문
for 변수 in 컬렉션:
실행할 코드 # 반복할 코드 블록
while 조건식:
실행할 코드 # 조건이 참인 동안 반복될 코드 블록
<함수 정의와 들여 쓰기>
# def 함수이름(매개변수)
def 함수이름(매개변수):
실행할 코드 # 함수 본문
5. 함수의 개념
- 개념 : 특정 작업을 수행하는 코드 블록을 정의하는 프로그래밍 구성 요소
- 특징
- 함수는 각기 이름을 가지고 있고, 필요할 때마다 그 이름을 호출하여 코드 실행
- 함수는 입력값(매개변수)을 받아 처리하고, 결괏값을 반환할 수 있음
- 함수의 사용처
- 반복되는 코드의 재사용
- 코드의 모듈화
- 이때 모듈화란?
- 프로그램을 여러 개의 작은 함수로 분할하여, 각 함수가 하나의 특정한 작업만 수행하도록 하는 것
- 이때 모듈화란?
- 복잡한 작업의 분할
- 장점
- 코드 재사용성
- 가독성
- 유지보수 용이성
- 테스트 및 디버깅 용이성
- 주의점
- 함수는 단일 작업을 수행하도록 설계해야 함
- 매개변수 수를 적절히 유지
- 함수 이름은 기능을 명확히 표현
- 부작용을 최소화
6. 프로그래머스 문제 풀이
처음에 못 풀었습니다 🙉
3번째 줄에서 멈추었는데요
\n을 입력하면 Enter 역할을 한다는 걸 배워서
3번째 줄에 \n을 입력하여 문제를 해결하였습니다 🙈
두 번째 문제는 무난히 풀었구요
마지막 문제 내용입니다
단순하게 생각해서 이렇게 입력하였더니
틀렸다고 해서
input()의 의미가 사용자가 입력하는 값을 넣겠다는 거니까
설마..? 하고
그냥 print(str) 입력하니까
정답이라고 떠서 해결하였습니다 👍🏻
마무리
오늘 정말 많이 공부한 거 같아요!!
정말 기네요! 😹
확실히 프로그래머에서 문제를 풀어봤기 때문에
저의 부족한 점과 이해 정도를 알게 됐어요!
프로그래머 해보라고 팀원분이 알려주셨는데
해보길 정말 잘했어요 🥰
개념을 공부한 것도 좋지만
문제를 먼저 켜보고 해결해 내는 게
저랑 맞는 공부법인 거 같아요!
덕분에 튜더 님이랑 다른 팀원분들과 소통을 많이 할 수 있어서
좋았습니다 🥰
내일도 문제 많이 풀어서 가져오겠습니다!
감사합니다~!
감기 조심하세요!
'내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 본캠프 6일차_Python 라이브러리로 데이터 분석하기 (9) | 2024.12.02 |
---|---|
내일배움캠프 본캠프 5일차_ 프로그래머스 3문제 풀이와 과제 진행 (1) | 2024.11.29 |
내일배움캠프 본캠프 4일차_ 딕셔너리 문제 풀이 (2) | 2024.11.28 |
내일배움캠프 본캠프 3일차_ Python 문제 풀이 (1) | 2024.11.27 |
내일배움캠프 본캠프 1일차_ Python 기본 개념 정리 (0) | 2024.11.25 |