[python]기초문법6

2 minute read

혼자공부하는 파이썬 28~ 33강

반복문 예제)
1 ~ 100까지의 숫자를 1 * 99, 2 * 98, 3 * 97 과 같이 계산할 경우 최대가 되는 경우는 어떤 숫자를 곱했을 때 인가 ?

max_value = 0
a = 0
b = 0
for i in range(1,99 + 1):
    j = 100 - i
    #최댓값 구하기
    if max_value < i * j:
        max_value = i * j
        a = i
        b = j
print("최대가 되는 경우: {} * {} = {}".format(a, b, max_value))

리스트와 딕셔너리에 적용하는 함수

리스트에 적용할 수 있는 기본 함수 : min(), max(), sum()

max(리스트) 또는 max(숫자,숫자,숫자, …)
sum()은 반드시 리스트가 들어가야함.

print(min([273,52,34,57,103]))
print(max([273,52,34,57,103]))

#[ ]를 빼도 상관없음

리스트 뒤집기: reversed()

a = [0, 1, 2, 3, 4, 5]
reversed_a = reversed(a)
print(reversed_a) # [5, 4, 3, 2, 1, 0]
print(reversed_a) # [] 일회용 함수이기때문


주로 아래의 두 형태로만 사용한다

list(reversed(리스트)) : 리스트 역으로 돌리기
for i in reversed(리스트) : 반복문에 적용하기

현재 인덱스가 몇 번째인지 확인하기 : enumerate()

a = [273, 103, 52, 32, 57]
for(i, element) in enumerate(a):
    print("{}번째 요소는 {}입니다.".format(i, element))


주로 아래의 두 형태로만 사용한다

for i, element in enumerate(리스트)

- 딕셔너리로 쉽게 반복문 작성하기 : items()

a = {
    "key1" : "value_1",
    "key2" : "value_2",
    "key3" : "value_3"
}
for key, value in a.items():
    print("{}키의 값은 {}입니다.".format(key, value))


주로 아래의 두 형태로만 사용한다

for key, value in 리스트.items()

기본함수 외에 3개 함수는 일회용 함수이다

리스트 내포(List Comprehension)

array = [ i * i for i in range(0, 20, 2)]
print(array) #[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]

사용 예시 (예시를 보고 감을 익힐 )
array_1 = [i for i in range(10)]
array_2 = [i for i in range(0, 10, 2)]
array_3 = [1 for i in range(10)]

print(array_1)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(array_2)#[0, 2, 4, 6, 8]
print(array_3)#[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]


예제)
1 ~100까지를 2진수로 나타냈을 때, 0이 하나만 포함된 숫자의 합 구하기

output = 0
for i in range(1, 100 +1):
    if "{:b}".format(i).count("0") == 1:
        print("{} : {:b}".format(i , i))
        output += i
print("합계: {}".format(output))


#리스트 내포를 사용한 풀이

output = [i for i in range(1, 100 + 1) if "{:b}".format(i).count("0")==1]
print(output)
print("합계: {}".format(sum(output)))


함수 기본

함수 선언

def 함수이름(매개변수): 함수 호출 시 실행할 코드 return 반환할 값

함수 호출

함수이름(인자)

함수 예제)

def print_n_times(value,n):
    for i in range(n):
        print(value)

print_n_times("hello world!", 5) 
#출력 
hello world
hello world
hello world
hello world
hello world


가변 매개변수와 기본 매개변수

가변매개변수

def 함수이름(매개변수1,매개변수2,*가변매개변수):
    print(매개변수1)
    print(매개변수2)
    print(가변매개변수)

함수이름(0,1,2,3,4,5,6,7,8,9)
=>출력 :0
									1
								(2, 3, 4, 5, 6, 7, 8, 9)

가변매개변수는 함수당 하나만 사용가능하고, 제일 마지막 위치에만 사용 가능하다.

기본매개변수

def print_n_times(value,n=5):
    for i in range(n):
        print(value)

print_n_times("안녕하세요")

기본매개변수도 제일 마지막 위치에만 사용가능하다.


매개변수 정리

일반 매개변수 - 가변 매개변수 - 기본 매개변수 순서로 매개 변수를 선언한다

def function(일반매개변수A, 일반매개변수B, *가변매개변수, 기본매개변수A=10,기본매개변수B=20):
    print(일반매개변수A,일반매개변수B)
    print(가변매개변수)
    print(기본매개변수A,기본매개변수B)

function(0,1,2,3,4,5,6,7,8,9,10)

출력 : 0 1
(2, 3, 4, 5, 6, 7, 8, 9, 10)
10 20

function(0,1,2,3,4,5,6,7,8,9,10,기본매개변수A=11,기본매개변수B=12) #기본매개변수를 호출 시 지정할 수도있음

Leave a comment