본문 바로가기

python/uncategorized18

py를 exe로 바꾸는 건 비효율적인 것 같다. 창 아래에 Ready{프로그램을 실행시킨 시간(초)}를 표시하는 파이썬 코드를 만들었다. 그 외엔 아무 기능도 없다. asdf.exe는 그 파이썬 코드를 하나의 exe 실행 파일로 만든 것이다. 크기는 22MB이다. 그리고 실행할 때 7초 정도 걸린다. ​ 마인크래프트 스킨을 만드는 프로그램인 MCSkin3D는 모든 파일의 용량을 다 합해도 8MB이다. 그리고 실행할 때 4초 정도 걸린다. ​ 아무리 봐도 py를 exe로 만드는 건 비효율적인 것 같다. 배포판을 만들려면 다른 언어를 배워야 할 필요가 느껴진다. 그게 아니면 모든 사람의 컴퓨터에 파이썬을 깔든지... 2021. 4. 18.
python path 환경 변수 편집 C:\python39랑 C:\python39\Scripts는 파이썬 설치할 때 path 등록 옵션에 체크하면 자동으로 등록되는 거고 C:\python39\Lib는 Pylance가 pip로 설치한 모듈을 인식을 못 했을 때 등록해 주면 된다. 2021. 4. 18.
반복에 대한 효율성 비교 a라는 함수를 5번 반복하고 싶을 때. a() a() a() a() a() for x in range(5): a() for x in [0]*5: a() 이렇게 세 가지 방법이 있다. 두 번째 방법이 압도적으로 많이 쓰일 것이고 세 번째 방법은 아마 나 말고 아무도 안 쓸 것 같다. 그런데 글자 수를 비교해보면, range(5)를 쓰는데 8글자를 써야 하는 반면, [0]*5를 쓰는데는 5글자가 끝이다. [0]*5에 띄어쓰기를 포함해서 [0] * 5 로 쓴다고 하더라도 7글자여서 여전히 range(5)보다 짧다. 물론 for문의 x가 index를 의미해야 하는 상황이라면 당근빠따로다가 두 번째 방법을 채택하는 게 맞겠지만 그냥 단순히 5번 반복만 하고 싶으면 세 번째 방법을 쓰는 것이 글자 수를 조금이라도 .. 2021. 4. 18.
fstring과 %의 효율성 비교 a = 1 f'{a}' # 6글자 '%s'%a # 6글자 b, c = 2, 3 f'{b}{c}' # 9글자 '%s%s'%(b,c) # 12글자 d, e, f = 4, 5, 6 f'{d}{e}{f}' # 12글자 '%s%s%s'%(d,e,f) # 16글자 결론. 어떤 상황에서든 fstring이 더 좋다. (물론 무엇을 쓸지는 자기 맘임) 2021. 3. 14.
python 여러 변수 형 변환하기 여러 변수 형 변환하는 방법 a = '1' b = '02' c = '003' d = '-0004' e = '+0005 ' f = ' -06 ' A. 쉬운 방법 (줄을 많이 차지해서 불편하다.) a = int(a) b = int(b) c = int(c) d = int(d) e = int(e) f = int(f) B. 단순한 방법 (int라는 글자가 반복되니까 불편하다.) a, b, c, d, e, f = int(a), int(b), int(c), int(d), int(e), int(f) C. 복잡한 방법 (가장 불편하다.) [[a, [b, c], d, e], f] = [[int(a), [int(b), int(c)], int(d), int(e)], int(f)] D. 짧은 방법 (현재까지는 이게 가장 맘에 .. 2021. 2. 18.
python stringtobinary binarytostring def stringtobinary(string): stringe = string.encode() bins = [] for x in stringe: binx = bin(x) binx = binx[2:] binx = binx.zfill(8) bins.append(binx) r = '' for b in bins: r += f'{b} ' r = r.rstrip() return r def binarytostring(binary): binarys = binary.split() ints = [] for b in binarys: ints.append(int(b, base=2)) bs = bytearray(ints) return bs.decode() a = stringtobinary('나는 사람입니다 im person'.. 2020. 11. 29.
exit()도 raise한다 exit()는 그냥 파이썬 프로세스를 종료시키는 것이 아니라 SystemExit(code)라는 예외를 발생시킨다. 따라서 try except 구문에서 try에 exit()를 쓰면 예외가 발생했다고 인식하고 except에 있는 코드가 실행된다. exit()가 작동했을 때 바로 프로세스가 종료되도록 하려면 except에서 SystemExit 예외만 따로 처리해주면 될 것 같다. 2020. 11. 14.
for 문 형식 ■ for 문 형식 for i in 리스트: 예를 들어, for i in [1,2,3,5,6,100]: 사실 list 뿐만 아니라 dict, set, str, bytes, tuple, range 등 모든 iterable한 타입은 가능하다. 2020. 11. 6.