'목록하단 광고 치환자(withSeok)
728x90

딕셔너리 표현

딕셔너리 = {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
}

print("1. print(딕셔너리)")
print(딕셔너리)
print()

print("2.print(딕셔너리.items())")
print(딕셔너리.items())
print()

for key, value in 딕셔너리.items():
    print(f"Key: {key}, Value: {value}")

결과

1. print(딕셔너리)
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

2.print(딕셔너리.items())
dict_items([('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3')])

Key: key1, Value: value1
Key: key2, Value: value2
Key: key3, Value: value3

 

# Parameter passing
def f(i, mylist):
    i=i+1
    mylist.append(7)

k=10
m=[1,2,3]

f(k,m)
print(k,m)

결과

10 [1, 2, 3, 7]

분석:

  • k의 값은 10으로 그대로 유지됩니다. 이는 함수 내에서 i의 값을 변경해도 원래의 k 값에는 영향을 주지 않기 때문입니다. 이는 정수가 불변(immutable)한 데이터 타입이기 때문입니다.
  • m의 값은 [1, 2, 3, 7]로 변경되었습니다. 함수 내에서 mylist에 7을 추가했기 때문입니다. 리스트는 가변(mutable)한 데이터 타입이므로, 함수 내에서 리스트를 변경하면 원래의 리스트도 변경됩니다.

결론:

  • Python에서 정수와 같은 불변 데이터 타입은 값에 의한 전달(pass-by-value) 방식으로 함수에 전달됩니다. 따라서 함수 내에서 이러한 데이터 타입의 매개변수 값을 변경해도 원래의 변수 값에는 영향을 주지 않습니다.
  • 반면에 리스트와 같은 가변 데이터 타입은 참조에 의한 전달(pass-by-reference) 방식으로 함수에 전달됩니다. 따라서 함수 내에서 이러한 데이터 타입의 매개변수를 변경하면 원래의 변수도 변경됩니다.

함수 *기호

# Variable length of parameter
def total(*number):
    tot = 0
    for n in number:
        tot += n
    return tot
t=total(1,2)
print(t)
t=total(1,5,2,6)
print(t)

결과

3
14

* 기호의 의미:

  • * 기호는 함수의 매개변수 앞에 사용되면, 해당 매개변수가 가변 매개변수임을 나타냅니다.
  • 가변 매개변수는 함수 호출 시 임의의 개수의 인자를 받을 수 있습니다.
  • 함수 내부에서는 가변 매개변수가 튜플로 처리됩니다.
  • 이를 통해 함수는 여러 개의 인자를 하나의 튜플로 그룹화하여 처리할 수 있습니다.

결론:

  • *number를 사용하면 total 함수는 임의의 개수의 숫자 인자를 받을 수 있습니다.
  • 함수 내에서는 이 인자들을 number라는 튜플로 처리하며, 이 튜플의 모든 요소를 순회하여 합계를 계산합니다.
  • * 기호는 함수의 매개변수가 가변 길이를 가짐을 나타내며, 이를 통해 함수는 여러 개의 인자를 유연하게 처리할 수 있습니다.
728x90

'■ 현재-ing > ㅡPython' 카테고리의 다른 글

반) 자료구조  (0) 2023.10.08
파이썬 exe  (0) 2023.09.20
pyinstaller  (0) 2023.08.31
파이썬_No module named 'serial'  (0) 2023.08.27
파이썬 뱀 게임(스네이크 게임)  (0) 2023.08.05

+ Recent posts