본문 바로가기

Python16

파이썬 bitnami wampstack로 CGI 연결하기 파이썬이 컴퓨터에 깔려있다고 가정하고 진행하겠다. 1. bitnami wamp stack 사이트에서 본인 운영체제에 맞는 것을 골라 설치해준다. (나는 8.0.3-2 버전을 설치하였고, 로컬 C에 설치했다) 2. bitnami가 설치되어있는 경로에 들어가서 몇가지 설정을 해준다. 2-1. C:\Bitnami\wampstack-8.0.3-2\apache2\conf 로 이동해준 뒤, httpd.conf 파일을 수정해줄 것이다. 먼저 혹시모르니까 httpd.conf.bak이라는 이름으로 복제본을 만들어둔다. 원본파일인 httpd.conf 파일에 들어가서 mod_cgi 를 검색으로 찾아준 뒤 LoadModule cgi_module modules/mod_cgi.so 이 주석처리가 안되어 있는지 확인해준다. 2-2.. 2023. 1. 12.
[python] 슬라이싱을 이용한 copy [:]을 이용한 복사는 깊은 복사라고 오해하기 쉽다 파이썬 튜터(https://pythontutor.com/python-debugger.html#mode=edit)를 이용하여 2중 배열을 복사하였다. 2중 배열의 외부는 주소가 따로 표시되어 깊은 복사처럼 사용을 할 수 있는데 내부의 2중배열부분은 같은 주소를 참조하는 것을 볼 수 있다. 따라서 원본 배열과 복사한 배열에 각각 append를 했을 때 같은 주소로 값이 각각 들어가는 것을 확인할 수 있다. 2022. 12. 14.
파이썬 - 전위 표현식 전위 표현식 확인용 사이트 : https://www.free-online-calculator-use.com/infix-to-prefix-converter.html Infix to Prefix Converter | Interactive Step-By-Step Stack Tutorial Converts an infix expression to a prefix expression using stack, and displays the conversion process for each scanned character. www.free-online-calculator-use.com 전위표현식은 후위 표현식과 유사하지만 입력받는 연산식을 뒤집어서 검사해주는 방식을 사용해준다. 처음에 입력받은 연산식을 뒤집고, 연산자.. 2022. 11. 13.
부동소수점 컴퓨터는 0 과 1로만 모든 것들을 구현한다. 그 중 실수의 소수점을 컴퓨터로 표현할 때 무한히 계속되는 부분을 용량문제로 '버림'하여 사용하기 때문이다. 예를들어 5.125를 컴퓨터에 저장한다고 가정하자. 컴퓨터 메모리에 넉넉하게 32칸을 준비한다. (32 bit) 메모리의 첫번째 칸은 양수인지 음수인지를 구분하는 칸이고, 나머지 부분은 8칸의 지수부분과 23칸의 가수수분으로 이루어져있다. 가수부분은 2진법으로 표현한 수의 정수부분을 2진수로 나타낸 결과가 들어가고 지수부분은 2진법으로 표현한 수의 소수부분을 2진수로 나타낸 결과가 들어간다. 5.125는 2진수로 101.001 이다. 이 수를 컴퓨터에 표현하기위해 소수점을 왼쪽 끝까지 이동시켜서 1.01001 * 2^2 로 표현해준다. 부호부분에는 양.. 2022. 9. 11.
3. Memorize Puzzle 3. Memory Puzzle 모듈 랜덤, 파이게임, 시스템, 파이게임로컬( * ) 변수선언 FPS 창크기 너비, 높이 보여지는 속도 박스크기, 간격 크기 박스 개수 행 열 assert 검사 ( 박스 개수는 짝수) 가로세로 마진 값 계산 색깔 선언 배경색 박스색 모양 선언 색깔 튜플화 모양 튜플화 assert 가능한 모든 도형의 가짓수의 2배가 박스의 개수보다 많아야 한다. main()함수 보여진 박스 데이터 기록 generateReavealedBoxesData( ) 보여진 박스의 정보를 기록하는 하뭇 보드판 랜덤화 getRandomizedBoard( ) icon 리스트 변수를 통해 랜덤 셔플 보드에 배치하고 리스트에서 삭제 splitIntoGroupsOf 2중 배열을 한 배열로 만드는 함수? 보드의 좌.. 2022. 9. 2.
ch2. pygame basics 1. 창 띄우기 import pygame import sys from pygame.locals import * pygame.init() DISPLATSURF = pygame.display.set_mode((400,300)) pygame.display.set_caption('hello world') while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() pygame.display.update() - pygame.init( ) 을 통해 import 해온 pygame을 호출 - 종료 시 pygame.quit( ) 가 호출되기 전에 pygame 프로그램이 종료되면 IDLE가 중단되는 버그가 있다. 2022. 8. 24.
BeautifulSoup - 특정 태그값 가져오기 import requests from bs4 import BeautifulSoup requests 와 BeautifulSoup 모듈을 가져온다 URL = "https://lolchess.gg/" 사용하고 싶은 주소를 가져온다 예제로 사용할 주소는 알바천국 주소이다 get_URL = requests.get(URL) print(get_URL, type(get_URL)) soup = BeautifulSoup(get_URL.text, "html.parser") print(str(soup)[:100]) print(type(soup)) TFT Stats, Leaderboards, League requests 로 주소를 사용가능하게 받아온다 bs4 로 url을 텍스트로 받아온다. (자료형은 이고, 굉장히 내용이 많기.. 2022. 7. 20.
파이썬 - enumerate 열거하다 라는 뜻으로, for문과 함께 자주 사용되며 순서가 있는 자료형의 인덱스를 부여해주는 기능이 있다. 인덱스 번호와 컬렉션 원소를 tuple형태로 반환한다. for i in enumerate(('a','b','c','d')): print(i) (0, 'a') (1, 'b') (2, 'c') (3, 'd') 위 코드처럼 i 하나로만 받을 경우 인덱스 번호와 순서가 있는 자료형의 값을 하나씩 튜플로 반환한다. for i,j in enumerate(['a','b','c','d']): print(i,j) 0 a 1 b 2 c 3 d i, j 2개로 받을 경우 i에는 인덱스 번호가 들어가고 j에는 값을 하나씩 받는 것을 볼 수 있다. for i in enumerate({'a':'가', 'b':'나','c'.. 2022. 5. 15.
파이썬 - 넘파이 브로드캐스팅 import numpy as np A = np.arange(3).reshape(3,1) B = np.arange(3).reshape(1,3) print('A :\n',A) print('B :\n',B) print(A+B)​ A : [[0] [1] [2]] B : [[0 1 2]] [[0 1 2] [1 2 3] [2 3 4]] 넘파이의 브로드캐스팅 기능이 덧셈이 가능하다고 판단하여 행렬간의 덧셈을 해주었다. a = np.array([1,2,3,4,5]) b = np.array([1,2]) print('a :\n',a) print('b :\n',b) print(a+b) a : [1 2 3 4 5] b : [1 2]​ 반면에 위 코드처럼 넘파이의 브로드캐스팅 기능이 덧셈이 불가능하다고 판단하면 오류가 발생한다.. 2022. 5. 11.
파이썬 - 넘파이 repeat import numpy as np c = np.bincount([6,1,1,2,3,4,4,6]) # bincount를 생성 print(c) x = np.arange(len(c)) # c의 길이만큼 배열생성 print(x) a = np.repeat(x, repeats = c) # a를 repeat를 이용해 x를 c와 같아지도록 반복 print(a) [0 2 1 1 2 0 2] [0 1 2 3 4 5 6] [1 1 2 3 4 4 6 6] repeat를 이용할 때 반복횟수(p)에 repeat를 적용할 배열(x)와 broadcasting이 가능한 배열을 넣어주면 배열(x)의 인덱스에 있는 숫자가 배열(p)의 인덱스에 있는 숫자만큼 반복하게된다. print(np.repeat(x, repeats=3)) p1 = [.. 2022. 5. 9.
파이썬 - 농담게임 Invent Your Own Computer Games with Python, 4th Edition 이라는 책을 바탕으로 만들었습니다. 4장 농담게임 4장은 농담게임이다. 넌센스 퀴즈가 출력되면 입력을 받고 답을 출력하는 간단한 프로그램이다. # jokes 게임의 출력 입력의 반복 print('What do you get when you cross a snowman with a vampire?') input() print('Frostbite!') print() print('What do dentists call an astronaut\'s cavity?') input() print('A black hole!') print() print('Knock knock.') input() print("Who's t.. 2022. 5. 6.
파이썬 - 숫자 맞추기 게임 Invent Your Own Computer Games with Python, 4th Edition 이라는 책을 바탕으로 만들었습니다. 1장은 사칙연산과 변수에 숫자를 넣어 계산하는 기본적인 내용에 대해 다루었다. 2장은 문자열의 덧셈과 출력, 입력에 대해 간단하게 이루어져있다. 3장 숫자맞추기 게임 3장은 숫자맞추기 게임을 구현하는 문제이다. 규칙을 아래와 같다. 컴퓨터는 1~20사이의 숫자 하나를 비밀로 가지고 있을 것이다. 숫자를 예측할 때마다 컴퓨터는 그 숫자가 큰지 작은지 알려줄 것이다. 6번의 기회 안에 맞춰야 성공이다. # 랜덤으로 숫자를 만들어주기 위해서 random을 불러오고 1~20사이의 숫자를 변수에 저장한다. import random guessNum = random.randint(1.. 2022. 5. 4.