Python 01 Syntax

hsngju·2020년 8월 15일
0

python

목록 보기
1/6
post-thumbnail

[출처](xkcd 353화 'Python')

파이썬이 굉장히 쉽다고 합니다.. C를 한학기 배워본 입장에서 인정하고 또 인정합니돠

기초문법(Syntax)

주석 (comment)

한줄 주석

# 이렇게

여러줄 주석

'''
이렇게
'''

코드라인

파이썬 코드는 1줄에 1문장 원칙

변수

할당 연산자 =를 통해 변수에 데이터 할당 //

type():변수의 타입 확인

id(): 해당 변수의 메모리 주소 확인

val = 2
type(val) #int
id(val) # 31495124..

데이터 타입

숫자

  • int :정수

    파이썬은 오버플로우가 없다! (arbitrary-precision arithmetic : 파이썬에서 아주 큰 정수를 표현할 때 사용하는 메모리의 크기 변화)

  • float:부동소수점,실수

    부동소수점은 미세하게 차이가 발생함.. 컴퓨터는 거짓말하지 않지만 이건 오류가 발생하네요...

    a = 3.5 - 3.12
    b = 0.38
        
    a==b # False

    True가 나오게 하는 법

    abs(a-b) <= 1e-10
        
    import sys
    abs(a-b) <= sys.float_info.epsilon
        
    import math
    math.isclose(a,b)

문자

기본활용법

name = 'sj'

이스케이프 시퀀스

\n 줄바꿈 | \t 탭 | \r 캐리지리턴|

\0 널 | \\ \ | \' ' | \'' "

string imterpolation

name = 'sj'

print('%s' % name)
print('{}'.format(name))
print(f'{name}') #가장 직관적이긴 하다
# f-string 심화
import datetime
today = datetime.datetime.now()
f'오늘은 {today:%y}{today:%m}{today:%d}{today:%A}'
pi = 3.141592
f'원주율은 {pi:.4}. 반지름이 2일때 원의 넓이는 {pi*2*2}'

참/거짓 (Boolean) 타입

False 로 반환되는 것

0, 0.0, (), [], {}, '', None

나머지는 모두 True

형변환(Type conversion)

파이썬에서 데이터타입은 서로 변환할 수 있습니다.

  • 암시적 형변환 : 파이썬이 내부적으로 형변환 하는 경우

    int_number = 3
    float_number = 5.0
    True +3
  • 명시적 형변환 : 위 상황을 제외하고는 모두 명시적으로 형 변환을 해주어야합니다.

    int() : string, float를 int로 변환

    a='1'
    int(a)  # 가능
    a='hi'
    int(a)  # 불가능
    a='3.5'
    int(a)   # 불가능

    float(): string,int를 float로 변환

    str() : int,float,list,tuple,dictionary를 문자열로 변환

연산자(Operator)

사칙연산자

| 연산자 | 내용 |
| --- | --- |
| + | 덧셈 |
| - | 뺄셈 |
| * | 곱셈 |
| / | 나눗셈 |
| // | 몫 |
| % | 나머지(modulo) |
| ** | 거듭제곱 |

나눗셈 (/) 은 항상 float를 돌려준다.
정수 나눗셈 으로 (소수부 없이) 정수 결과를 얻으려면 // 연산자를 사용한다.

print(5 / 2)
print(5 // 2)
print(int(5 / 2))
print(5 % 2)
2.5
2
2
1
print(divmod(5, 2))
quotient, remainder = divmod(5, 2)
print(f'몫은 {quotient}, 나머지는 {remainder}')
(2, 1)
몫은 2, 나머지는 1

비교연산자

우리가 수학에서 배운 연산자와 동일하게 값을 비교할 수 있습니다.

| 연산자 | 내용 |
| --- | --- |
| < | 미만 |
| <= | 이하 |
| > | 초과 |
| >= | 이상 |
| == | 같음 |
| != | 같지않음 |
| is | 객체 아이덴티티 |
| is not | 부정된 객체 아이덴티티 |

'HI' == 'hi'  #False

논리 연산자

| 연산자 | 내용 |
| --- | --- |
| a and b | a와 b 모두 True시만 True |
| a or b | a 와 b 모두 False시만 False |
| not a | True -> False, False -> True |

우리가 보통 알고 있는 & |은 파이썬에서 비트 연산자입니다.

  • 단축평가라는 게 있어요

    첫 번째 값이 확실할 때, 두 번째 값은 확인 하지 않음
    조건문에서 뒷 부분을 판단하지 않아도 되기 때문에 속도 향상

    'a' and 'b' # 'b'
    'a' or 'b' #'a'
        
    vowels = 'aeiou'
    ('a' and 'b') in vowels  # False
    ('b' and 'a') in vowels  # True

    and 는 둘 다 True일 경우만 True이기 때문에 첫번째 값이 True라도 두번째 값을 확인해야 하기 때문에 'b'가 반환된다.
    or 는 하나만 True라도 True이기 때문에 True를 만나면 해당 값을 바로 반환한다

복합 연산자

복합 연산자는 연산과 대입이 함께 이뤄집니다.
가장 많이 활용되는 경우는 반복문을 통해서 개수를 카운트하거나 할 때 활용됩니다.

+= -= ... **= 이런것들

cnt = 0
while cnt < 5:
    print(cnt)
    cnt += 1   # cnt = cnt+ 1 이것과 같은 말이다

연산자 우선순위

()을 통한 grouping
Slicing
Indexing
제곱연산자 **
단항연산자 +, - (음수/양수 부호)
산술연산자 *, /, %
산술연산자 +, -
비교연산자, in, is
not
and
or

profile
기록하는 습관은 쉽게 무너지지 않아요.

0개의 댓글