파이썬이 굉장히 쉽다고 합니다.. C를 한학기 배워본 입장에서 인정하고 또 인정합니돠
한줄 주석
# 이렇게
여러줄 주석
'''
이렇게
'''
파이썬 코드는 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 널 | \\ \ | \' ' | \'' "
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}'
False
로 반환되는 것
0, 0.0, (), [], {}, '', None
나머지는 모두 True
파이썬에서 데이터타입은 서로 변환할 수 있습니다.
암시적 형변환 : 파이썬이 내부적으로 형변환 하는 경우
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를 문자열로 변환
연산자 | 내용 |
---|---|
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
// | 몫 |
% | 나머지(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