숫자형이란? 숫자 형태로 이루어진 자료 형태
정수형이란? 말 그대로 정수를 뜻하는 자료형
EX. a=1, a=355
소수점이 포함된 숫자
EX. a=1.23, a=-9.7
엑셀을 하다보면 8e10 이런 걸 볼 수 있는데 8 * 10^10이었다
이제 알다니..
0o가 8진수 0x가 16진수..
그냥 그렇다고 알고 넘어가자잇
복소수를 쓸 때 i를 썼던 기억이 있는데, 파이썬은 j를 쓴다고 한다.
EX. a=7+6j, b=8-6j
a= 1+2j 일 때,
a.real = 1.0 (실수 리턴)
a.imag = 2.0 (허수 리턴) -> image 아니다 실수 ㄴㄴ
a.conjugate = 1-2j (켤레복소수 리턴)
켤레복소수 ㅋㅋㅋㅋ 공업수학 이후로 오랜만에 듣는다
a**b : a^b
a//b : a/b의 몫만 출력
문자열이란? 문자, 단어 등으로 구성된 문자들의 집합, ""로 구성되어있으면 다 문자열
문자열 사용 방법은 '', "", """ """, ''' ''' 총 4가지가 있다
Python's favorite food is perl 이라는 문구가 있다.
이걸 문자열로 저장하고 싶다면
a = "Python's favorite food is perl" 가 되어야 한다.
이미 문장안에 '가 있기 때문에 '를 쓰면 'Python'에서 문장이 완성됐기 때문이다.
실제로 코딩해보면 invalid syntax error라고 문구가 뜬다
작은 따옴표가 있다면 큰 따옴표를 쓴다는 건데..
아! 그러면 큰 따옴표가 있다면 작은 따옴표를 써야겠네? 라고 눈치껏 알게 되는 것이다.
역슬레시를 따옴표들 앞에 삽입하면 문자 그 자체로 나타나게 된다는 것인데..
\ 요게 은근 사람 헷갈리게 한다
그냥 큰 따옴표는 작은 따옴표로, 작은 따옴표는 큰 따옴표로 쓰자
문자열이 당연히 한 줄만 될리는 없다
RollinRollin
We ride
이렇게 두 줄 짜리 문장이 있다고 가정하자
이럴 경우 두 가지의 방법으로 나타낼 수 있는데.
일단 에스케이프 코드가 뭔데? 프로그래밍할 때 사용할 수 있도록 미리 정의해둔 문자조합...
유명한 \n, \t 이런 게 이스케이프 코드다
a= "RollinRollin \n We ride"
이렇게 쓴다고 하는데.. \n 이런 게 은근 사람 헷갈리게 한다
그래서 그걸 보완한 다른 방법이 있다고 한다
아니 글자에 색상넣을 때 html처럼 작성하고 css줘야하네 ㅋㅋㅋ
그냥 간단하게
a='''RollinRollin
We ride
''' (혹은 """ """)
이렇게 하면 된다는 것이다
근데 만약 ''' """ 혹은 """ ''' 이렇게하면 어떻게 될까해서 봤더니
EOF while scanning triple-quote...
말 그대로 인용구3개 스캔 중 에러났다 다시 쓰란뜻이다
문자열 끼리 더하기, 곱하기가 되는데
a="Brave"
b="Girls" 라면,
a+b = BraveGirls가 되고
a*2+b = BraveBraveGirls 가 된다.
더하기는 문자열 그대로 합쳐서, 곱하기는 중복해서 나오게 해라.. 이뜻이다
인덱싱이란 무언갈 가리키다, 슬라이싱은 무언갈 잘라낸다라는 의미라고 한다
그러면 넥 슬라이싱은...? 오우야;;
a="Brave Girls - Rollin" 일 때,
a[3] = Brav 를 거치며 v가 된다
만약, a[5]는 뭘까? 공백을 제외하고 Brave G 를 거쳐 G가 되어야 하나?
아니다 공백도 세기 때문에 빈칸이 출력된다.
이처럼 0부터 세고 공백도 포함하여 값을 추출한다.
그런데 마이너스 들어가면 어떻게 되나?
a[-1]=n 이 나온다.
아, 마이너스는 역주행이겠구나
Brave Girls - RollinBrave Girls - Rollin 이런식으로 양옆으로 이어져있겠구나 알 수 있다
'Brave'만 추출하려면 a[0]+... 이걸 다 써야한다
이게 너무 귀찮아서 나온 게 슬라이싱이다
a[0:5] 이렇게해서 범위를 정해주는데 이상~미만 이다
자칫 잘못하면 이상한 값 나올 수 있으니 잘 기억하고 있자
추가로, a[x:] = x이상부터 끝까지가 되고 a[:y]는 처음부터 y미만, a[:]는 첨부터 끝까지
문자열 포매팅이란? 문자열 내에 어떤 값을 삽입하는 방법이다.
숫자 바로 대입, 문자열 바로 대입 이런 게 있는데 프로그래밍하는 사람이 변수 선언해서
그 때 마다 로테이션 돌려야지 무슨 직접 대입하는가
a=10
b="x"
c="num is %s, string is %s" %(a,b)
이렇게 쓰도록 하자
만약 퍼센트로 나타내고 싶다면 %s%% 이렇게 %%라고 써야 한다
a='xyz'
b='1'
c=b.join(a)
print(c)
하면 xyz사이에 1을 넣겠다라는 뜻이어서 x1y1z이 되고
a='xy z'
b='1'
c=b.join(a)
print(c)
하면 yz사이에 공백이 있어서
x1y1 1z가 된다
lstrip은 가장왼쪽의 공백을 모두 지움, 그럼 r은 반대일테고..
strip은 양 옆 공백을 모두 지운다고 한다
이건 sql에서도 꽤나 유용하게 쓰고 있다
replace('a','b')를 하면 a를 b로 바꾸겠다는 뜻
문자열 나누기인데
split()는 공백을 기준으로 나눈다
a='xy z'
b=a.strip()
print(b)
하면 xy z가 되고
만약
a='xyp123pz'
b=a.split('p')
print(b)
를 하면 ['xy', '123', 'z']가 된다
아 split안에 문자열을 넣으면 그 문자열 기준으로 나눠지고 걔는 표기 안되는구나!
여기까지 2-2/2-3 오늘 할당량이고 다시 한 번 읽어보고 내일 출근길에 봐야겠다