데이터분석 study/Python

TIL(Today I Learned) 24.07.05_조건문/반복문

justdata 2024. 7. 5. 17:40

파이썬 문법을 다시 복기하며 예시 코드를 실제로 타이핑하고 실행해보면서 TIL을 작성한다.

 

조건문

- 특정 조건이 True 인 경우에만 특정 코드 블록을 실행하도록 한다.

예시 ) 

x = 10
if x>0:
	print("양수입니다.")
elif x< 0:
	print("음수입니다.")
else:
	print("0입니다.")

 

 - 조건문에서는 들여쓰기 및 띄어쓰기가 매우 중요

  ***파이썬은 들여쓰기를 통해 블록을 식별하기 때문에 들여쓰기가 제대로 이루어지지 않으면 오류 발생

 

 - 조건문 연산자

   - ==  : 같음

   - != : 같지 않음 

   - and : 모두 참일 때 참

   - or  : 하나 이상이 참일 때 참

   - not : 조건을 부정

 

- 조건문은 중첩하여 사용할 수 있다.

x = 10

if x > 5:
    print("x는 5보다 큽니다.")
    if x < 15:
        print("x는 15보다 작습니다.")
    else:
        print("x는 15보다 큽니다.")
else:
    print("x는 5보다 작거나 같습니다.")

 

 - 조건문을 한줄로 간략하게 표현할 수도 있음

x = 10
result = "양의 짝수" if x>0 and x%2 == 0 else "음수 또는 0"
print(result)

 

반복문 - for문

- for문의 기본 구조

for 변수 in 반복할_데이터:

 

-  반복할_데이터는 리스트, 튜플, 문자열 등과 같은 반복 가능한 데이터 타입이 될 수 있다. 

-  변수는 각 반복마다 현재 값을 가지는 변수

 

 - for문_리스트 순회하기

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
	print(fruit)
    
   # "apple", "banana", "cherry"를 순서대로 출력

 

 - for문_문자열 순회하기

for letter in "hello":
	print(letter)
    
  # "h", "e", "l", "l", "o" 를 순서대로 출력

 

 - for문_range() 함수와 함께 사용하기

for i in range(5):
	print(i)
# 0부터 4까지의 숫자를 출력

 

    ▷range 함수

         - 연속된 정수를 생성하는 내장함수

         - 시작값(start) , 끝값(stop), 증가값(step)을 인자로 받아 사용

         - for 루프와 함께 자주 사용

 

          - range(stop) 사례)

           

for i in range(5):
	print(i, end = ' ')

# 0부터 시작하여 5 이전까지의 정수 시퀀스 생성
# 출력 : 0 1 2 3 4

 

 - range(start, stop,step) 사례)

   

for i in range (1, 10, 2):
	print(i, end = ' ')
    
# 1부터 시작하여 10 이전까지 2씩 증가하는 정수 시퀀스 생성
# 출력 : 1 3 5 7 9

 

 - for문_딕셔너리 순회

person = {"name" : "john", "age" : 30, "city" : "New York"}
for key, value in person.items():
	print(key, ":", value)
    
 #  name : john
 #   age  : 30
 #   city : New York  출력!

 

- for 문_리스트에서 특정 값 걸러내기

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = []
for num in numbers:
	if num % 2 == 0:
    	even_numbers.append(num)
print(even_numbers)

#[2,4,6,8,10] 출력

 

 - for문_ 구구단 출력하기(이중 for문 사용)

for i in range(2,10):
	print(f"{i}단:")  #f-string
    for j in range(1,10):
    	print(i, "x", j, "=", i*j)

 

 - 반복문 for문을 사용한 예시(데이터 탐색)

data = [10, 20, 30, 40, 50]
threshold = 25
for d in data:
	if d > threshold:
    	print("Value greater then" , threshold, "found:", d)

 

 - 모델의 성능을 평가할 때 예측값과 실제값을 비교하기 위해 데이터를 반복처리

# 모델 성능 평가 예시
true_values = [1, 0, 1, 0, 1]
predicted_values = [0, 0, 1, 0, 1]
correct_predictions = 0
for true, pred in zip(true_values, predicted_values):
    if true == pred:
        correct_predictions += 1
accuracy = correct_predictions / len(true_values)
print("Accuracy:", accuracy)

 

반복문 - while문

- while문은 특정 조건이 True일 때에만 실행되며 조건이 False가 될 때까지 반복

 - 기본 구조

while 조건:    #for문은 반복할 데이터를 변수 다음에 넣어 줬다면 while은 조건(boolean)!!
    코드_블록

 

 - while문 기본 사용법

i = 1
while i <= 5:
	print(i)
    i += 1
    
# 1부터 5까지 출력하고 반복마다 i를 1씩 증가시킴

 

 - 무한 루프를 짤 때는 반드시 'break'문을 사용해야 한다.

 - 반복문에는 break, pass,continue 와 같이 특정 조건에 따라 반복 동작을 제어할 제어문과 함께 사용

 - break 예시)

total = 0
while True :       # 무한루프를 짤 때 
	num = input("숫자를 입력하세요 (종료하려면 'quit' 입력): ")
    if num == 'quit':
    	break
     total += int(num)
print ("합:" . total)

# 사용자가 'quit'을 입력할 때까지 반복하여 숫자를 입력받고 합을 출력

 

 - pass 예시)

 

numbers = [1, 2, 3, 4, 5]
for num in numbers:
	if num % 2 == 0:
    	pass
    else:
    	print(num, "은 홀수입니다.")
        
 # 홀수를 출력하는 코드에서 짝수일 경우에는 아무 작업도 수행하지 않고 넘어감

 

 - continue 예시 )

num = 0
while num < 10 : 
	num += 1
    if num % 2 ==1:
    	continue
    print(num)
# 1부터 10까지의 숫자 중 짝수를 출력
# continue 문은 짝수일 경우에만 출력을 수행, 홀수일 경우 다음 반복을 진행

 

 - 조건에 따른 특정 동작 반복

num = 5
factorial = 1
while num > 0:
    factorial *= num
    num -= 1
print("Factorial of 5 is:", factorial)

# Factorial of 5 is: 120  출력!