문제1
주어진 숫자 리스트의 평균을 계산하는 함수를 작성하세요.
풀이1
numbers = [10, 20, 30, 40, 50]
def calculate_avg(numbers):
total_avg = sum(numbers)/len(numbers)
return total_avg
print("숫자들의 평균:", total_avg)
내장함수 sum과 len을 사용해 numbers의 전체 합에 numbers의 갯수를 나눠준다.
풀이2
def calculate_avg(numbers):
total_sum = 0
count = 0
for num in numbers:
total_sum += num
count += 1
total_avg = total_sum / count
return total_avg
# 예시 데이터
numbers = [10, 20, 30, 40, 50]
total_avg = calculate_avg(numbers)
print("숫자들의 평균:", total_avg)
문제2
하루 동안 기록된 기온 목록을 받아, 가장 낮은 기온과 가장 높은 기온을 활용하여 일교차 함수를 작성하세요.
풀이1
numbers = [10, 20, 30, 40, 50]
def calculate_diff_temperature(numbers):
diff_temp = max(numbers) - min(numbers)
return diff_temp
print("일교차:", diff_temp)
내장함수 최댓값 max와 최솟값min을 사용해 가장 큰 값과 작은 값을 빼준다.
풀이2
def calculate_diff_temperature(numbers):
max_temp = numbers[0]
min_temp = numbers[0]
for num in numbers:
if num > max_temp:
max_temp = num
if num < min_temp:
min_temp = num
diff_temp = max_temp - min_temp
return diff_temp
# 예시 데이터
numbers = [10, 20, 30, 40, 50]
diff_temp = calculate_diff_temperature(numbers)
print("일교차:", diff_temp)
문제3
제품 명과 판매 수량이 담긴 목록을 받아, 가장 많이 판매된 제품의 이름과 수량을 반환하는 함수를 작성하세요.
풀이1
def find_top_seller(sales_data):
sd = 0
top_product = ""
for i, ii in sales_data.items():
if ii > sd:
sd = ii
top_product = i
return top_product
sales_data = {"apple": 50, "orange": 2, "banana" : 30}
print(find_top_seller(sales_data)) # 출력: 'apple'
1. 변수 sd = 0으로 설정
2. 변수 top_product = "" 문자열 설정
3. 딕셔너리인 sales_data의 키와 값을 i, ii로 설정해 반복문 돌림
4. 조건문 사용해 sd보다 ii(값)이 클 시 sd에 ii값이 들어가도록 함 <가장 많이 판매된 제품 수량 확인
5. 반복문을 통해 ii에는 50이 담기고 i에는 apple이 담김
6. top_product 를 반환
*items()
각 key와 value의 튜플이 담긴 리스트 반환
문제 4
두 숫자와 연산자를 입력 받아, 해당 연산을 수행하고 결과를 반환하는 함수를 작성하세요.
- num1, num2 : 숫자 입력값
- operator : 문자열 행태의 연산자 ('+', '-', '*', '/')
def simple_calculator(num1, num2, operator):
if operator == '+':
return num1 + num2
elif operator == '-':
return num1 - num2
elif operator == '*':
return num1 * num2
elif operator == '/':
if num2 == 0:
return'Cannot divide by zero'
else:
return num / num2
# 테스트
print(simple_calculator(10, 5, '+')) # 출력: 15
print(simple_calculator(10, 5, '-')) # 출력: 5
print(simple_calculator(10, 5, '*')) # 출력: 50
print(simple_calculator(10, 0, '/')) # 출력: 'Cannot divide by zero'
operator가 a연산자일 때 a로 계산된다를 표현
문제5
문자열 형태의 이메일 주소 목록을 분석하여, 각 이메일 주소가 올바른 형식을 갖추고 있는지 판단하는 프로그램을 작성하세요.
- 이메일 주소는 문자열 리스트로 제공됩니다.
- 올바른 이메일 주소의 형식은 다음과 같습니다.
하나의 '@'기호를 포함해야 합니다.
'@'기호 앞에는 하나 이상의 문지가 있어야 합니다.
'@'기호 뒤에는 도메인명이 도메인명이 와야 하며, 도메인명은 '.'을 포함한 하나 이상의 문자로 구성되어야 합니다. 각 이메일 주소가 올바른 형식을 갖추고 있는지 검사합니다. (문자열 메소드 사용) 올바른 형식의 이메일 주소인 경우, "유효한 이메일 주소입니다."를 출력합니다. 올바르지 않은 형식의 경우, "유효하지 않은 이메일 주소입니다."를 출력합니다.
풀이1
def validate_emails(email_list):
for i in email_list:
if i.find('@') > 2 and i.find('.', i.find('@')) > 2:
print (i + ' 유효한 이메일 주소입니다.')
else:
print (i + ' 유효하지 않은 이메일 주소입니다.')
# 이메일 목록
email_list = [
"example@example.com",
"wrongemail@com",
"anotherexample.com",
"correct@email.co.uk"
]
# 이메일 유효성 검사 실행
validate_emails(email_list)
*.find() 함수
str.find(찾을 문자)
str.find(찾을 문자, 시작 Index)
str.find(찾을 문자, 시작 Index, 끝 index)
지정한 문자를 찾지 못한 경우에는 -1을 반환합니다.
풀이2
def validate_emails(email_list):
for email in email_list:
# '@' 기호가 있는지 확인
if "@" in email:
# '@' 기호를 기준으로 문자열을 두 부분으로 나누기
parts = email.split('@')
# 나눠진 부분이 정확히 두 개인지 확인
if len(parts) == 2:
username, domain = parts
# 두 부분이 모두 비어있지 않은지 확인
if username and domain:
# 도메인에 '.'이 포함되어 있는지 확인
if "." in domain:
print(f"{email} 유효한 이메일 주소입니다.")
continue
print(f"{email} 유효하지 않은 이메일 주소입니다.")
# 이메일 목록
email_list = [
"example@example.com",
"wrongemail@com",
"anotherexample.com",
"correct@email.co.uk"
]
# 이메일 유효성 검사 실행
validate_emails(email_list)
'문과생의 파이썬' 카테고리의 다른 글
[Pandas] 인덱스(행), 컬럼(열) 기초 (0) | 2024.08.07 |
---|---|
[Pandas] 데이터 불러오기, 데이터 확인하기 (3) | 2024.07.22 |
[데파종] 데이터분석 파이썬 종합반 3주차 (조건문, 반복문) (0) | 2024.07.04 |
[데파종] 데이터분석 파이썬 종합반 2주차 (리스트, 튜플, 딕셔너리) (0) | 2024.07.04 |
[데파종] 데이터분석 파이썬 종합반 1주차 (변수의 자료형 - 문자형, 숫자열) (0) | 2024.07.04 |