python 문법 1차 정리

이종호·2021년 3월 17일
0

1. Print

  • 디버깅 시 가장 자주 사용될 수 있는 print()이다
  • "", ''로 문자열을 표현할 수 있다.

2. Data Types

  • 문자열 = string
  • 정수형 = Integer
  • 실수형 = Float
  • 복잡한 숫자 = Complex Numbers
  • boolean
  • True, False
  • boolean값은 첫 문자가 대문자인게 특이한점 같다.

3. Variables for Strings

  • python은 다른 언어와 다르게 변수를 선언할 때, 변수의 형(int, double, string)등을 지정하지 않는다.
  • 편하다는 것은 그만큼 헷갈릴 여지가 있다는 점이므로 코딩할 때 더욱 신경을 써야할 것 같다.
  • 변수의 이름은 처음에는 underscore(_), 알파벳만 적을 수 있다.
  • 변수의 이름 중간은 underscore(_), 알파벳, 숫자 까지 가능하다.

4. Variables For Numbers

  • string + number형은 연산이 되지 않는다.
    javascript에선 자동으로 되는 규칙이 몇 개 있어 기대했는데 조금 아쉽다
  • int + float형은 자동으로 float형으로 연산된다.

5, 6, 7. Math Expressions

  • +, -, /, *, **, %, // 정도가 자주 사용될 만한 연산자들이다.
  • **: 수학에서 제곱을 뜻한다. `10*3 == 10 10 * 10 == 1000'
  • %: 나머지 값을 구하고 싶을 때 사용한다. 의외로 자주 사용된다.
  • //: 나눈 값의 몫만 갖고 싶을 때 사용한다. 이 역시 자주 사용된다.

8, 9, 11 In(De)crement a Number

  • +=, -=등으로 연산을 더 짧게 할 수 있다.
num = 1
num += 5

print(num) # 6

같은 식을 다르게 표현한다면

num = 1
num = num + 5

print(num) # 6

무슨 큰 차이가 없어 보일지도 모른다.
하지만 실제 개발을 하다 보면 한 글자도 줄여 쓰고 싶은게 개발자 마음이다.

코드를 쓰다보면 길이는 늘어나고, 어떤 부분이 잘못되었나, 어디에 수정을 해야하는가, 어떤 부분이 성능이 오래걸리나 등을 확인하려면 코드는 간단하고 쉽게 보여야한다.

앞으로 언어는 더 간단하게 보일 수 있는 방향으로 업데이트 될 것이다.

위에 봤던 /, *, **, %, // 모두 =를 붙여 사용이 가능하다.

12. Order of Arithmetic Operators

  • 연산자는 우선순위가 있다.
  • 어떤 연산자가 높은 우선순위를 가졌는지는 이러하다.
  1. ( )
  2. **
  3. *, / , 그리고 %
    • 와 -

수학에서 배운 내용 대로이니 크게 어렵지 않을 수 있다.

13. Concatenating Text Strings

  • 문자열을 연결하는 방법이다.
  • 짧은 문자열의 경우 +연산자를 통해 원하는 결과를 얻을 수 있다.
name = "jongho"

print("hi" + name + ", nice to meet you)
# 'hi jongho, nice to meet you'
  • 문장이 길어진다 싶다면 literal string interpolation란 방법을 사용하면 쉽다.
name = 'jongho'
age = 27
hobby = 'music'

print(f"hi, name is {name}, age is {age}, hobby is {hobby}.")
# hi, name is jongho, age is 27, hobby is music.
  • 아직까지 개발하면서 literal string interpolation을 사용해 본적은 없지만, 이런게 있었다는 사실을 알게 된것만으로도 큰 수확이었던 것 같다.

  • 이전에는 str.format()등을 통해 이런 복잡한 문자열을 표현했는데 역시 문법은 날이 갈수록 사용하기 쉬워지는 것 같다.

    https://realpython.com/python-f-strings/
    해당 문서를 보면 python에서 복잡한 문자열을 표현하기 위해 어떤 과정등을 거쳤는지 소개해준다.

1. %-formatting

  • 가장 처음에 복잡한 문자열을 표현하기 위한 방법이다.
  • 딱 봐도 문자열이 길어질 수록 사용하기 어려워 보인다.

2. str.format()

  • % 문법을 개선하기 위해 나온 2번때 방법이다.
  • 아직 인터넷에서 복잡한 문자열을 사용하려면 나오는 예제가 이 방법이다.
  • 하지만 이 역시 많은 변수를 넣으려 할 때 그리 깔끔하진 않아 보인다.

3. f 문법

  • 가장 최근에 나온 3번째 방법이다.
  • 딱 봐도 너무 훌륭하다.
  • { ... }안의 내용은 expression즉 표현식이다.(아주 기가 막히다.)
  • 게다가 문서를 보면 나오지만 속도 역시 f문법이 가장 빠르다 ==> 안쓸 이유가 없다.
  • 더 자세한 내용은 문서를 자주 참조하면 좋을 것 같다.

14. Significant Whitespace

  • python의 가장 큰 차이점 같은데 들여쓰기를 통해 코드의 종속성을 표현한다.
name = "jongho"

if name == 'jongho'
    print(name)
else
    print("Who are you?")

# 'jongho'
  • 코드의 종속성이란 어려운 말이 아니라 함수나 클래스 처럼 로컬한 범위를 말한다.
  • 다른 언어에선 보통 {}를 통해 범위를 표현한다.
  • 보통 tap을 쓰고 사람에 다라 스페이스바 4번 또는 2번을 사용한다고 한다.
profile
코딩은 해봐야 아는 것

0개의 댓글