오늘은 내 복사 및 붙여넣기 실수에 대한 이야기와 후행 쉼표가 있는 문자열이 어떻게 결합되어 내 Python 프로그램에서 Tuple()이 되었는지 이야기하겠습니다. 이상하게도 저는 이 실수를 하기 전에는 이 개념을 알지 못했습니다.
그럼 먼저 Python의 문자열과 튜플에 대해 빠르게 배워보겠습니다.
정의: 텍스트를 저장하고 조작하는 데 사용되는 일련의 문자입니다.
구문: 작은따옴표 ' ', 큰따옴표 " " 또는 삼중따옴표 ''' '''/""" """로 묶습니다.
불변성: 문자열은 생성 후에 변경할 수 없습니다.
# Example mystring = "Hello, World!" print(type(mystring)) #Output:mystring2 =str() print(type(mystring2)) #Output:
정의: 값의 불변 시퀀스입니다.
구문: 괄호( )로 정의되고 쉼표로 구분됩니다.
불변성: 일단 생성되면 요소를 변경할 수 없습니다.
# Example mytuple = (1,2) print(type(mytuple)) #Output:mytuple2 =tuple() print(type(mytuple2)) #Output:
이제 우리는 문자열과 튜플에 대해 알아보고 직접 할당이나 생성자를 사용한 클래스 접근 방식을 사용하여 문자열이나 튜플 유형의 변수를 얻는 방법을 알았습니다. 하지만 내 이야기는 다릅니다 :).
Python 문에는 세미콜론(;), 쉼표(,) 또는 기타 닫는 기호(공백은 블록을 처리하는 데 사용됨)가 필요하지 않으므로 “Ajit Kumar”와 같은 문자열로 후행 쉼표를 끝낼 수 있는 방법은 다음과 같습니다. 종종 사전 목록에서 문자열 요소를 복사하고 종종 후행 쉼표로 끝나기 때문입니다. 이것이 나에게 일어난 일이었고 이야기가 흥미로워졌습니다.
그럼 먼저 내 스트로이의 예를 들어보겠습니다.
mymistake = "Ajit Kumar", print(type(mymistake)) #Output :
이제 관찰해야 할 두 가지 사항이 있습니다.
1) Python 인터프리터는 'mymistake' 문자열이 뒤에 오는 쉼표로 인해 오류를 발생시키지 않습니다. 그렇지 않으면 오류가 더 이상 발생하지 않을 것입니다.
2) 문자열 변수를 만들려는 의도보다 변수 유형이 '튜플'이 되었습니다.
여기에 글을 썼는데 매우 쉽고 간단해 보이지만 이 오류를 디버깅하는 데는 몇 시간이 걸렸습니다. 문자열을 메서드에 인수로 전달하고 오류가 이상했고 계속해서 메서드를 연구하고 이해하려고 노력했기 때문입니다. 에러 메시지. 예를 들어 메시지는 'name' 변수에 lower() 메서드가 없다는 것과 같습니다.
괄호 없이 쉼표를 사용하면 Python은 이를 튜플로 처리합니다.
예: mymistake = "Ajit Kumar"는 튜플("Ajit Kumar",)을 생성합니다.
따라서 항목/요소만 있는 튜플을 생성하려면 매우 주의해야 합니다. 다음 예에서는 첫 번째 예에서 항목이 대괄호 쌍(1) 안에 있어도 Python이 이를 튜플이 아닌 정수로 처리한다는 것을 보여줍니다.
singleitem = (1) print(type(singleitem)) #Output:
따라서 단일 항목으로 튜플을 생성하려면 다음과 같이 후행 쉼표를 사용해야 합니다.
singleitemtuple = (1,) print(singleitemtuple) #output: (1,) print(type(singleitemtuple)) #output:
그리고 이것이 문자열에 후행 쉼표가 있을 때 Python이 이를 튜플로 취하고 변수를 문자열이 아닌 튜플로 생성한 이유라고 생각합니다.
그러나 Python 문서에서는 이를 명확하게 언급했으며 이를 알아차리지 못하고 학습 쉼표가 있는 단일 항목에 대해서도 항상 ()를 사용하여 튜플을 생성한 것은 내 실수 또는 과실이었습니다. 원천
어쨌든 이것은 나에게 몇 가지 새로운 교훈을 주었고 단일 항목으로 튜플을 만들거나 ()를 사용하지 않고 더 많은 항목을 만들 수 있는 지름길을 제공했습니다. 예, 더 많은 항목에 "후행 쉼표"를 사용하여 튜플을 생성하려고 시도했는데 제대로 작동했습니다. 예:
mylearning = "Ajit Kumar","April","python", print(mylearning) #output: ('Ajit Kumar', 'April', 'python') print(type(mymistake)) #output:
주말에 많은 배움이 있었습니다. 나는 그것이 당신에게 도움이 되기를 바랍니다. 토론과 제안을 댓글에 남겨주세요. 저는 Python 단축키와 기본 기능에 대해 듣고 싶습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3