20240705 TIL
조건문
if 조건:
# 조건이 참일 때 실행될 코드
elif 다른조건:
# 다른 조건이 참일 때 실행될 코드
else:
# 위의 조건이 모두 거짓일 때 실행될 코드
▶ 연산자
- 파이썬에서 조건을 판단하기 위해 비교 연산자를 사용
- > : 초과
- < : 미만
- >= : 이상
- <= : 이하
- == : 같음
- != : 같지 않음
- 조건을 결합할 때 사용하는 논리 연산자도 알아두면 유용
- and : 모두 참일 때 참
- or : 하나 이상이 참일 때 참
- not : 조건을 부정
반복문
▶for문
for 변수 in 반복할_데이터:
코드_블록
- 반복할_데이터 : 리스트, 튜플, 문자열 등과 같은 반복 가능한 데이터 타입
- 변수 : 각 반복마다 현재 값을 가지는 변수
▶for문 기본 사용법
range() 함수와 함께 사용하기
- range() 함수는 연속된 정수를 생성하는 데 사용되는 내장 함수
- 이 함수는 시작값(start), 끝값(stop), 그리고 증가값(step)을 인자로 받아 사용
- 이 함수는 주로 반복문에서 사용되며, 특히 for 루프와 함께 자주 사용
range(stop)
range(start, stop)
range(start, stop, step)
- start: 순차적인 정수 시퀀스의 시작 값 / 이 값은 생략 가능하며, 기본값은 0
- stop: 순차적인 정수 시퀀스의 끝 값 / 이 값은 필수적으로 지정 단, 실제로 생성되는 마지막 숫자는 이 값보다 작음
- step: 각 숫자 사이의 간격 / 이 값은 생략 가능하며, 기본값은 1
사례들
사례 1 : range(stop)
# 0부터 시작하여 5 이전까지의 정수 시퀀스 생성
for i in range(5):
print(i, end=' ')
# 출력: 0 1 2 3 4
사례 2 : range(start, stop)
# 2부터 시작하여 7 이전까지의 정수 시퀀스 생성
for i in range(2, 7):
print(i, end=' ')
# 출력: 2 3 4 5 6
사례 3 : range(start, stop, step)
# 1부터 시작하여 10 이전까지 2씩 증가하는 정수 시퀀스 생성
for i in range(1, 10, 2):
print(i, end=' ')
# 출력: 1 3 5 7 9
▶while문
while 조건:
코드_블록
- 조건은 불리언 값(True or False)을 반환하는 표현식
- 조건이 True로 평가될 때까지 코드 블록이 반복적으로 실행
▶ while문의 기본 사용법
무한 루프와 break문
while True:
user_input = input("Type 'quit' to exit: ")
if user_input == 'quit':
break
print("You typed:", user_input)
- 이 코드는 무한 루프를 생성하고 사용자가 'quit'을 입력하면 루프를 종료. 이때 break문이 사용
예시들
- break 예시
break 문은 사용자가 'quit'을 입력할 때 반복문을 종료
# 사용자가 'quit'을 입력할 때까지 반복하여 숫자를 입력받고 합을 출력
total = 0
while True:
num = input("숫자를 입력하세요 (종료하려면 'quit' 입력): ")
if num == 'quit':
break
total += int(num)
print("합:", total)
- pass 예시
pass 문은 아무런 동작을 하지 않고 다음 반복을 계속함. 홀수를 출력하는 반복문에서 짝수일 경우 아무 작업도 하지 않고 다음 반복을 진행
# 홀수를 출력하는 코드에서 짝수일 경우에는 아무 작업도 수행하지 않고 넘어감
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num % 2 == 0:
pass
else:
print(num, "은 홀수입니다.")
- continue 예시
continue 문은 짝수일 경우에만 출력을 수행하고, 홀수일 경우 다음 반복을 진행
# 1부터 10까지의 숫자 중 짝수를 출력
num = 0
while num < 10:
num += 1
if num % 2 == 1:
continue
print(num)
QUIZ
# 1부터 100까지의 정수 중에서 3의 배수일 때 "Fizz", 5의 배수일 때 "Buzz"를 출력하세요 (나머지 경우에는 그냥 숫자를 출력합니다)
for i in range(1, 101):
if i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
- for 반복문을 이용하여 1부터 100까지의 정수 범위를 지정해줌 --range(1,101)
- 조건문을 이용하여 3의 배수일때 나올 답과 5의 배수일 때 나올 답과 그 두 개가 아닌 경우의 답을 설정
- 배수 : 정수 a가 정수 b로 나뉘어질때 딱 떨어진다면 a는 b의 배수
- 그렇기 때문에 조건문을 이용하여 3으로 나눌 때 5로 나눌 때 0으로 떨어지는 배수를 찾을 수 있음
함수
def 함수이름(매개변수1, 매개변수2, ...):
# 함수 내부에서 수행할 작업
return 결과값 # (선택적) 함수의 결과를 반환
▶ 간단한 예시 코드
# 함수 정의
def greet(name):
message = "Hello, " + name + "!"
return message
# 함수 호출
greeting = greet("Alice")
print(greeting) # 출력: Hello, Alice!
- 위의 예시에서는 greet라는 함수를 정의하여 이름을 전달하면 해당 이름과 함께 인사말을 반환하는 간단한 함수를 만들었음
- 함수를 호출하면 반환된 인사말을 출력
▶ 함수 심화 배우기
전역변수 vs 지역변수
전역변수(Gloval Variables) - 프로그램 전체에서 접근 가능한 변수
- 프로그램이 시작될 때 생성, 종료될때까지 메모리에 유지
- 프로그램의 어디서든지 접근 가능 -> 여러 함수에서 공통적으로 사용되는 값을 저장할 때 유용
- 하지만 너무 많은 전역변수를 사용하면 코드의 가독성 ↓ 디버깅 어려워짐
지역변수(Local Variables) - 특정한 범위(예: 함수 내부)에서만 접근 가능한 변수
- 해당 범위에서 생성되고, 범위를 벗어나면 메모리에서 사라짐
- 함수 내에서 정의된 변수는 해당 함수 내에서만 사용 가능
- 함수가 실행될 때 생성되고 함수가 종료되면 메모리에서 제거되므로 메모리 관리에 효율적
예시)
- global_var는 전역변수로, 프로그램 어디서든지 접근 가능
- 반면에 local_var는 함수 local_example() 내에서만 접근 가능한 지역변수
- 함수 내에서는 global 키워드를 사용하여 전역변수를 수정 가능
- 함수 내에서 전역변수를 수정하더라도, 해당 변수는 전역적으로 수정됨
# 전역변수 예시
global_var = 10
def global_example():
print("전역변수 접근:", global_var)
global_example() # 출력: 전역변수 접근: 10
# 지역변수 예시
def local_example():
local_var = 20
print("지역변수 접근:", local_var)
local_example() # 출력: 지역변수 접근: 20
# 함수 내에서 전역변수를 수정하는 예시
def modify_global():
global global_var
global_var = 30
print("함수 내에서 수정된 전역변수:", global_var)
modify_global() # 출력: 함수 내에서 수정된 전역변수: 30
print("수정된 전역변수 확인:", global_var) # 출력: 수정된 전역변수 확인: 30
가변 인수(Variable-length Arguments) 활용하기
- 가변 인수 :여러 개의 인수들을 받을 수 있는 함수를 만들기 위해서는 가변 인수 활용 가능
- *args - 함수를 호출할 때 임의의 개수의 위치 인수를 전달할 수 있도록 함
- **kwargs - 함수를 호출할 때 임의의 개수의 키워드 인수를 전달할 수 있도록 함
예시)
args는 함수를 호출할 때 임의의 개수의 위치 인수를 전달할 수 있도록 함
*kwargs는 함수를 호출할 때 임의의 개수의 키워드 인수를 전달할 수 있도록 함
def sum_values(*args):
total = 0
for num in args:
total += num
return total
result = sum_values(1, 2, 3, 4, 5)
print("합계:", result) # 출력: 합계: 15
위의 함수 sum_values는 임의의 개수의 위치 인수를 받아서 그 합계를 계산
함수 내에서는 args라는 튜플로 위치 인수들을 받아 처리
*kwargs를 사용하여 키워드 인수를 받는 경우도 비슷
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, country="USA")
위의 코드에서 print_info 함수는 임의의 개수의 키워드 인수를 받아서 그 정보를 출력
함수 내에서는 kwargs라는 딕셔너리로 키워드 인수들을 받아 처리
QUIZ
평균과 분산 계산기 - 주어진 데이터셋의 평균을 계산하는 함수를 작성하고 함수의 결과를 출력해 보세요.
def calculate_mean(numbers) :
total = sum(numbers)
mean = total / len(numbers)
return mean
data = [2, 4, 6, 8, 10]
average = calculate_mean(data)
print(average)
- calculate_mean이라는 함수를 정의하여 숫자 리스트 평균을 계산
- 숫자 리스트를 받아 sum()함수를 이용해 총합 구하기 // 리스트의 길이로 나누어 평균 계산하고 그 값을 반환
- 숫자 리스트를 인수로 전달 -- > 평균 계산하고 출력
🛠️느낀 점
확실히 사전캠프때 보다 자세하게 파이썬을 배울 수 있어서 좋았고, 그만큼 이해도 잘 됐다.
어제도 느꼈지만 많은 문법들을 이해하려고 하기보단 코드카타나 지속적인 복습을 통해 계속 익혀나가는 게 좋을 듯
함수는 확실히 심화로 들어가면 좀 더 어려워지는 것 같긴하다 그래도 잘 해내야지 뭐
그래도 조금씩 파이썬에 대한 이해도가 올라가서 그런지 코드를 적고 답이 나오는게 점점 재밌어지고 있다 좋은 징조인듯 🤩
'✨Today I Learned > Python' 카테고리의 다른 글
파이썬 라이브 세션 2일차 퀴즈 (0) | 2024.07.09 |
---|---|
Python CODEKATA 15번, 16번 (0) | 2024.07.08 |
Python : 리스트, 튜플, 딕셔너리 (0) | 2024.07.04 |
Python : 자료형(2) (0) | 2024.07.02 |
Python : 자료형(1) (0) | 2024.07.01 |