놀랍게도... 파이썬에서는 허수까지 있다고 함!!!
숫자의 종류는 세가지로 정수(int), 실수(float), 허수(complex) 이렇게 3가지이고 허수를 표현할 때는 4+2j처럼 표현하면 된다
수학에서 썼던 i대신 j!!
*참고로 파이썬에는 double이 없고 float만 있다
...이거 꼭 외워야할듯
>>> type(273)
<class 'int'>>>> type(10.4)
<class 'float'>
>>> type(32+4j)<class 'complex'>
type()함수를 쓰면 매개변수의 자료형을 알 수 있다~~
숫자에 쓸 수 있는 연산자는 뭐 특별한게..없다!
다른 언어랑 비슷하게 + - * / %를 쓸 수 있고
좀 다른 점이 있다면 **이다!!
**은 제곱이애~~
이거는 실습을. 직접. 해보겟음.
>>> 2 ** 5
32
>>> 3 ** 7
2187
>>> 10 ** 3
1000
밑을 ** 앞에 지수를 ** 뒤에 쓰면 됨
5의 3제곱을 하고 싶다!하면
5 ** 3
~~~
이 끝인줄 알았는데 아니였다
책을 보니.. 처음보는 // 연산자가 있었고
//로 연산한 값이 정수라는 사실 ㅇㅁㅇ!
/로 연산한 값은 다른 언어랑은 다르게 실수형으로 나오고 //로 연산한 값은 java나 C처럼 정수형으로 나오는 연산자임
실습~~~
>>> 10 / 3
3.3333333333333335
>>> 10 / 2
5.0
>>> 10 // 3
3요
이거는... 특별한게 없는게 확실!!
그냥 수학이랑 똑같우~~
() 안에 있으면 우선순위가 올라가고 문자열도 똑같이 적용된다 정도만 짚고 넘어가면 될듯
서로 다른 자료형을 연산시키려고 하면 발생하는 에러인데 실습이...짱인듯
>>> "문자" + 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> "문자" - 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'
>>> "문자" / 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'int'
>>> "문자" % 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
>>> "문자" * 2 #유일하게 오류 안 남
'문자문자'
변수 개념은....이미 알고 있긴 하지만 착실하게 강의를 본 나~~~ 굿맨
변수는 값을 저장하는 공간으로 봐야함!
선언할 때는 !자료형 없이!
변수명 = 값
으로 하면 된다긔
pi = 3.14
..그리고 나름 충격적이였던 거
그냥 변수만 입력했는데 그 변수가 출력이 됨
>>> pi = 3.14
>>> pi
3.14
ㅇㅁㅇ!!!!! 근데 이건 그...터미널?...(저번주에 넘 대충햇나?) 터미널에 python쳐서... 엉 그 상태에서만 되는 거 같음 파이썬 파일에 pi 변수 선언, 초기화해놓고 pi만 덜렁 써두니까 아무 일도 안 일어남
복합 대입 연산자! 알고 있는 개념이라.. 빠르게 훑겠음
ㅇㅁㅇ..ㅠㅠ 훑을 것도 없음
오늘 새로 본 개념은 **= 이거?..정도
a += 10을 풀어서 보면 a = a+10
꺅! 드디어 함수><
라고 생각하고 강의 봤는데 살짝 벙찜
실습을...해보자해보자
a = input(">>>")
아하하 이렇게 하면 실행했을때 >>> 뒤에 입력할 수 있는 거고
a = input("입력 : ")
이렇게 하면 입력 : 뒤에 입력할 수 있는 거였음!!
완전...완전 짱 좋은데?...
그동안 자바로 입력받을때..~어~~
syso하고 ln 꼬옥 지운 다음에
Scanner 썼던 내가 생각나고 그러넹..
씨언어는 특히 문자열 입력받기 넘 번거롭
a = input("")
a = input()
위처럼 하면 그냥 아무것도 없고 바로 입력하면 되는거!!!
그리고 중요한 거!(인지는 모르겠지만 내가 모르는 거라서 중요함)
input은 들어온 모든 것들을 str 자료형으로 보기 때문에, 숫자를 넣어도 문자열로 저장됨!
a = input("입력 : ")
print(type(a))
#결과
입력 : 4
<class 'str'>
자아...그러면 이제 숫자를 숫자 자료형으로 받는법!
그냥 input()을 해당 자료형으로 감싸주면됨!
a = int(input())
b = float(input())
print(type(a))
print(type(b))
#결과
<class 'int'>
<class 'float'>
형변환하고 싶을때도 int() float() str()하시면 됨
a = int(input())
a = float(a)
print(type(a))
#결과
<class 'float'>
그리고 나 혼자 조심해야될거!!
float(a)
지민양.. 저렇게 쓰시면 절대 아니아니됨
꼭 형변환한 변수 안에 넣어주기!
ㅠ..그리고 chr()는 왜....대체 니가 뭔데 안 되는지 모르겠음
차차 알아갈 수 있을 거라 생각하기 때문에ㅋ 일단 이 의문은 고이 접어두겠음..헤헤 아 이런 태도 안 되는데^ㅁ^
swap 개념! 여기서도 만나다니 반가우><
씨언어에서 swap 할때 선생님이 파이썬에서는
되게 간단하게 할 수 있다고 파이썬 코드 보여주신 적 있었는데...휴 넘 반가움
a,b = b,a
반가워><@ 하지만 튜플?ㅋ 아직 모르는 개념이애. 미래의 내가 이해해줄겅미!
흑....처음 보는 개념 등장
ㅇㅁㅇ!근데 이게 무슨 해괴망측한 형태임?
"{} {} {} {}".format(1, 2, 3, 4)
는 순서대로 '1 2 3 4'가 입력되고
"{}년 {}월 {}일 {}요일".format( 2022, 1, 23, "일")
'은 2022년 1월 23일 월요일'이 된다리..??
씁..아직은 이게 왜 필요한지 모르겠음 킵고잉
근데 자주 쓰는 거라고.....하시네
format!기억하긔
+아하핫. 105p 마무리 보고 다시 돌아옴
씨언어에 printf("%d %d %d", 1, 2, 3);처럼 봐주면 될 거 같음 %d 대신 {}!로 생각하니까 이해됨
그리고 Traceback error는 {} 개수와 매개변수 개수가 안 맞으면 난다는거! 눈도장 찍으라하심!!! Traceback~~
이거는 넘어가라고 하셔서 그냥 책 한 번 훑었는데 걍.. printf아닌교? 한 번 자세히 봐보겠음
음 내가 몰랐던 개념이 있긴 한데 printf랑 많이 비슷한 거 같음 씨언어랑 비교해보자면
int a = 5;
printf("%d", a);
에서 "%d"는 파이썬에서 "{:d}"로 보면 될 거 같고 a는 위에 초기화한 거랑 합쳐서 .format(5)로 보면.. 될듯? 아닝가?ㅋ
위에 쓴 씨언어 코드를 파이썬으로 바꾸면
"{:d}".format(5)
인듯 싶습니당><!!
d 앞에 숫자 붙으면 그 숫자만큼 글자수가 되게 앞에 공백 찍히고 그 숫자 앞에 0이 붙으면 공백 대신 0이 찍힘!
"{:4d}".format(5)
#결과
5 #전체 글자수 4개, 공백 3개
"{:04d}".format(5)
#결과
0005 #전체 글자수 4개, 0 3개
0 대신 다른 숫자나 문자는 못 넣음!
다른 방법으로 넣을 수 있을지는 모르겠지만 일단 기본적인 문법에서는 불가능함
그리고 앞에 0으로 채우는게 양수랑 음수랑 좀 다른듯
음수는 -다음에 0이 나오는데 -가 글자수에 포함됨
"{:04d}".format(5)
#결과
0005 #전체 글자수 4개, 0 3개
"{:04d}".format(-5)
#결과
-005 #전체 글자수 4개, - 1개, 0 2개
근데 이제 이거 혼자 책보고 하려면
머리 터질 거 같아서+시간 너무 많이 걸려서
여기까지만 맛보고 끝내겠음..헤헤 다음으로 넘어갈게여
안녕.. 엑셀 생각나는 함수들이네
"Hello".upper()
"Hello".lower()
.upper()은 다 대문자로 만들고
.lower()은 다 소문자로 만드는 함수
" 문자 ".strip()
#결과
'문자'
왼쪽의 공백만 지우고 싶으면 lstrip
오른쪽의 공백만 지우고 싶으면 rstrip
" 문자 ".lstrip()
#결과
'문자 '
" 문자 ".rstrip()
#결과
' 문자'
눈으로만 확인하라셔서 타이핑을 해보겟습니다..
isalnum() isalpha() isidentifier() isdecimal() isdigit() isspace() islower() isupper()
얘는 결과값이 True나 False로 나온다리
"가나다라마바사".find("라")
#결과
3
find() 매개변수에 있는 글자가 왼쪽에서부터 몇번째에 있는지 출력! 숫자로 결과를 알려줌~~
오른쪽에서부터 세주는 건 rfind() 함수
이게 뭥미?
"가" in "가나다라마"
in 앞에 있는 "가"가 in 뒤에 있는 "가나다라마"에 있냐고 물어보는 겅미! 결과는 True나 False로 나오밍
"10 20 30 40 50".split(" ")
#결과
['10', '20', '30', '40', '50']
우웅...내가 리스트랑 튜플 강의를 뛰어넘었나?...라는 합리적 의심을 했는데 다행히 아직 안 배운 거였다 ㅎ
하.. 그냥 뭔가 세상이 많이 좋아졌다싶은 함수 ㅋ
ㄴ님 프로그래밍 문법 배운지 1년도 안 됐는데
공백으로 자르고 싶다!하면 매개변수에 " "넣고
온점으로 자르고 싶다!하면 매개변수에 "." 넣으시면 되는!
"10.20.30.40.50".split(".")
['10', '20', '30', '40', '50']
물론 온점은 사라짐
하...드디어 챕터3
불은 Boolean을 뜻하는 단어!라긔
불이라 부르는 건 처음 알았네...
맨날 불리언불리언거리고 다녔었음 헤헷
True와 False~가 있습니다
true와 false는 Boolean으로 안 봄
비교 연산자의 값이 True와 False임!
비교 연산자에는
\==
!=
<
>
<=
>=
이 있고 파이썬에서는 놀랍게도...
x = 5
3< x <7
이게 된다..ㄷㄷ
자바 처음 배울때 애들 다 저렇게 하다가 안 돼서
&& 붙였던 거 생각난다리
not, and, or이 있음!
not은 그냥. 반대~반대~임
not True는 False
not False는 True
and는 조건 다 True여야 True
True and True #True
True and Flase #False
False and Flase #False
or는 조건 중 하나라도 True가 있으면 무조건 True
True or True #True
True or False #True
False or False #False
파이썬에는 &, &&, |, || 연산자가 없는듯..ㅠㅠ
if문은 어떻게 생겼냐면
if 조건 :
이렇게 생겼우~~
{}는 따로 없고 띄어쓰기로 if 명령문이 어디까지인지 알 수 있음
if True:
print("참")
오전과 오후를 구분하는 프로그램!
책에 있는 코드를 따라서 쳐보고 실행해봤음
import datetime
now = datetime.datetime.now()
#오전 구분
if now.hour < 12:
print("현재 시각은 {}시로 오전입니다!".format(now.hour))
#오후 구분
if now.hour >= 12:
print("현재 시각은 {}시로 오후입니다!".format(now.hour))
짝수와 홀수 구분하는 프로그램
number = int(input("정수 입력> "))
last_character = number[-1]
if last_character == 0 \
or last_character == 2 \
or last_character == 4 \
or last_character == 6 \
or last_character == 8 :
print("짝수입니다.")
한줄의 코드인데 엔터쳐서 넘기고 싶으면 끝에 역슬래시()를 꼬옥 붙여주면 되
if last_character in "02468":
print("짝수입니다.")
if last_character % 2 == 0:
print("짝수입니다.")
이렇게도 된다는~~
in 연산자 쓰는 건 자꾸 못 떠올리는 거 같음..
in 연산자 더 연습!!!!!해ㅐ야해!!!!!!
if 조건 :
@@@
else :
@@@
if 조건 :
@@@
elif 조건 :
@@@
elif 조건 :
@@@
else :
@@@
짚고 넘어가야되는 건 이미 위에 조건에서 걸러진 애들은
밑에 elif 조건에서 위에 조건을 또 번복서 조건을 써줄 필요가 없다는 거!
0, ""는 False로 변환됨
그냥 비어있는 건 다 False!!
아무 의미는 없지만 미래에 어떤 코드를 넣을 건데?! 아직은 안 쓴 상태인데?! 컴파일 에러가 나니까?! pass를 명령문 대신 쓰는 거!
if True == 0 :
#뭐 들어갈 거임
else:
#뭐 들어갈 거임
이렇게 쓰면 전체를 주석처리하지 않는 이상 에러가 나니까
if True == 0 :
pass
else:
pass
pass를 써서 모양은 잡아두기 위해 씀
str_input = input("태어난 해를 입력해 주세요>")
birth_year = int(str_input) % 12
if birth_year == 0:
print("원숭이 띠입니다.")
elif birth_year == 1:
print("닭 띠입니다.")
elif birth_year == 2:
print("개 띠입니다.")
elif birth_year == 3:
print("돼지 띠입니다.")
elif birth_year == 4:
print("쥐 띠입니다.")
elif birth_year == 5:
print("소 띠입니다.")
elif birth_year == 6:
print("범 띠입니다.")
elif birth_year == 7:
print("토끼 띠입니다.")
elif birth_year == 8:
print("용 띠입니다.")
elif birth_year == 9:
print("뱀 띠입니다.")
elif birth_year == 10:
print("말 띠입니다.")
elif birth_year == 11:
print("양 띠입니다.")
결과
태어난 해를 입력해 주세요>2006
개 띠입니다.
2주차는 나름 개념 정리해가면서 열심히 썼는데 이렇게 해야 머리에 오래 남는듯..~ 벼락치기는 역시나 무리였고. 4시간 동안 계속 노트북 앞에서 머리쓰는 일은 꽤나 힘들었다......리...... 특히 강사님이 넘어가도 된다고 했던 부분!!!! 씨언어랑 비슷하다고 혼자 이것저것해봤던거 넘 힘들었우....휴휴휴 다음주엔 분량 나눠서 매일매일 조금씩 공부해야겠당~~~ 그래도 공부는 꽤나 재밌는....굿굿