Language/Python

보호되어 있는 글입니다.
round(): 반올림 round(값, n) : 값을 소수점 n번째 자리에서 반올림 -n을 넣을 경우 n번재 자리에서 반올림 올림, 내림, 버림 import math ceil(값): 올림 floor(값): 내림 trunc(값): 버림 소수점 출력 문자열 뒤에 .format()을 붙이면 {n}에 n의 순서대로, 그 자리에 값을 넣을 수 있다. {0}에는 format안의 첫번째 값을 넣으면 된다. {0:.1f} : format()의 첫번째 값을 넣되 소수점 첫번째자리에서 반올림해서 넣기 이때, .1f 등 출력할 소수점 자리를 정해 반올림을 해줄 수도 있다. 10.5는 왜 10이 출력되는지 의문.. 이것도 마찬가지 f에 뭐가 있는건가?
20.04.28 수정 1. pwntools란? - pwnable 시스템해킹에 주로 사용 - python 2.7에서만 사용 가능 python3에서도 사용 가능하다. 2. pwntools 설치(window) 관리자 모드로 cmd를 들어간 후 'pip install pwntools' 입력 'pip list'로 설치 툴 확인 가능 3. 사용법 - vi 편집기 이용해서 만들때 vi 파일명.py - 상단에 from pwn import* - 실행 시 python3 파일명.py (현재 설치된 파이썬은 3버전이므로) 4. 기능 1) 연결 - nc : remote(접속주소, 포트번호) * 접속주소는 string, 포트번호는 int ex) p = remote("localhost", 1234) - local : process..
문제: 49.247.132.71 1234 칼리에서 문제에 접속해 보았다. nc 명령어를 사용하여 문제에 접근하였고, 그 결과 위와 같이 더하기 문제에 대해 20번 답을 하라는 문제임을 알 수 있었다. 일일이 입력해서 20번을 채워도 되지만 시간상 무리이기 때문에 파이썬으로 코드를 작성하였다. 주어진 주소로 연결을 하고 questions라는 단어까지 문자를 받는다. 20번 반복이므로 위와 같이 for문을 돌렸고, 두번째 줄부터 바로 문제가 나오므로 한줄을 받아 t에 대입하였다. t는 eval 함수를 통해 답을 도출하며 anw 변수에 들어가고, = 문자까지 닿게 되면 아까 받은 답을 보낸다. 그 후 쉘의 마지막에 p.interactive()를 써 주었다. 그 결과, 연결이 되긴 하지만 문법상의 문제 때문에 ..
1. html 열기 이전과 달리 네이버 홈페이지에서 실시간 검색어가 ajax 통신으로 가져오는 방식으로 바뀌면서 키워드로 크롤링을 사용하는 방식이 어려워졌다. 따라서 대안으로 네이버 DataLab에 들어가 크롤링을 시도했다. 2. 모듈 http 요청을 위한 requests를 import 하였고, bs4 중에서도 파이썬 웹 크롤러 라이브러리 중 하나인 BeautifulSoup을 사용한다. 3. 코드 접속이 차단되었을 때 사용하는 방법으로 User-Agent를 지정해 주었다. 서버에서 봇으로 인지하기 때문에 차단한 경우인데, 이럴 때는 사람이라고 알려주면된다. 그래서 headers 정보에 User-Agent를 넣어주었고, http://www.useragentstring.com/ 여기서 유저 정보를 얻을 수 ..
* 감을 잡기 어려워서 오픈소스를 활용하여 구성과 역할 중심으로 작성하였고, 파일 위치 등 부분 수정하였다. 1. send.py 1)모듈 소켓 프로그래밍을 이용하기 위해 소켓 서버를 import 하였다. 그리고 os.path 모듈에서 exists만 가져왔다. 입력 받은 경로의 존재여부는 구분할 때 쓰인다. 2) 파일 전송 같은 컴퓨터에서 실행하기로 하였다. 위 코드의 클래스는 서버에 대한 요청을 하는 핸들러 클래스이다. 서버에 접속할 때마다 한번씩 인스턴스화 되는데, 클라이언트와의 통신을 구현하려면 위처럼 핸들 방식을 재정의 해야 한다. data_transferred는 0으로 초기화 했다가 파일을 받아오면 해당 파일의 바이트 값을 가져와 더하여 파일의 크기값으로 재정의 된다. 그 다음에는 연결된 IP 주..
1. tkinter 가장 많이 사용되는 GUI 모듈 중 하나인 tkinter을 사용하였다. 먼저, tkinter 모듈을 포함시켰고, 그 안에 있는 Tk 클래스의 객체를 생성하여 하나의 윈도우가 생성되도록 하였다. 윈도우의 이름은 '계산기'라고 정했다. 2. click 함수 (버튼을 눌렀을 때 결과 나타내기) 가장 중심이 되는 건 eval(entr.get())이다. entry에서 가져온 문자열 내용대로 계산되는 부분이다. 따라서 사칙연산은 이 식만 있어도 쉽게 결과값이 나온다. key 값으로 '='을 입력 받으면 이때까지 받은 숫자와 연산자들도 계산하여 result에 넣어준다. 그리고 기존에 출력된 값을들 지운뒤 그 위에 result 값을 문자열로 바꾸어 새로 출력시킨다. =를 누르기 전 숫자와 연산자들은..
1. server.py 1) 모듈 import - 소켓 생성 - 스레드 생성/ form threading impot* ->threading.Thread() 대신 Thread() 사용 가능 - sleep() 함수 사용 2) 소켓 송수신 서로 주고 받는 대화를 하기 위해서 계속 입력받을수 있도록, 계속 전달 받을 수 있도록 while문으로 반복문을 작성하였다. 일단 메세지를 주고 받기 위해 인자를 sock으로 받아왔다. 위 코드에서 sock.send()는 보내는 메소드, sock.recv()는 받는 메소드이다. 메세지를 보낼 때 입력한 문자열은 encode()을 사용하여 byte로 변환하는데, 파이썬의 문자열은 객체이기 때문에 바로 전달될 수 없다. 따라서 인코딩을 해주어야 한다. 상대방의 메세지를 받을 때..
suntall
'Language/Python' 카테고리의 글 목록