본문 바로가기

프로그래밍/Python

(96)
[Python] 2117658/8642334 와 연분수표현 2117658/8642334 각 디지트의 연분수꼴의 값이 같다는 신기한 글을 봐서 파이썬으로 계산을 해 봤다. >>> from fractions import Fraction >>> l1 = list(map(int, "2117658")) >>> l2 = list(map(int, "8642334")) >>> def frac(l1, l2): if len(l1) == 1: return Fraction(l1[0], l2[0]) return l1[0]/(l2[0] + frac(l1[1:], l2[1:])) >>> frac(l1, l2) Fraction(37, 151) >>> Fraction(2117658, 8642334) Fraction(37, 151) 이런 꼴의 결과를 주는 다른 숫자도 찾아보고 싶네.
[Python초보] ValueError: invalid literal for int() with base 10: '' invalid literal for int() with base 10: '' 10진수 int() 로 변환할 수 없는 문자열: '' 이라는 뜻입니다. 한번 이 에러를 만들어 봅시다. >>> num = int("1000") >>> num 1000 "1000" 이라는 문자열을 숫자형으로 변환하여 num 이란 변수에 넣는 코드입니다. "1000"이라는 문자열은 정수를 나타내는 문자열이기 때문에, 문제없이 변환됩니다. >>> s = "abc" >>> num = int(s) Traceback (most recent call last): File "", line 1, in num = int(s) ValueError: invalid literal for int() with base 10: 'abc' "abc" 라는 문..
[Python] 십진수소수 이진수로 변환하기 십진수 정수를 이진수로 변환하는 것은 파이썬이 기본으로 제공하는 bin 함수를 사용하면 된다. 소수점 이하 자릿수를 포함한 십진수를 이진수로 표현하는 함수를 만들어 보았다. 입력을 float 으로 변환하면, 부동소수점 오류로 정확한 계산이 불가능하다. 분수를 다룰 수 있는 fractions 모듈을 이용하여 정확하게 소수점 아래까지 구할 수 있다. 순환마디까지 구할 수 있는데, 일단 무시하고 30자리까지 구하는 걸 구현했다. from fractions import Fraction def conv2bin(s): x = Fraction(s) x1 = x//1 x2 = x - x1 digits = [] tail = "..." for _ in range(30): if x2 == 0: tail = "" break ..
Flask ImportError: cannot import name 'soft_unicode' from 'markupsafe' visual studio 2019 로 기본 flask 프로젝트를 생성했다. 가상환경을 python 3.9 기반으로 만들고 (비주얼 스튜디오는 자동으로 flask 패키지까지 생성한 가상환경에 깔아준다.) 녹색 플레이버튼을 눌러서 실행해 보려 했다. 비주얼 스튜디오는 아주 간단한 플라스크웹앱을 기본으로 만들기 때문에, 실행하면 기본 브라우저가 실행되면서, 프로젝트가 만드는 웹사이트의 홈화면이 나와야 한다. 하지만, 에러가 발생하면서, 이 과정이 실패했다. Traceback (most recent call last): File "", line 1, in File "C:\Users\me\source\repos\FlaskWebProject1\env\lib\site-packages\flask\__init__.py"..
pyupbit WebSocketClient 예제코드를 실행할 때, TypeError: 'async for' requires an object with __aiter__ method, got Connect pyupbit 의 WebSocketClient 예제를 한번 실행해 보았다. 예제는 https://wikidocs.net/168437 에 있는 가장 간단한 예제이다. import multiprocessing as mp import pyupbit if __name__ == "__main__": queue = mp.Queue() proc = mp.Process( target=pyupbit.WebSocketClient, args=('ticker', ["KRW-BTC"], queue), daemon=True ) proc.start() while True: data = queue.get() print(data) 실행해 보았는데, 에러가 발생하였다. 에러는 다음과 같다. self._target(*self._args,..
파이썬 베쎌함수 그래프 그리기 from scipy.special import jv import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 30, 0.02) # https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.jv.html#scipy.special.jv ys = [ jv(i, x) for i in range(3) ] for y in ys: plt.plot(x, y) plt.grid() plt.show() 베셀함수 (Bessel Function) 은 파이썬의 scipy.special 모듈의 여러 특수함수들 중에 하나인 jv 함수로 제공된다. 위 코드를 실행하여 만들어진 그래프는 다음과 같다.
Geopy AttributeError: 'NoneType' object has no attribute 'latitude' 주소에서 위도와 경도를 가져오기 위해 geopy를 이용하는 코드에서 no attribute 'latitude' 에러가 발생할 수 있다. 코드를 보자. from geopy.geocoders import Nominatim def geocoding(address): geolocoder = Nominatim(user_agent="South Korea", timeout=None) geo = geolocoder.geocode(address) x_y = [geo.latitude, geo.longitude] return x_y for addr in ["강원 강릉시 해안로 1459", "강원 강릉시 초당순두부길 77번길 15"]: print(addr, geocoding(addr)) geocoding 함수는 사람들이 사용..
pandas ValueError: If using all scalar values, you must pass an index pandas 로 간단한 데이터프레임을 만들려고 했다. 코드는 다음과 같다. import pandas as pd df = pd.DataFrame({"name":"강수연", "sex":"F"}) 너무 간단한 코드이다. 데이터프레임 생성인자로 사전형식으로 데이터를 만들어 넘겼다. 아래와 같은 에러가 발생한다. Traceback (most recent call last): File "", line 1, in df = pd.DataFrame({"name":"강수연", "sex":"F"}) File "C:\PROGRAMS\Python3864\lib\site-packages\pandas\core\frame.py", line 614, in __init__ mgr = dict_to_mgr(data, index, colu..