Python에서 문자열을 변수 이름으로 변환
파이썬에서는 문자열 값을 변수 이름으로 변환 할 수있는 다양한 방법이 있습니다. 이 기사에서는이를 달성 할 수있는 다양한 방법에 대해 설명합니다.
어떤 사람들은 파이썬 프로그램이 실행되는 동안 변수 이름을 동적으로 정의하기 위해 이렇게 할 수 있습니다. 아래 표시된 방법을 사용하여 문자열을 변수 이름으로 변환하는 것은 일부 문제가 발생할 수 있으므로 프로덕션 용 소프트웨어를 개발하는 동안 권장되지 않습니다. 네, 가능 합니다만,주의 해주세요.
Python에서globals()
및locals()
를 사용하여 문자열을 변수 이름으로 변환
globals()
Python의globals()
함수는 현재 전역 기호 테이블의 사전을 반환합니다. 전역 심볼 테이블은globals()
함수를 사용하여 액세스 할 수있는 프로그램의 전역 범위와 관련된 모든 정보를 저장합니다.
user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))
출력:
여기서 가장 먼저하는 일은input()
함수를 사용하여 사용자로부터 입력을 받고 그 안에Enter a string for a variable name:
문자열을 전달하는 것입니다. 그런 다음 사용자가 입력 할 값이 무엇이든 해당 값은user_input
변수에 저장됩니다. 여기서는 사용자가user_input
에 저장 될 문자열 값으로apple
을 입력 할 것으로 예상합니다. 사용자가apple
이외의 값을 입력하면NameError: name 'variable' is not defined
오류가 발생합니다. apple
의 값도 인쇄 한 다음 나중에 코드에서 유형을 확인하기 때문입니다.
사용자가 올바른 값을 입력 한 경우globals()
를 사용하여 전역 사전을 수정하여 전역 사전을 수정하고apple
변수에 값을 할당 할 수 있습니다. 여기서는apple
변수에50
을 할당했습니다.
locals()
Python의locals()
함수는 현재 지역 기호 테이블의 사전을 반환합니다. locals()
함수를 사용하여 로컬 기호 테이블에 액세스 할 수 있습니다. locals()
함수는globals()
함수와 거의 동일한 방식으로 작동합니다. 유일한 차이점은locals()
는 로컬 심볼 테이블에 액세스 할 수 있고globals()
는 글로벌 심볼 테이블에 액세스하여 사전을 반환 할 수 있다는 것입니다.
user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))
출력:
이 코드는globals()
와 동일한 방식으로 작동합니다. 유일한 차이점은 여기서locals()
함수를 사용했다는 것입니다.
Python에서exec()
를 사용하여 문자열을 변수 이름으로 변환
이 작업을 수행하는 또 다른 방법은 Python에서exec()
함수를 사용하는 것입니다. exec()
함수는 Python 프로그램을 동적으로 실행하는 데 사용됩니다. 문자열 값Elon
을 저장하는name
변수가 있습니다.
name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)
출력:
100
exec()
함수 내에는 각각 문자열 값과 10 진수 값에 대한 자리 표시 자로 사용되는%s
및%d
가 있습니다. 이는 할당 연산자=
의 도움으로 문자열에 정수 값을 할당한다는 것을 의미합니다. %s
및%d
는 모두 따옴표=
로 묶여 있습니다. 그런 다음 내부에 두 가지가있는 괄호가 있습니다. 첫 번째는 생성 한 변수, 즉Elon
값을 포함하는name
이고 두 번째는 정수100
입니다.
여기서name
변수 대신 해당 변수 내의 값이 대체됩니다. 정수100
이Elon
에 할당됩니다. Elon
은 변수 이름이되며이를 인쇄하면100
이 출력으로 표시됩니다.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn관련 문장 - Python String
- Python의 문자열에서 쉼표 제거
- 파이썬에서 문자열에서 공백을 제거하는 방법
- Python의 문자열에서 숫자 추출
- 파이썬에서 문자열을 날짜 / 시간으로 변환하는 방법
- 파이썬 2와 3에서 문자열을 소문자로 변환하는 방법