데이터 취업 스쿨 스터디 노트 -(9) 연습문제

테리·2024년 6월 12일
0
post-thumbnail

재귀 함수를 이용하는 팩토리얼

def recur(n):
    if n ==1:
        return n
    return n * recur(n-1)

print(recur(2))

n=0, n=-1까지 계속 내려가지 않고 n=1에서 실행이 종료되는 이유는 n=1일때 if문이 실행되 return 1이 반환된다.중요한 점은 'return'문을 만나면 함수는 해당값을 반환하고 즉시 종료된다는 것이다. 그렇기에 n=1 미만으로는 더이상 실행되지 않는다.

global 키워드

#함수 외부에서 선언된 전역 변수를 함수 내에서 수정하고자 한다면, global 키워드를 사용해야 한다.

def setUserNums(ns)
    global userNums
    userNums = ns

if ~ in

현재 un 값이 randNums 리스트에 포함되어 있는지 확인합니다.
만약 un이 randNums 리스트에 있다면, 조건문은 True가 됩니다.
예를 들어, randNums가 [3, 4, 5, 6, 7]이라면, un이 3, 4, 또는 5일 때 조건문이 True가 됩니다.

for un in userNums:
    if un in randNums:
        collectNums.append(un)

로그 출력

모듈 함수를 만들고 로그를 보거나 보지 않고 싶을 경우 변수=True 값을 함수 정의에 사용하면 된다.
모듈함수

def getPermutationCnt(n,r, logPrint = True):

    result = 1
    for n in range(n,(n-r),-1):
        if logPrint: print('n:{}'.format(n))
        result = result * n

    return result

실행문

print(f'{numN}P{numR}: {pt.getPermutationCnt(numN, numR, logPrint=False)}')
#이 경우 모듈에 있는 print 문이 보이지 않게됨.

순열

직접 만들어도 되고
from itertools import permutations 를 사용해도 괜찮음.
단 이경우 permutations(a,b)에서 a를 []형태의 리스트 값으로 받아야함.

조합

직접 만들어도 되고
from itertools import combinations 를 사용해도 괜찮음.

클래스 문제

이해가 안되 자세히, 길게 작성함. 5_053

예외처리 문제

예외처리가 발생하는 순서와 이유를 설명. 5_061

시간 관련 함수 정리

import time
time.localtime()
time.strftime('%Y-%m-%d %H:%M:%S)
time.sleep(초) #일정한 시간 간격을 두고 실행

from datetime import datetime
from datetime import timedelta
datetime(년,월,일,시,분,초)
timedelta(weeks = 1, days = 2, hours = 1, minutes = 10, seconds = 20) #입력한 시간, 날짜를 더함

0개의 댓글