가변형 매개변수, 언팩 연산자
연팩 연산자를 사용하는 튜플 형식의 가변 매개변수
error문구:
total+=val
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'


.res라는 변수에 따로 1,2,3,4,5를 담아 넣는 것과 직접 1,2,3을 넣는 것의 차이가 무엇일까?


디버깅을 해보면 res로 넣는 1번의 경우에 params에 (1,2,3,4,5) 가 통째로 하나의 튜플로 들어가고... 튜플의 튜플로 들어가는 것 같다. 그냥 바로 1,2,3을 넣는 경우에는 1,2,3 이 인자로 전달되어 각각이 하나의 (인덱스 넘버-int)로 갖고 있는 하나의 튜플로 들어가는 것 같고.
언패킹에 대해 조금 더 검색해 봄
차후 한번 더 읽어두자.
https://velog.io/@yunhlim/Python-%EC%96%B8%ED%8C%A8%ED%82%B9Unpacking-%EC%97%B0%EC%82%B0%EC%9E%90
[Python] 언패킹(Unpacking) 연산자
파이썬 언패킹 연산자 사용
velog.io
[Python] 파이썬 아스테리스크(*)로 언패킹(Unpack)과 패킹(Pack)하기 - 튜플, 리스트, 키/값 페어 언패
파이썬에서 언팩킹과 팩킹 zip()의 파라미터는 1개가 될 수도 있고, 2개가 될 수도, 10개가 될 수도 있다. 밑의 실험을 보면 알 수 있다. >>> a = ['a1', 'a2'] >>> b = ['b1', 'b2'] >>> c = ['c1', 'c2'] >>> d = ['d1', 'd
ihp001.tistory.com
언팩 연산자를 사용하여 하나 이상의 반환값 처리하기
함수의 반환값으로 두개 이상을 보낼 수 있는데 그것을 출력할 때
...
return (total1,total2)
#함수 반환값을 넣어줌
res=calc_sum(0,0.1,1,2)
#1. 단순출력, 튜플의 형태로 출력
print(res) #(3, 3.0)
print("Type: ",type(res)) #Type: <class 'tuple'>
#튜플 형식의 반환값을 언팩 연산자를 사용하여 출력
print("{0},{1}".format(*res)) #3,3.0
print("{0},{1}".format(res[0],res[1])) #3,3.0 #인덱스 활용
print("type: ",type(res[0])) #type: <class 'int'>
함수 스코프를 갖는 변수의 유효 범위
지역변수 params와 result는 함수값을 반환한 뒤에는 유효하지 않은 정보가 된다.
변수에 접근하는 순서: 함수 내 > 함수 스코프 내에 변수가 없을 때 전역 스코프로 > 여기서도 못 찾으면 name error발생
전역변수와 지역변수가 이름이 같을 때, 전역변수를 못 찾을 수 있으므로 이럴 땐 전역변수 이름 앞에 global을 기술한다.
def cgv():
global x #함수 내에서 x는 전역 변수를 가리키게 된다.
x +=1
return x
x=5
print("[BF]전역변수 x의 값은: ",x)
cgv()
print("[AFT]전역변수 x의 값은: ",x)
[BF]전역변수 x의 값은: 5
[AFT]전역변수 x의 값은: 6
'공부기록 > Python' 카테고리의 다른 글
[함수] 고급함수 (0) | 2023.04.14 |
---|---|
[Window][Conda] CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. (0) | 2023.01.15 |
가변형 매개변수, 언팩 연산자
연팩 연산자를 사용하는 튜플 형식의 가변 매개변수
error문구:
total+=val
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'


.res라는 변수에 따로 1,2,3,4,5를 담아 넣는 것과 직접 1,2,3을 넣는 것의 차이가 무엇일까?


디버깅을 해보면 res로 넣는 1번의 경우에 params에 (1,2,3,4,5) 가 통째로 하나의 튜플로 들어가고... 튜플의 튜플로 들어가는 것 같다. 그냥 바로 1,2,3을 넣는 경우에는 1,2,3 이 인자로 전달되어 각각이 하나의 (인덱스 넘버-int)로 갖고 있는 하나의 튜플로 들어가는 것 같고.
언패킹에 대해 조금 더 검색해 봄
차후 한번 더 읽어두자.
https://velog.io/@yunhlim/Python-%EC%96%B8%ED%8C%A8%ED%82%B9Unpacking-%EC%97%B0%EC%82%B0%EC%9E%90
[Python] 언패킹(Unpacking) 연산자
파이썬 언패킹 연산자 사용
velog.io
[Python] 파이썬 아스테리스크(*)로 언패킹(Unpack)과 패킹(Pack)하기 - 튜플, 리스트, 키/값 페어 언패
파이썬에서 언팩킹과 팩킹 zip()의 파라미터는 1개가 될 수도 있고, 2개가 될 수도, 10개가 될 수도 있다. 밑의 실험을 보면 알 수 있다. >>> a = ['a1', 'a2'] >>> b = ['b1', 'b2'] >>> c = ['c1', 'c2'] >>> d = ['d1', 'd
ihp001.tistory.com
언팩 연산자를 사용하여 하나 이상의 반환값 처리하기
함수의 반환값으로 두개 이상을 보낼 수 있는데 그것을 출력할 때
...
return (total1,total2)
#함수 반환값을 넣어줌
res=calc_sum(0,0.1,1,2)
#1. 단순출력, 튜플의 형태로 출력
print(res) #(3, 3.0)
print("Type: ",type(res)) #Type: <class 'tuple'>
#튜플 형식의 반환값을 언팩 연산자를 사용하여 출력
print("{0},{1}".format(*res)) #3,3.0
print("{0},{1}".format(res[0],res[1])) #3,3.0 #인덱스 활용
print("type: ",type(res[0])) #type: <class 'int'>
함수 스코프를 갖는 변수의 유효 범위
지역변수 params와 result는 함수값을 반환한 뒤에는 유효하지 않은 정보가 된다.
변수에 접근하는 순서: 함수 내 > 함수 스코프 내에 변수가 없을 때 전역 스코프로 > 여기서도 못 찾으면 name error발생
전역변수와 지역변수가 이름이 같을 때, 전역변수를 못 찾을 수 있으므로 이럴 땐 전역변수 이름 앞에 global을 기술한다.
def cgv():
global x #함수 내에서 x는 전역 변수를 가리키게 된다.
x +=1
return x
x=5
print("[BF]전역변수 x의 값은: ",x)
cgv()
print("[AFT]전역변수 x의 값은: ",x)
[BF]전역변수 x의 값은: 5
[AFT]전역변수 x의 값은: 6
'공부기록 > Python' 카테고리의 다른 글
[함수] 고급함수 (0) | 2023.04.14 |
---|---|
[Window][Conda] CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. (0) | 2023.01.15 |