Coding/Python
barcode
barcode
분류 전체보기
잡담
단문
장문
그림있음
Coding
코딩잡담
JavaScript
Python
R
BOJ
[BOJ] Python
잔머리 엑셀
Guestbook
Tags
RSS
------------------------
Wordcloud with FLASK-뼈대 대공사
Coding/Python
barcode
Wordcloud with FLASK-뼈대 대공사
Coding/Python
일단... 현재 완성된 부분이 여긴데 어바웃 페이지만 된다. 입력받는 란은 아직 안함. 현재 구현된 기능 1) 탭 메뉴(어바웃 페이지/텍스트/엔트레즈 탭) 2) 어바웃페이지 app.py from flask import Flask, render_template from Bio import Entrez from wordcloud import WordCloud from wordcloud import STOPWORDS import matplotlib.pyplot as plot from PIL import Image import numpy as np from argparse import FileType import tkinter from tkinter import filedialog import re from k..
대형프로젝트 계획중
Coding/Python
barcode
대형프로젝트 계획중
Coding/Python
한가지 확실한 건 이건 진짜 개노가다가 맞음. 블로그를 좀 오래 전부터 보신 분들은 아시겠지만 깃헙에 유일하게 폴더로 분리된 대형 프로젝트가 두 개 있다. 첫번째가 프로젝트 제한효소, 두번째가 프로젝트 워드클라우드. 근데 이게 쌩코드가 올라와서 이걸 복사해서 수정해서 또 올려야되는데 귀찮아요... 그래서 Flask로 웹이랑 묶으려고 생각중이다. (프로젝트 제한효소는 DB로 쓰는 csv파일도 포함) 근데 또 고려할 게 생겼어...OTL 1) 코드 통합 문제 프로젝트 워드클라우드의 경우 한글/영어/Entrez 세 개의 코드가 있고, 프로젝트 제한효소에는 커터/파인더/서쳐 세 개의 코드가 있다. 프로젝트 제한효소는 세 코드가 사용 목적이 다 달라서 통합은 안되고, 한 페이지 안에서 세개를 다 띄우려면 아코디언..
input vs sys.stdin.readline()
Coding/Python
barcode
input vs sys.stdin.readline()
Coding/Python
예에에에에전에 백준 18108번 풀이를 올렸을 때 댓글로 질문이 하나 왔었다. input()대신 sys.stdin.realine()을 쓰는 이유를 알 수 있나요? 백준에서 빠르다고 해서 쓰고 있었음... 아니 농담 아니고 진짜다. 반복문 이런거 잘못 짜면 응애 나 애기시간초과! 가 반기는데 다른데서라도 시간 줄여야져... 일단 둘 다 입력 받을 때 쓰는 게 맞다. input() #input import sys sys.stdin.readline() #sys.stdin.readline() 각각 이렇게 쓰면 된다. 근데 이렇게만 해 두면 왜 쟤가 빠른지 체감이 잘 안 올 것이다. 우리가 input()을 쓸 때는 저렇게 쓰는 것 보단 input('메시지를 입력해주세요') 이런 식으로 쓴다. 이 때, 저 안에 있..
Python으로 JSON파일 읽기
Coding/Python
barcode
Python으로 JSON파일 읽기
Coding/Python
JSON은 JavaScript Object Notation을 줄인 것으로, 보통 제이슨으로 읽는다. 일반적으로 클라이언트가 서버에서 가져오는 데이터는 이 형식이고, 현재 표준 형식으로 많이 쓰이고 있다. 원류는 자바스크립트지만 현재는 언어 독립적인 개별 포맷. 그러니까 누가 제이슨 파일 주세요 하면 JSON파일 달라는거지 제이슨씨 파일 주세요가 아니다 남의 파일을 왜 달라고 해 키-값 쌍으로 이루어진 데이터를 텍스트 형태로 기록해둔 것이라 휴먼 가독성은 좋다. 오늘의 도우미 { "Water": { "molecular weight": "18.016", "molecular formula": "H2O" }, "Ethanol": { "molecular weight": "46.07", "molecular fo..
재귀함수가 돌아가는 방식을 알아보자
Coding/Python
barcode
재귀함수가 돌아가는 방식을 알아보자
Coding/Python
재귀함수는 정의할 때 자기자신을 재참조한다고 했는데, 정의하는데 자기자신이 들어가면 대체 어떻게 돌아가는지 알아보자. 라이츄가 라이츄를 꺼내고 그 라이츄가 라이츄를 꺼내고 팩토리얼 def factorial(n): if n == 0: return 1 return n * factorial(n-1) 5!을 저걸로 계산하게 되면 1. factorial(5) = 5 * factorial(4) 2. factorial(4) = 4 * factorial(3) 3. factorial(3) = 3 * factorial(2) 4. factorial(2) = 2 * factorial(1) 5. factorial(1) = 1 * factorial(0) 6. factorial(0) = 1 7. 오케이 가릿 여기까지 왔더니 fac..
감마 함수+팩토리얼 코드에서 유리수 처리
Coding/Python
barcode
감마 함수+팩토리얼 코드에서 유리수 처리
Coding/Python
아, 정확히는 정수가 아닌 유리수 말하는거다. 감마 함수? 일단 팩토리얼(n!)이 n부터 1까지 쫘라락 곱한다는것과 정수가 아닌 유리수는 그걸 감마 함수에 때려박아야 한다는 걸 대충 알고 계실 것이다. 감마함수는 팩토리얼의 상위호환으로, 대충 이런 식을 쓴다. 사실 식이 네 갠데 일반적으로 알려진 게 저 적분식인거고, 그나마 저 형태가 이해하기 쉽다. 나머지는 뭐 파이(원주율 말고 곱의 기호 파이) 뜨고 난리났음. 코드 from sympy import * from mpmath import mp import sys a = complex(sys.stdin.readline()) # 복소수는 complex로 입력해야 합니다. (int: 정수, float: 소수라고 생각하면 됨) t = symbols("t") e..
이중계승 추가
Coding/Python
barcode
이중계승 추가
Coding/Python
일단 이중계승이 뭐냐... 우리가 알고있는 팩토리얼은 n! = n*(n-1)*(n-2) 이런 식으로 곱하는거기때문에 종착점이 무조건 1이다. 근데 이중 계승은 곱하는 숫자의 공차가 2이기 때문에 입력한 숫자가 홀수냐 짝수냐에 따라 종착점이 갈린다. 홀수의 경우 종착점이 1이고, 짝수의 경우 종착점이 2가 된다. 그래서 6!!=6*4*2=48, 5!!=5*3*1=15가 된다. (그냥 계승은 6!이 720 5!이 120) import sys a = float(sys.stdin.readline()) factorial = 1 if a < 0: print("Can't calculate factorial") elif a == 0 or a == 1: print(factorial) # 0! = 1 elif a % 1 ..
팩토리얼 로직 또 수정
Coding/Python
barcode
팩토리얼 로직 또 수정
Coding/Python
이건 또 언제 떠올랐냐면 밥 사러 편의점 가다가 떠오름... ㅋㅋㅋㅋㅋㅋㅋㅋ 아니 농담 아니고 진짜로 그래요 뜬금없이 샐러드 고르고 계산하다가 아 근데 자연수 아닌거 어캄? 이러고 떠오름 들어가기 전에... 팩토리얼이 되는 범위가 어디까지인가에 대해 설명을 좀 하자면... 팩토리얼(n!)은 n부터 1까지 쫙 곱하는 그게 맞는데, 0!은 0이 아니라 1이고(...) 음수에 대해서는 정의가 안 되어 있다. 그리고 정수가 아닌 유리수(즉 q/p꼴로 나타내는 수 중 p가 1이 아닌 것...아니 음수도 아냐 치워)에 대해서는 일반적으로 고등학교 과정에서 배우는 팩토리얼이 아니라 감마 함수를 써서 계산한다. 그러니까 저기다 때려박으면 된다. 수기로 하지 말고 알파신 부르자. (울프램알파도 저거 해준다) 감마(n)은..
팩토리얼 로직 수정+계승 소수
Coding/Python
barcode
팩토리얼 로직 수정+계승 소수
Coding/Python
Factorial 로직 수정 재밌는 사실을 하나 알려주자면 출근길에 지하철에서 멍때리다 생각난거임... 6호선 생각보다 자리 없어요 여러분. 팩토리얼(n!) 그니까 계승이 1부터 n까지 쭉 곱하는거인 건 맞다. 맞는데 문제가 두 가지 있다. 첫째, 0! = 1이다. (0 아님) 둘째, 음수는 팩토리얼이 없다. (정수가 아닌 유리수는 감마함수 때려박으면 된다나...) 그래서 이 두 가지 케이스에 대한 처리를 해야 한다. import sys a = int(sys.stdin.readline()) # Factorial(계승): 일반적으로 n! = 1*2*3*...*n-1*n이다. (5!=1*2*3*4*5) factorial = 1 if a < 0: print("Can't calculate factorial") ..
순열조합
Coding/Python
barcode
순열조합
Coding/Python
워드클라우드 py파일 만드는 김에 순열조합도 코딩했음. 순열: nPr(n개의 원소 중 r개를 중복 없이 늘어놓는 가짓수) 조합: nCr(n개의 원소 중 r개를 픽할 때의 가짓수) # permutation(순열): 서로 다른 n개의 원소 중 r개를 중복 없이 늘어놓는 것 def factorial(a): factorial = 1 for i in range(1,a+1): factorial = factorial * i return factorial # 순열에 팩토리얼이 들어가서 어쩔 수 없어요... # nPr(서로 다른 n개의 원소 중 r개를 중복 없이 늫어놓는 것)을 구하는 공식은 n!/(n-r)!입니다. n = int(input("n에 들어가는 수를 입력해주세요: ")) r = int(input("r에 들어..
워드클라우드 코드에 기능 추가
Coding/Python
barcode
워드클라우드 코드에 기능 추가
Coding/Python
일단 Entrez랑 Text랑 추가된 기능이 조금 다름. 기본 맥락은 같습니다. 공통 기능 워드클라우드용 마스킹 이미지를 불러오기 위한 파일 창 추가 from argparse import FileType import tkinter from tkinter import filedialog 추가 소환한 모듈(...) root = tkinter.Tk() root.withdraw() dir_path = filedialog.askopenfilename(parent=root,initialdir="/home/koreanraichu",title='Please select a directory',filetypes = (("*.png","*png"),("*.jpg","*jpg"),("*.gif","*gif"))) image..
List comprehension
Coding/Python
barcode
List comprehension
Coding/Python
참고로 나도 오늘 처음 들은 개념이다. List comprehension-기본편 a = list(range(9)) print(a) 보통 리스트는 이런 식으로 생성하거나 a = [0,1,2,3,4,5,6,7,8] 이렇게 생성한다. (같은 리스트다) 이걸 리스트 컴프리헨션으로 생성하려면? a = list(i for i in range(9)) print(a) 이렇게 쓰거나 a = [i for i in range(100)] print(a) 쿨하게 대괄호 안에 끼워넣으면 된다. For문 넣기 참고로 본인 신조가 'For문 가는데 While이 국룰'이었는데 얘는 예외다. While이 들어가질 못함... for문과 달리 while은 조건부 반복문이라 그런 듯 하다. a = list(2 ** i for i in ran..
<
1
2
3
4
5
6
7
>
https://koreanraichu.tistory.com/
티스토리툴바