[내일배움캠프] Python 실전 예제

셔닝🧸·2025년 6월 4일
0

오늘의 학습

  1. 리스트 컴프리헨션 단계별 실전 예제

  • 리스트, 딕셔너리는 for 반복문을 주로 사용

[제곱근 출력]

✅ 예제1. 3 ** 2 는 9 입니다. 를 출력하기 위해서는?

1️⃣ 3이랑 2 값을 넣어서 출력할 경우

print('3**2 는 9 입니다.') 

2️⃣ 3이랑 2를 값에서 변수로 변경할 경우 (format string 사용)

x=3
y=2

print(f"{x} ** {y}는 9 입니다")

3️⃣ 9도 변수로 바꿀 경우

x=3
y=2
result=x**y

print(f"{x} ** {y}는 {result} 입니다") 

✅ 예제2. 숫자 하나를 제곱하는 연산을 실행해 보세요.
⭐️ 변수 num, result만 사용

num = 4
result = num**2

print(result)

✅ 예제3. 1부터 5까지 숫자의 제곱값을 구하여 출력해 보세요. (for문 사용)
⭐️ squares = [], for in range 사용

squares = [] 
for i in range(1,6): 
		squares.append(i**2) 
		
print(squares)

🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻

❓ 리스트 컴프리헨션: 파이썬에서 리스트를 가독성 좋게 생성하는 방법 중 하나

📍 리스트 컴프리헨션 기본 구조
[표현식 for 항목 in iterable if 조건문] ⭐️ 조건 없으면 if문 안 써도 됨

squares = [square**2 for i in range(1,6)]

print(squares)

[리스트 컴프리헨션 구조 분석]
square2 ➖ 표현식
squares = [] ➖ 제곱값을 넣기 위한 리스트 설정
for i in range(1,6) ➖ 1부터 5까지 꺼내서 i에 반복 입력
range(1,6) ➖ 반복가능객체
i ➖ (꺼내온 값을 가져올) 항목

✅ 예제4. 제곱 연산을 수행하는 부분을 함수로 분리해 보세요.
⭐️ def square(n): 함수 사용

squares = []

def square(n):
		return n**2
		
for i in range(1,6):
		squares.append(square(i))
		
print(squares)

🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻

squares = [square(i) for i in range(1,6)]

print(squares)

✅ 예제5. 1부터 5까지 숫자 중 짝수만 골라 제곱하여 출력해 보세요.
⭐️ i % 2 == 0 사용

squares = []

for i in range(1,6):
		if i % 2 == 0:
		    squares.append(i**2)
		
print(squares)

🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻

squares = [square (i) for i in range(1,6) if i%2==0]

print(squares)

[화씨를 섭씨로 변환]

✅ 예제1. 화씨 212를 섭씨로 변환하여 출력해보세요.
⭐️ 변수 fahrenheit(화씨), celsius(섭씨) 사용
⭐️ 공식: 섭씨 = (화씨 - 32) * 5/9

fahrenheit = 212
celsius = (fahrenheit -32)*5/9

print(celsius)

✅ 예제2. 리스트 전체를 for문으로 순회하며 섭씨로 변환해보세요.
⭐️ 변수 ahrenheit_temps, celsius_temps

fahrenheit_temps = [32, 68, 100, 212, 50]
celsius_temps = []

for fahrenheit in fahrenheit_temps:
		celsius_temps.append((fahrenheit -32)*5/9)
		
print(celsius_temps)

🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻

fahrenheit_temps = [32, 68, 100, 212, 50]

celsius_temps = [(fahrenheit -32)*5/9 for fahrenheit in fahrenheit_temps]

print(celsius_temps)

🔻🔻🔻 사용자 지정 함수 추가 🔻🔻🔻

fahrenheit_temps = [32, 68, 100, 212, 50]
celsius_temps = []

def fahrenheit_to_celsius(f):
		return (f -32)*5/9
		
for f in fahrenheit_temps:
		celsius_temps.append(fahrenheit_to_celsius(f))
		
print(celsius_temps)

[리스트 내 딕셔너리 값 출력]

[주어진 리스트]

quality_data = [
    {'product_id': 'P001', 'defect_rate': 2.3, 'grade': 'A'},
    {'product_id': 'P002', 'defect_rate': 6.1, 'grade': 'C'},
    {'product_id': 'P003', 'defect_rate': 1.8, 'grade': 'A'},
    {'product_id': 'P004', 'defect_rate': 4.5, 'grade': 'B'},
    {'product_id': 'P005', 'defect_rate': 7.2, 'grade': 'C'},
]

✅ 예제1. 딕셔너리 하나에서 제품 ID : P001인 키 값 출력
⭐️ 변수 product_id

sample = {'product_id': 'P001', 'defect_rate': 2.3, 'grade': 'A'}

print(sample['product_id'])
print(f"제품 ID :{sample['product_id']}")

✅ 예제2. 리스트 안의 모든 제품 ID 출력 (for 문 사용)
⭐️ 변수 product_ids

product_ids = []

for data in quality_data:
		product_ids.append(data['product_id'])

print(product_ids)

🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻

product_ids = [data['product_id'] for data in quality_data]

print(product_ids)

✅ 예제3. 불량률 5% 이상인 제품 ID : 불량률(defect_rate)이 5.0 이상인 제품 출력
⭐️ 변수 grade_a_defects

high_defect_ids = []

for data in quality_data:
		if data['defect_rate'] >= 5:
				high_defect_ids.append(data['product_id'])
				
print(high_defect_ids)

🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻

high_defect_ids = [data['product_id'] for data in quality_data if data['defect_rate'] >= 5.0]
				
print(high_defect_ids)

✅ 예제4. C등급이면서 불량률 5% 이상인 제품 : grade가 'C'이고, defect_rate가 5.0 이상인 제품 ID 출력
⭐️ 변수 c_high_defect_ids

c_high_defect_ids = []

for data in quality_data:
		if data['grade'] == 'C' and data['defect_rate'] >= 5.0:
				c_high_defect_ids.append(data['product_id'])
				
print(c_high_defect_ids)

🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻

c_high_defect_ids = [data['product_id'] for data in quality_data if data['grade'] == 'C' and data['defect_rate'] >= 5.0]

print(c_high_defect_ids)
profile
어떻게든 하겠숴여...❕

0개의 댓글