저는 대문자로 된 모든 문자를 대문자로 만드는 데 사용 된 하나의 함수를 사용하려고했지만 문자열 boolean은 해당 문자열에서 작동하지 않습니다. 당신이 묻는 것은 무엇을 의미합니까? 그럼 그냥 다음과 같은 논리 값을 가정 해 봅시다 : str.upper()는 다른 str.upper()를 포함하여 다른 문자와 같지 않은 문자열을 반환합니다.
"b".upper() is "B"
".".upper() is "."
".".upper() is ".".upper()
모든 거짓
이다. 너무 혼란 스럽습니다. 대문자로 같은 문자열을 반환하는 대신에 문자열을 upper() 형식으로 변환 한 것처럼 동작합니다 (설명서에서 말하는대로), 생성 된 객체와 일치하지 않는 완전히 새로운 객체를 반환합니다. 정확한 조건에서.
중단 점을 설정하고 변수의 실제 값을 보면 효과가 없습니다. is_graduate_input = input("Enter (y/n)").upper()
위로 마우스를 가져 가면 입력 한 값이기 때문에 "Y"값이 표시됩니다. 하지만 그 직후에 내 print(is_graduate_input is "Y")
문이 False를 인쇄합니다. 왜?!?!
파이썬에 대한 문서에서는 유니 코드 표준으로 문자를 대문자로 만드는 알고리즘이 설명되어 있습니다. 나는 그것을 읽고 싶지 않다. 나는 그것이 도움이 될 것이라고 생각하지 않는다. 누군가가 대체 무슨 일이 일어나고 있는지 말해 줄 수 있습니까? 자러 가고 싶다. 나는 내일 학교가있다.
참조 [여기] (http://stackoverflow.com/questions/132988/is-there-a-difference -with-in-python) - '없음'과 같은 싱글 톤을 제외한 다른 것과 비교하기 위해'is'를 사용하는 것은 나쁜 생각입니다. '=='를 사용하십시오.Java에서'=='및'.equals()'와 매우 유사한 것입니다. – yeputons
@yeputons 그게 내 문제 야?!?! 나는 무엇을해야만 하는가? –
파이썬에서는 객체 비교를 위해'=='를 사용해야합니다. 당신이하고있는 일과 그 이유를 분명히 이해하지 않는 한'is None'과'None None' 비교 밖에서'is'를 사용하지 마십시오. – yeputons