1. menus.txt 에 까페에서 파는 [메뉴이름 가격 수량] 을 기록한다. 더보기 iceame 5000 100 caffemoca 4000 50 2. 모든 메뉴의 수량이 0이 되면 프로그램을 종료한다. 3. 판매를 할 경우 영수증을 파일(receipt.txt)에 주문 내역을 저장한다. 4. 관리자 모드에서는 id.txt 파일에 있는 계정으로 로그인 할 수 있다. 더보기 admin 1234 admin1 12345 5. 관리자 모드에서는 id.txt 파일에 계정을 추가할수 있다. 6. 관리자 모드에서는 메뉴의 추가/수정/삭제 가능하다. import datetime import os.path def read_file(path): with open(path, 'r') as f: return list(map(l..
1. 탈중앙화 - 은행의 모든 고객의 입출금 내역을 중앙에서 가지고 있는 방식이 중앙집중화 방식이다 - 중앙에 모든 리스크를 감수해야 하는 단점이 있다 - 모든 유저들이 입출금 내역의 조각들을 가지고 있고 그것들을 모아서 유효성을 체크하는 방식 2. 해시를 이용한 무결성 - 블록체인은 해시의 무결성을 이용한 방법 - 블록안에 모든 정보를 바탕으로 해시를 생성한다 - 블록이 가진 정보에는 반드시 이전 블록의 해시도 가지고 있어야 한다. 3. 유효성 체크 - 어떤 블록 x 는 x가 가진 해시와 x가진 정보를 바탕으로 해시값을 계산했을 때 동일해야 한다. > self.hash == self.cal_hash() - 이전 블록의 cal_hash() 와 현재 블록이 가지고 있는 이전블록의 해시값은 값아야 한다. 4..
1. 원본 문자열을 컨버팅 하고 그것을 A 라고 칭함 > 컨버팅: 해시(hex) > 2진수 변환 2. 원본 문자열 에서 순차적으로 순회하면서 알파벳일때만 바로 다음(a>b, b>c) 로 변환한다. > 단 다음이 없는 경우는 바로 이전것으로 변환한다. (z > y) 3. 2번을 컨버팅 한것 하나 하나가 B 이라고 칭하고 A 와 모든 B들을 하나하나 XOR 연산을 한다. 4. XOR 연산을 한 결과들을 그래프로 그린다. def to_hash(string): import hashlib encode_str = string.encode() return hashlib.sha1(encode_str).hexdigest() def to_bin(hex_str): return bin(int(hex_str, 16)) def ..
해시 해시(hash)란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값이다. 중국어로는 하시(哈希, 합희, hā xī)라고 한다. 이를 이용해 특정한 배열의 인덱스나 위치나 위치를 입력하고자 하는 데이터의 값을 이용해 저장하거나 찾을 수 있다. 기존에 사용했던 자료 구조들은 탐색이나 삽입에 선형시간이 걸리기도 했던것에 비해, 해시를 이용하면 즉시 저장하거나 찾고자 하는 위치를 참조할 수 있으므로 더욱 빠른 속도로 처리할 수 있다. 해시값이라고도 한다. '해쉬'가 아니라 '해시'가 올바른 표기법이다. 해시는 암호학에 있어서 매우 중요한 요소이며, 블록체인(blockchain)을 구현하기 위한 핵심 기술이다. 무결성 해시는 특정한 데이터를 이를 상징하는 더 짧은 길이의 데..
class A: def __init__(self, *args, **kwargs): self.a = kwargs["a"] def __str__(self): return f"{self.__dict__}" class B(A): def __init__(self, *args, **kwargs): self.b = kwargs["b"] super().__init__(*args, **kwargs) class C(B): def __init__(self, *args, **kwargs): self.c = kwargs["c"] super().__init__(*args, **kwargs) c = C(a=1, b=2, c=3) print(c) 부모가 가지고 있는 파라미터에 계속 추가해가는 형태
연락처(이름, 전화번호, 이메일)을 추가, 삭제, 검색, 합치기(연락처+연락처) 등의 기능을 가진 클래스를 구현해 보자 class Contact: def __init__(self, name=None, phone=None): self.name = name self.phone = phone def __eq__(self, other): return any([v1 == v2 for v1, v2 in zip(self.__dict__.values(), other.__dict__.values())]) def __str__(self): return f"{self.__dict__}" class Book: def __init__(self, pages=None): self.pages = pages if pages else ..
https://m.blog.naver.com/PostView.nhn?blogId=rkdwnsdud555&logNo=220828040636&proxyReferer=https%3A%2F%2Fwww.google.com%2F def monte(repeat=1000000, radius=1000): area_circle = radius ** 2 in_circle = 0 count = 0 import random import timeit while True: start = timeit.default_timer() for _ in range(repeat): x, y = random.randrange(0, radius), random.randrange(0, radius) if x*x + y*y
[인덱스 넘버링] 보통 프로그래밍 언어에서는 자료구조로 사상되는 어떤 집합을 순회하면서 그 집합에서 꺼내온 원소를 가지고 정해진 연산을 차례대로 수행하기 위한 기능이 있다. 소ㅜ이 반복문(for) 이라고 부르는 표현. 반복문을 쓸 때에는 집합의 어디서부터 어디까지 훓을 것인가 하는 인덱스의 범위(range)를 지정하는데 여기서 컴퓨터 과학자들이 즐겨 쓰는 관습이 하나 있다. 이것은 이제는 프로그래밍 언어를 처음 배우기 시작한 사람들에게 조차 익숙할 만큼 대중적인 것으로 자리 잡고 있다. 그것은 두가지로 구성된다. 1. Half-open interval: 인덱스는 시작 수는 포함하고 마지막 수는 제외한다.2. Zero-based numbering: 첫 번째 인덱스는 0부터 시작한다. 예를 들어 10번 박복..
파이썬에서는 클래스 캡슐화에 필요한 접근지정자를 잘 안쓰는 편이다. 어떤 부분에서는 public 을 권장하는 느낌도 든다. public 이 훨씬 편하기 때문이다. (예를들어 시작은 그냥 public 변수를 사용하게 하다가 먼가 제약이 필요할 때 쯤이면 아래 공부할 @property 등으로 처리한다 ) 제약보다는 자유도/책임감을 높히는 방향의 언어인 파이썬 답다. 먼저 말해두는데 파이썬에서 접근지정자는 없다. 즉 아래와 같이 코딩해도 에러가 안난다는 뜻이다 java 의 get, set 을 아래처럼 표현할 수 있다. class User: def __init__(self): self._color = None @property def color(self): return self._color @color.sett..
- Total
- Today
- Yesterday
- 장고 카톡 자동응답
- gitignore
- GIT
- 파이썬 독학
- 모바일 테마 적용
- 이미지 비교
- django chatbot
- 파이썬
- 파이썬 프로그래밍
- PuTTYGen
- 문서 비교
- 면접답변
- virtualenv
- gitlab
- 문과 코딩
- 엑셀 비교
- wsgi
- 장고
- pycrypto
- django
- 파이썬 강좌
- 파이썬 입문
- 모바일 스킨 적용
- admin.py
- 장고 플러스친구 자동응답
- Tistory
- 플러스친구 자동응답
- chatbot
- 면접정답
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |