>백엔드 개발 >파이썬 튜토리얼 >왜 파이썬은 숫자로 시작할 수 없나요?

왜 파이썬은 숫자로 시작할 수 없나요?

(*-*)浩
(*-*)浩원래의
2019-07-03 10:34:405450검색

누군가 글로 규정한 것에는 반드시 이유가 있을 것이다. 즉, 합리성

왜 파이썬은 숫자로 시작할 수 없나요?

# 🎜 🎜#Python 변수 명명 규칙(권장 학습: Python 동영상 튜토리얼)

변수 이름에는 문자, 숫자, 밑줄만 사용할 수 있습니다. 변수 이름은 문자나 밑줄로 시작할 수 있지만 숫자는 사용할 수 없습니다. 예를 들어 변수 이름을 message_1로 지정할 수 있지만 1_message로 지정할 수는 없습니다.

변수 이름에는 공백이 포함될 수 없지만 밑줄을 사용하여 단어를 구분할 수 있습니다. 예를 들어, Greeting_message라는 변수 이름은 작동하지만, Greeting message라는 변수 이름은 오류를 발생시킵니다.

Python 키워드 및 함수 이름을 변수 이름으로 사용하지 마십시오. 즉, Python이 인쇄와 같은 특별한 목적으로 예약한 단어를 사용하지 마십시오.

변수 이름은 짧고 설명적이어야 합니다. 예를 들어, name은 n보다 좋고, Student_name은 s_n보다 좋고, name_length는 length_of_persons_name보다 좋습니다.

소문자 l과 대문자 O는 숫자 1과 0으로 오해될 수 있으므로 주의해서 사용하세요.

참고: 소문자 Python 변수 이름을 사용해야 합니다. 변수 이름에 대문자를 사용해도 오류가 발생하지는 않지만 대문자는 사용하지 않는 것이 좋습니다.

그럼 왜 변수는 숫자로 시작할 수 없나요? 이는 컴파일 원리의 관점에서 설명되어야 합니다.

오늘 스크립트 분석을 하다가 갑자기 이런 생각이 들었습니다. 먼저 문법 구문 분석 도구에 대해 설명하겠습니다. 구문 분석할 스크립트는 매우 간단하며 &, |, ~, =, !=, () 및 {}와 같은 연산자만 포함합니다. 처음에는 NFA 및 DFA를 작성하고 상태를 찾은 다음 어휘 분석을 작성하여 토큰을 생성하는 컴파일 원칙을 채택한 다음 구문 분석을 통해 토큰을 생성하여 의미를 기반으로 구문 트리를 생성하고 최종적으로 평가했습니다. . 나중에 생각해 보면 이 스크립트는 문자별로 판단하고 다양한 유형의 문자를 만날 때 처리를 위해 다양한 하위 기능을 입력하기만 하면 되며 동시에 어휘 분석, 구문 분석 및 프로세스를 완료합니다. 평가. 그러나 어떤 방법을 사용하더라도 읽은 문자를 기준으로 현재 어떤 Token이 입력되어 있는지 판단해야 하는데 이것이 문제의 핵심이다.

캐릭터가 속한 토큰을 결정하는 것이 왜 중요한가요?

이때, 어휘 분석기가 토큰 분석의 시작 상태에 들어갈 때 변수 이름 정의가 숫자로 시작할 수 없다는 제한을 취소한다고 가정합니다. 문자가 숫자인 경우 어휘 분석기는 현재 분석 중인 토큰이 변수 이름인지 숫자 상수인지 확인할 수 없습니다. 좋아요, 분석기가 다음 문자를 기반으로 판단할 수 있다고 말하면 다음 문자가 문자라면 현재 토큰이 변수 이름에 속하는지 쉽게 판단할 수 있습니다(지금은 예약된 키워드를 무시하겠습니다) , 그런데 다음 문자가 모두 숫자이면 어떻게 해야 하나요? 변수 이름 정의에 숫자가 허용되기 때문에 파서는 이를 알 수 없습니다.


하하, 위에서 말씀드린 내용이 복잡하고 이해하기 어려울 수 있습니다. 간단히 말해서 문자열 "123"을 분석할 때 변수 이름이 첫 번째를 허용하는 경우 문자는 다음과 같습니다. 숫자인 경우 분석기는 "123"이 숫자 상수인지 변수 이름인지 알 수 없습니다.

더 많은 Python 관련 기술 기사를 보려면

Python Tutorial 열을 방문하여 알아보세요!

위 내용은 왜 파이썬은 숫자로 시작할 수 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.