Algolia Indexing(인덱싱) 방법

사실상 개인메모입니다 ㅎ

Electron exe 파일 초간단 설치법

거두절미하고 설명합니다.

How to solve CMake error in Flutter

Error message generated after Visual Studio upgrade:

How to save Wikipedia document to local text file with Python?

Python is a programming language used in many fields such as web crawling.

How to show animated SVG icon in PyQt5

So, here we are. The second English post.

How to show basic window in PyQt5

Finally, first English post.

파이참(PyCharm) 프로젝트 파일 안보이는 문제, 설정 창 인터프리터 부분의 nothing to show 문제 해결하기

파이참을 사용하다가 가끔씩 난관에 부딪칠 때가 많은데요.

pip로 requirements.txt를 앳, file... 없이 가지런하게 만드는 방법

pip로 requirements.txt 앳(@), file… 없이 가지런하게 만드는 방법입니다.

CPU 잡아먹는 CompatTelRunner.exe이 하는 일과 비활성화하는 방법

컴퓨터를 하다가 아무것도 안하고 있는데, 갑자기 CPU 돌아가는 소리가 크게 들립니다.

jekyll에서 특수기호 raw string으로 인식시키는 방법

깃헙 페이지 포스트 내용 중 코드를 쓸 시, 중괄호나 밑줄 두개 같이 jekyll에서 특수기호로 취급되는 낱말은 제대로 입력이 되지 않습니다. 그럴 때는 다음과 같이 하시면 됩니다!

<% raw %>
(...)
<% endraw %>

파이참(PyCharm)에서 디렉토리 이름변경 시 java.io.ioexception 오류 해결방법

파이참에서 디렉토리 이름변경 기능을 사용할 시 java.io.ioexception이 뜰 때가 있죠.

파이큐티(PyQt5)에서 윈도우 배경화면 설정하는 방법

파이큐티(PyQt5)에서 윈도우 배경화면 설정하기.. 참 어렵습니다. 윈도우 배경화면 설정하듯이 할 수 없는 것이 현실이죠.

파이썬(Python)에서 메인 모듈 경로에 따른 상대경로 설정하는 방법

이럴 때가 있죠. 메인 모듈에서 특정 경로에 있는 외부 모듈을 부를 때, 그 외부 모듈에서 필요한 css 파일 따위를 못 찾아서 FileNotFoundError를 내뱉는 경우 말입니다.

파이썬(Python) eval 함수 설명, 사용방법

파이썬 eval 함수는 문자열 형식으로 된 코드(예: print(‘123’))를 입력으로 받아 동적으로 계산하여 출력해주는 함수입니다.

파이썬(Python)에서 숫자 사이에 콤마(1,234,567...) 넣기

숫자를 사용자에게 보여주는 프로그램에서는 수치를 확연하게 보여주기 위해 중간중간에 쉼표를 붙이죠.

깃배쉬에서 사용하는 기본적인 명령어(git init, git pull..) 설명

깃배쉬 기본적인 명령어를 알려드리겠습니다. (사실상 첫 포스팅이네요.)

1. 우선 짚고 넘어가야할 용어

저장소(Repository): 줄여서 Repo라고 합니다. 프로젝트(프로그램 작업해놓은 것들)를 저장하는 곳입니다.

위 사진에 있는 pyqt-font-dialog, pyqt-dark.. 등등이 저장소입니다

브랜치(Branch): 브랜치는 프로젝트 작업장 같은 겁니다. 하나의 저장소는 여러 브랜치를 가질 수 있습니다. 브랜치는 하나 이상 꼭 있어야 됩니다! 그래야 작업을 할 수 있으니까요.

List Previous Next

파이썬(Python) eval 함수 설명, 사용방법

Profile ImageJung Gyu Yoon Nov 26, 2021

파이썬 eval 함수는 문자열 형식으로 된 코드(예: print(‘123’))를 입력으로 받아 동적으로 계산하여 출력해주는 함수입니다.

사용예시

eval("print('123')")
eval('1+2+3')

더 자세한 설명은 python documentation에서 보실 수 있습니다만, 대개는 위와 같이 문자열 형식으로 된 메소드나 수식을 계산하는 데 쓰입니다.

eval 함수가 유용한 것은 수식을 입력으로 받는 계산 메소드를 매우 쉽게 만들 수 있다는 점입니다.
아래는 제가 제작한 랜덤 사칙연산 생성기(pymeg)입니다.

from pymeg.expGenerator import ExpGenerator
from pymeg.expStruct import ExpStruct

problem = ExpStruct()
ext = ExpGenerator.get_problem(problem) # 문자열 형식의 랜덤 수식 생성하여 ext에 반환 
print('값: {0}, 타입: {1}'.format(ext, type(ext)))
result = eval(ext) # 문자열 형식의 수식을 동적으로 계산하여 숫자로 반환
print('값: {0}, 타입: {1}'.format(result, type(result)))

결과는 다음과 같습니다.

값: 5+8, 타입: <class 'str'> # 문자열(str) 형식의 랜덤 수식!
값: 13, 타입: <class 'int'> # 동적으로 계산된 이후 숫자로 반환되었기 때문에 int!

마찬가지로 응용프로그램인 계산기에도 응용할 수 있습니다. 대부분의 응용프로그램은 사용자에게 문자열로 입력을 받습니다.

python을 이용한 eval은 문자열을 수식으로 취급하여, 계산 이후 결과를 반환하기에 매우 편리합니다.

아래 또한 제가 제작한 계산기(pyqt-dark-calculator)입니다.

※ UI 제작 패키지인 PyQt5로 작성되었습니다. py 파일이므로 PyQt5를 설치하셔야 합니다. exe파일처럼 그냥 실행되는 거 아닙니다..ㅜ

예를 들어 사용자가 1+2+3을 입력합니다. 1+2+3은 문자열 형식으로 프로그램에게 주어집니다.

example1

그럼 eval(‘1+2+3’)하여 6을 반환하죠.

example

eval은 math와 같은 외장 함수도 마찬가지로 지원합니다.

import math # math와 같은 외장함수는 eval이든 아니든 꼭 import해줘야 합니다!

...

eval(str('math.sqrt(float({0}))'.format(last_n_regex)))) # math.sqrt(float(..)) 제곱근 계산하는 함수입니다.

이렇듯 문자열을 수식으로 변환하는 것에 관련해서는 eval을 줄기차게 사용하는 것이 여러모로 편리합니다.

두 번째 포스팅입니다. 약간 설명충스러운 느낌이 들 수도 있습니다.. 죄송합니다..


List Previous Next