Skip to content
Snippets Groups Projects
Commit 12655ff4 authored by 이종호's avatar 이종호
Browse files

Upload New File

parent 61739522
No related branches found
No related tags found
No related merge requests found
엑셀로 1900-01-01 을 숫자 형식으로 바꾸면 1이 됨, 2018-11-06 현재 43410 이 뜸
- 근데 1900-02-29 일이 실제로는 없는데, 엑셀에는 있는 버그가 있어서 43409 일이 실제 일수임.
기말 문제) 1900-01-01년부터 2018-11-06을 계산하는 프로그램을 짜시오 (python)
>>> 2018-1900
118
>>> 118*365
43070
>>> 118 // 4 # 윤년 계산, 나눗셈 몫 구하기
29
>>> 43070+29
43099
>>> 43099+31+28+31+30+31+30+31+31+30+31+6 #올해 날짜 더하기
43409
4년마다 윤년이지만, 100년마다 1번은 윤년이 아님, 400년에 한번은 윤년임
1900년은 윤년이 아니고, 2000년은 윤년이므로 -1과 +1이 서로 상쇄되어 위의 계산이 맞는 결과가 나옴(원래 1900에서 한번 빼주고, 2000에서 한번 더해주는 식으로 해야 정확)
>>> 118%100 // 나머지 계산
18
>>> 118.4 % 100.6
17.80000000000001 // 실제 17.8인데 0.00000000000001 이 floating point eroor(numerical error) 로 발생함
>>> 118.4 // 100.6 // 몫 계산
1.0
>>> 118.4 - 100.6
17.80000000000001 // 실제 17.8인데 0.00000000000001 이 floating point eroor(numerical error) 로 발생함
- numerical error 발생 이유 : floating point 는
기말 문제) 어떤 숫자를 써주고 2진수, 16진수, 8진수로 바꿔라
- 2진수에서 바꿀 때, 16진수는 4개씩 묶기, 8진수는 3개씩 묶기
>>> hex(2000)
'0x7d0'
>>> oct(2000)
'Oo3720'
>>> bin(2000)
'0b11111010000' # 이걸 16진수로 바꾸려면 4개씩 묶으면 됨, 8진수는 3개씩
'528' (따옴표)가 있으면 나오는 형태가 string인 것임
>>> a=0xFF
>>> a
255
기말 문제 : ?
>>> a=255
>>> hex(a)
'0xff' # ★따옴표가 무조건 나와야 함
>>> b=hex(a) # ★16진수로 표현된 숫자(X) 문자열(O)로 바꿔준다.
>>> type(b) # string 형임 (int, float 등이 절대 아님)
<class 'str'>
>>> c='0xfe'
>>> d=0xfe
>>> hex=400
>>> hex # 덮어씌워짐??
400
>>> a=0b100
>>> a
4 # 저장을 binary로 해도 출력할 땐 10진수
>>> b=22/7
>>> b
3.142857142857143 # 부동소수형은 소수점 이하 15자리만 표현
ㄴ 부동 소수형은 소수점을 움직여서 소수를 표현, 무조건. 8바이트(64비트)만을 이용하여 표현, 정밀도의 한계와 한정된 범위
>>> type(b)
<class 'float'>
부동 소수형 : IEEE 754 형식, 지수부(Exponent)와 가수부(Mantissa)로 구성
맨 앞은 Sign bit 1bit로 구성, 11bit 지수부, 52bit 가수부 => 총 64bit
------------# 복소수와 math모듈은 ppt04. 데이터다루기 - 19.20p 보기
>>> import math
>>> math.e
2.718281828459045
>>> math.sin(math.pi)
1.2246467991473532e-16 # 0.00000000000000012246~이므로 거의 0이나 다름없음, e는 10의 자릿수(10의 승수)라고 생각하면 됨
>>> abs(-10) # 절대값
10
★ 기말문제 -----------------------------------
>>> 192384
192384
>>> round(192384, -2) # 2번째 자리에서 올림, 근데 negative digits를 써줘야 하므로 -2 써줘야 함
192400
>>> a=2938928791
>>> (a//100)*100
2938928700
>>> (a+99)//100*100 # 올림이 됨
2938928800
>>> (a+50)//100*100 # 반올림일걸?
2938928800
--------------------------------------------------
>>> 3** 3
27
>>> import math
>>> math.pow(3,3)
27.0
- 22p~25p -
trunc(), factorial()함수, pow(), **, sqrt(),로그의 오류
26p.
유니코드는 1 or 2 or 4 byte임
영어,숫자 등은 1byte(맨 앞비트가 0으로 시작하면 1byte)
1로 바뀌면 2,4byte
10으로 시작하면 2byte (65362/4 = 약 12000자 표현 가능, 4로 나눈 것은 맨앞 2bit 고정이기 때문)
많이 쓰는 언어들은 대개 2byte 내
4byte는 이집트의 고대 부족 언어, 우리나라 고어 등 거의 안쓰는 언어
27p.
string 표현법 : '' , ''' ~~ ''' (중간에 엔터를 치더라도 문자열로 인식), """ ~ """ 도 마찬가지
>>> c='''안녕하세요
오늘은
날씨가
좋네요
'''
>>> c
'안녕하세요\n오늘은\n날씨가\n좋네요\n'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment