# Python 언어 Syntax 요약(feat. Java)

간략히 Java를 기준으로 염두해 두어야 할 것들을 정리해본다.



0. 주석(comment)

 의미 

 Python

 비고

 한줄 주석

 # Python

 // Java

 여러줄 주석

 ''' Python '''

 """ Python """

 /* Java */



1. 연산자(Operator)

 의미

 Python

 비고

 덧셈, 뺄셈, 곱셈 나눗셈 등

 아래 나열되지 않는 대부분의 것들

 Java와 동일

 - 나눗셈을 하면 Float이 된다. Java처럼 int로 나오고 싶으면 // 이렇게 두번 쓰면 된다.

 

 제곱(거듭제곱)

 ** 라는 연산기호가 있다.

 Java에서는 Math.pow()를 사용하는 편

 연산자 Convention

 덧셈, 뺄셈같은 상대적 후순위 계산은 띄어쓰기를 하고

 곱셈, 나눗셈은 띄어쓰기 하지 않는다.

 ex) 1 + 2*3




2. 자료형

 의미 

 Python

 비고

 Integer, Float

 Integer, Float으로 double이나 short, char 같은 개념을 통합했다.

 하지만 선언시 자료형을 미리 정의하지 않는다.

 float의 경우는 2진수로 표현할 수 있는 근사값 형태로 저장되는데 이 때문에 10진수를 2진수로 변환할 때 생기는 loss가 있다.

 ex) 0.1 + 0.1 + 0.1 != 0.3

 

 Boolean

 대문자로 시작하는 True, False를 쓴다.

 하지만 선언시 자료형을 미리 정의하지 않는다.

 부정을 표현할때 "!" 대신 "not" 을 쓴다.


 String

 string(immutable)

 Java와 달리 ''로도 String을 묶을 수 있다(큰따옴표, 작은따옴표 둘다 동일하게 사용)

 특이하게도 string을 곱셈할 수 있는데 "hippo" *3 하면

"hippohippohippo" 가 된다.

 

 list

 tuple(immutable), list(mutable) 두가지 형태가 built-in으로 존재한다.

 - 서로 형변환 할 수 있다.

 1. list

 - list[start_index : end_index] 라는 구역의 개념으로 slicing과 replacing이 가능하다

 - list의 요소를 쉽게 찾아볼 수 있다.

    ex) if a in some_list:

 2. tuple

 - return 인자가 여러개 일때 이 형태로 보내주는 것이고 이렇게 Unpacking이 쉽다.

 Linked-list가 속도가 낫냐 Array-list가 낫냐 같은 결정은 그리 중요하지 않다는 뜻인가 보다...

 Set

 set 라는 명칭으로 built-in 되어 있다.

 list처럼 for 문을 돌 수 있다.

 ex) for item in set:

 이제 어떤 Set을 쓰느냐는 중요하지 않은 것이다...

 Map

 dictionary 라는 명칭으로 built-in 되어 있다.

 list처럼 for 문을 돌 수 있다.

 ex) for item in set: >> key가 하나씩 된다.

 이제 어떤 Map을 쓰느냐는 중요하지 않은 것이다...



3. Built-in Method:  built-in method로 대부분 해결이 된다.

 의미

 Python

 비고

 length

 len(): 문자열의 길이, 배열의 길이 등을 잰다

 

 type check

 type(): 자료형 type을 본다

 

 type casting

 int() 등: 자료형을 casting하고 string -> int 같은 변환도 담당한다.

 

 String 변형

 String 내부 method도 있으니 찾아서 활용하면 된다.

 - .count([찾을단어]): 찾을단어가 몇번 들어갔는지...

 - etc...

 https://docs.python.org/3/library/stdtypes.html#string-methods

 List에서 max/min 값 찾기

 max() / min()

 

 정렬

 sorted()

 Quick, Merge, Bubble 뭐 이런건 의미 없구나...

 string 배열 하나로 합치기

 [join 할때 사이에 들어갈 string].join([join시킬 string 배열])

 ex) "-".join(["This", "is", "Sparta"])

      This-is-Sparta

 - 배열에 int 같은거 들어가 있으면 오류남. string-only list

 Java에서는 StringBuilder로 해결했던 편...

 string에 단어 첫글자 대문자로 변경

 [space가 들어간 string].title()

 ex) "first last".title()

       First Last

 



4. 조건문, 반복문, brace: 이것은 예제를 보는것이 낫다.

 의미

 Python 

 Java

 brace

 특정 조건에 대한 ":" 그 밑의 탭(Indentation) 들어간 것으로 구분

 {}로 묶음

 if

 if [조건]:

 if ([조건])

 for

 for item in input_list:

 for i in range(100):

 for each 처럼 쓰거나

 for (int i = 0; i < 100; i++) 처럼 쓰거나...




Reference:

- Introduction to Python: https://www.udacity.com/course/introduction-to-python--ud1110


+ Recent posts