
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 키워드를 사용해야 한다.
def setUserNums(ns)
    global userNums
    userNums = ns
현재 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) #입력한 시간, 날짜를 더함