bestone888 2024. 9. 10. 22:43

240910

가변인수

In [20]:
def hello(*names):
    print(type(names))
    for name in names:
        print(f'{name}님 안녕하세요')


wrong_input = ['홍길동', '일지매', '강우동']
hello(wrong_input)
print()

hello('a', 'b', 'c')
<class 'tuple'>
['홍길동', '일지매', '강우동']님 안녕하세요

<class 'tuple'>
a님 안녕하세요
b님 안녕하세요
c님 안녕하세요
In [24]:
def Hello(title, *args):
    for name in args:
        print(f'{name}{title} 안녕하세요')

Hello('선생님', 'a','b','c')
a선생님 안녕하세요
b선생님 안녕하세요
c선생님 안녕하세요
In [30]:
def Hello(*args, title):
    for name in args:
        print(f'{name}{title} 안녕하세요')

Hello('a','b','c', title = '선생님')
a선생님 안녕하세요
b선생님 안녕하세요
c선생님 안녕하세요
In [40]:
def summ(*nums):
    result = sum(x**2 for x in nums)
    print(result)
summ(1,2,3,4)

print(1+4+9+16)
30
30

변수 우선 순위

  • L: Local 함수 안에서 선언된 변수
  • E: Enclosing 함수가 함수를 호출한 경우 안쪽 함수 입장에서 밖의 함수가 선언한 변수
  • G: Global 함수 밖에서 선엏나 전역 변수
  • B: Built-in 파이썬이 기본적으로 제공하는 함수
In [49]:
age = 20

def test():
    age = 30
    print('함수 내 age:',age)

test()
print('외부 age:', age)
함수 내 age: 30
외부 age: 20
In [53]:
def test():
    member = [1,2,3,4,5]
    print('함수 내 member:', member)

member = ['홍','일','한']

test()
print('외부 member', member)
함수 내 member: [1, 2, 3, 4, 5]
외부 member ['홍', '일', '한']
In [55]:
def test():
    global member  # 외부의 member 참조
    member = [1,2,3,4,5]
    print('함수 내 member:', member)

member = ['홍','일','한']

test()
print('외부 member', member)
함수 내 member: [1, 2, 3, 4, 5]
외부 member [1, 2, 3, 4, 5]
In [72]:
def test():
    global st  # 없으면 오류
    st = st + 'e'
    print('함수 내', st)

st = 'abcd'

test()

print('외부', st)
함수 내 abcde
외부 abcde
In [76]:
def test():
    nlist.append(6)
    print('함수 내',nlist)


nlist = [1,2,3,4,5]
test()

print('외부',nlist)

# 리스트는 되네?
함수 내 [1, 2, 3, 4, 5, 6]
외부 [1, 2, 3, 4, 5, 6]

내장함수

  • all(x) x의 요소 모두 참이면 True
  • any(x) x의 요소 중 하나라도 참이면 True
  • enumerate(x) 인덱스와 값을 반환
  • filter(f,x) 함수 f에 x를 매개변수로 전달해 True인 경우 반환
  • isinstance(x,y) x가 y의 인스턴스인지 여부를 True, False로 반환
  • zip(x,y) x와 y요소를 쌍으로 묶어서 반환
In [84]:
st = 'abcdef'
for i, s in enumerate(st, start = 1):
    print(i, s)
1 a
2 b
3 c
4 d
5 e
6 f
In [91]:
def func(s):
    return s == s.upper() and s != ' '

a = "I Have a Dream"
list(filter(func,a))
Out[91]:
['I', 'H', 'D']
In [95]:
print(isinstance(1, int))
print(isinstance('hello', list))
True
False
In [98]:
alist = [1,2,3,4,5]
blist = [6,7,8,9,10]
num_dict = dict(zip(alist,blist))
print(num_dict)
{1: 6, 2: 7, 3: 8, 4: 9, 5: 10}