2014-06-09 5 views
4

저는 파이썬을 배우고 있습니다. 저는 상수와 리터럴 상수와 혼동합니다. 그들은 무엇입니까? 그들은 어떤 용도로 사용합니까? 정상 변수와의 차이점은 무엇입니까?상수 및 리터럴 상수 란 무엇입니까?

대단히 감사합니다.

편집 :

나는 내가 표현이고 그 반대의 경우도 마찬가지 모르는 프로그래밍 world.Like에 대해 아무것도 몰라 말할 수있는 나는 진정한 beginner.As 초보자를 해요.

5.2. Literal Constants

An example of a literal constant is a number like 5 , 1.23 , or a string like 'This is a string' or "It's a string!" .

It is called a literal because it is literal - you use its value literally. The number 2 always represents itself and nothing else - it is a constant because its value cannot be changed. Hence, all these are referred to as literal constants.

:

나는 내가 리터럴에 대해 이야기하고 constants.I이 섹션을 공유 섹션을 통해 제공되는 책 어딘가에서 책을 "파이썬 바이트"를 사용하여 파이썬 언어를 배우고있다 그것이 말하면 "리터럴이라고하기 때문에 문자 적으로 가치가 있습니다"라는 부분을 얻지는 않습니다.이 부분을 문자 그대로 사용하는 것은 무엇입니까? 또 다른 모호한 점은 다음과 같습니다. 숫자 2는 값이 변경 될 수 없기 때문에 상수입니다. 어떻게 가능합니까? 다음과 같이 변경할 수 있습니다.

stack = 2 
stack = 3 

먼저 스택에 2 번을 할당 한 다음 스택의 값을 변경했습니다 (이 번호는 책에서 상수이므로 변경할 수 없음). 3 번으로 번호가 지정되었습니다. 그래서 나는 쉽게 숫자 2의 가치를 바꿨습니다. 나는 정말로 혼란 스럽습니다. 제 입장을 이해하지 못했다면, 더 많은 예를 들려 줄 수 있도록 말해주십시오. 시간을 주셔서 감사합니다.

+1

무슨 뜻인지 예를 들려 줄 수 있습니까? – arshajii

+1

파이썬에는 상수가 없습니다 - 이름이 'UPPERCASE'인 변수는 관례 상 일정하지만 어디에도 적용되지 않습니다. – jonrsharpe

+0

@arshajii 나는 포스트와 예제를 편집했다. – user3722727

답변

7

영업 이익의 편집 후 대답

리터럴 상수는 실제 리터럴 값이다; 나는 리터럴이라는 단어가 당신을 혼란스럽게한다는 것을 압니다. 당신이 입력하면하여 REPL에서 다음과 같은 : 당신이 잘, 당신은 초보자로서, 그것은에 최선의 수 (, 당신은 자신의 값을 변경할 수 없습니다 생각

>>> 2 
2 
>>> 'hello' 
'hello' 

2hello 실제 문자 상수와 반대가된다 그 사실을 모르는 사람). 당신은 할 때 : 당신은 먼저 리터럴 상수 stack에 (하지만, 정직하게, 그것은 불리는 것에 대해 걱정하지 마십시오, 그것은 숫자 2의) 할당하는

stack = 2 
stack = 3 

합니다. 따라서 이름은 stack이고 값은 2입니다. 그런 다음 stack = 3라고 말하면 이 아닌은 값을 2으로 변경합니다. 이제 stack이라는 이름을 다른 값인 3을 가리 키도록 만듭니다.

"가치가있는 무엇을 위해,"일정한 원본 "는 복잡하게 들린다; 그냥 2 또는 'John' 등의 값을 생각해보십시오. 실제 상수와 관련하여 (프로그래밍 상수는 할당 후에 변경할 수없는 변수를 참조합니다.)이 개념은 실제로 Python에는 존재하지 않습니다. 상수는 예를 들어 stack = 2이라고 말하면서 stack이 가리키는 내용을 변경할 수 없거나 오류가 발생하는 경우입니다. 파이썬에서는이 개념이 존재하지 않습니다.

원래 답 : 우선 들어

, 나는 귀도에 의해 당신이 The story of None, True and False (and an explanation of literals, keywords and builtins thrown in) 읽는 것이 좋습니다

A literal, on the other hand, is an element of an expression that describes a constant value. Examples of literals are numbers (e.g. 42, 3.14, or 1.6e-10) and strings (e.g. "Hello, world"). Literals are recognized by the parser, and the exact rules for how literals are parsed are often quite subtle.

는 "상수"에 관해서는, 당신은 파이썬에서 "진정한 상수"등의 변수를 선언 할 수 없습니다. TrueFalseNone 파이썬하지만 같은 Built-in Constants이있다조차되지는 않습니다 그들은 다른 값을 가리 키도록 할당 할 수있는 파이썬 2.X에서 "진정한 상수"

True = False 
if True: 
    print 'Hey' 
else: 
    print 'WAAAT!' 

도움이 되었기를 바랍니다. 그렇지 않다면 질문을 편집하고 상수 및 리터럴 상수로 정확히 무엇을 의미하는지 예를 들어주십시오.

참고 : TrueFalse 등은 Python 3.x의 키워드이므로 True = False라고 말하면 통역사는 SyntaxError: assignment to keyword을 발생시킵니다.

+0

IIRC'True'와'False'는 파이썬 3에서 "참"상수입니다 ... –

+1

그것을 수정했습니다. 감사. 그들은 키워드이고 그들에게 할당하는 것은 이제'SyntaxError : 키워드로의 할당 '을합니다. – s16h

+0

@ s16h 나는 정말로 당신의 대답에서 가장 사소한 아이디어를 얻을 수 없었습니다. 나는 나의 글을 편집했습니다. – user3722727