파이썬 심화 2022-07-19 오후강의

Have a good one!·2022년 7월 20일
0

인공지능사관학교

목록 보기
3/13

List Container

List Comprehension

List Comprehension : For문을 한 줄로 쓰기.

문법은 다음과 같다.

list comprehension 문법
가장 기본적인 형태 : [expression for element in iterable]
조건문이 추가된 형태 : [expression for element in iterable if condition]

#과제 for문을 이용하여 97부터 77까지 출력하시오
print([num for num in range(97, 76, -1)])

#과제 for문을 이용하여 23부터 40까지 출력하시오
print([num for num in range(23, 40)])

출력 결과

조건문이 추가된 형태

# 1~10 까지 홀수만 list에 넣기
numbers = [i for i in range(1,11) if i%2 == 1]
print(numbers)

수업중 실습


문제 : 다음 리스트에 있는 요소중에 가장 큰수와 가장 작은 수를 출력해 보세요

# 다음 리스트에 있는 요소중에 가장 큰수와 가장 작은 수를 출력해 보세요
list2 = [4,5,2,1,99,15,2,7,27]

#sol1
print(f'min:{min(list2)} max:{max(list2)}')

#sol2
print(f'min:{(sorted(list2))[0]} max:{(sorted(list2))[-1]}')

#sol3
t_min, t_max = list2[0], list2[0]
for val in list2:
    if t_min > val : t_min = val
    if t_max < val : t_max = val
print(f'min:{t_min} max:{t_max}')

문제 : 숫자를 입력받아서 약수 (해당 값을 나누어서 나머지가 0이되는 수)를 출력

divmod()를 사용하면 몫과 나머지를 한 번에 튜플형태로 받을 수 있다.
문법 : (몫, 나머지) = divmod(분모, 분자)

import math
input_data = int(input())
res = {input_data}
for i in range(1, int(math.sqrt(input_data))+1):
    a, b = divmod(input_data,i)
    if b == 0:
        res.add(i)
        res.add(a)
print(res)

문제 : score_list = [90,45,70,60,55] 중 60점이상 합격인 사람 찾기

enumerate() 함수를 사용하면
For문을 통해 list의 값을 꺼내 올 때, element에 index을 assign하여 처리할 수 있다.

score_list = [90,45,70,60,55]
for idx, val in enumerate(score_list, 1): 
	print(f'{idx}번 학생은 {"합격" if val>=60 else "불합격"}입니다.')

실행결과

profile
Have a good one!

0개의 댓글