
name = "김호균"
age = 40
weight = 99
# 변수 타입 선언 안해도 됨

# 상수 선언 불가능, 대신에 변수명 대문자로 쓰기로 약속
NAME = "김호균"

print("김호균")

print(age + weight)

# 피해야 할 이름 :
# 소문자 l, 대문자 O, 대문자 I하나만 변수의 이름으로 쓰는 것은 권장하지 않습니다.
# 특정 폰트에서 헷갈릴수도 있기 때문입니다.

# 패키지와 모듈의 이름 :
# 모듈 이름은 짧아야 하고, 전부 소문자 여야 합니다. 가독성을 위해서라면 밑줄(_)을 쓸 수 있습니다.
# 패키지 이름 또한 짧아야 하고, 전부 소문자 여야 합니다. 밑줄은 권장하지 않습니다.

# 클래스 이름 :
# 클래스 이름은 CapWords 형식(단어를 대문자로 시작)을 따릅니다.

# exception의 이름 :
# exception은 클래스이므로, class와 동일하게 적용됩니다.
# 다만, 맨 뒤는 "Error"로 끝나야 합니다.

# 전역변수의 이름 :
# (전역 변수는 하나의 모듈 안에서만 쓰인다고 가정합니다)
# 전역 변수의 이름을 짓는 것은 함수 이름을 짓는 것과 동일합니다.
# from M import *과 같이 쓰일 모듈에서는 global이 export 될 것을 방지하기 위해 all`메커니즘이나 혹은 맨 앞을 밑줄로 시작해야 합니다.

# 함수의 이름 :
# 함수의 이름은 원칙적으로 소문자여야 하고, 가독성을 위해서 밑줄(_)로 단어를 나눌 수 있습니다.
# 간혹 threading.py같이 이미 대/소문자를 혼용하는 경우는 대/소문자를 같이 쓰는 경우도 있습니다.

# 함수와 메소드의 인자 :
# 메소드 인스턴스에 쓰이는 첫 번째 인자는 무조건 self여야 합니다.
# 클래스 메소드의 첫 번째 인자는 무조건 cls여야 합니다
# 예약된 키워드(in 등)와 함수의 인자가 겹치는 경우, 변수 이름 맨 뒤에 밑줄 하나를 붙이는 것으로 대체합니다.(ex, class_)

# 메소드 이름과 인스턴스의 이름 :
# 함수 이름과 동일합니다.
# public이 아닌 메소드나 인스턴스의 이름은 밑줄로 시작합니다.

# 상수의 이름 :
# 상수 이름은 전부 대문자와 밑줄로 쓰는 것을 원칙으로 합니다.