1. 남여를 매칭하는 프로그램을 만든다. 2. 이전에 매칭된 이성은 매칭하지 않는다. 3. 한번에 매칭되는 할당양을 지정한다. 4. 성비가 적은쪽은 할당양 보다 더 많이 받는다. > 예: 남=10, 여=5 일때 할당양이 2면 남자는 2, 여자는 4 정도를 받는다. 5. 어떤 사람이 많이 매칭되고 어떤사람이 적게 매칭되지 않게 균일하게 매칭한다. import random class User: def __init__(self, _id=None, gender=None, history_users_group=None): self.id = _id self.gender = gender self.history_users_group = history_users_group if history_users_group else..
아래와 같은 연산을 하는 함수를 작성한다. 더보기 입력출력 결과 input > 123, 11 output > 132131 input > 144345, 13 output > 12433251 input > 153, 12 output > 12513121 def add(a, b): return str(a) + str(b) def count(t, s): return f"{t}{s.count(t)}" def remove(t, s): return s.replace(t, "") def foo(a, b): r = "" s = add(a, b) while s: r += count(s[0], s) s = remove(s[0], s) return int(r) print(foo(11, 14))
[메인메뉴] 1. 원소기호 추가 2. 원소기호 수정 3. 원소기호 삭제 4. 원소기호 맞추기 5. 종료 [서브메뉴] 1번메뉴: 한줄에 [원소이름] [원소기호] 를 입력한다 > 수소 H 2번메뉴: 한줄에 [바꿀원소이름] [새로운원소이름] [ 새로운원소기호] > 수소 수소 H 3번메뉴: 한줄에 [삭제할원소이름] > 수소 4번메뉴: 지금까지 입력한 원소리스트 중에 원소 이름을 랜덤으로 출력하면 기호를 맞춘다. 그리고 정답숫자/전제문제 를 출력한다. quit 를 입력하면 플레이 종료 > [수소] 의 원소기호는 무엇입니까? > H > 정답입니다. 1/2 정답 > quit 5번메뉴: 종료라고 메세지를 출력하고 프로그램을 종료한다. import random def add(items, key=None, value=No..
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 ..
- Total
- Today
- Yesterday
- 파이썬 입문
- 모바일 스킨 적용
- chatbot
- 장고 카톡 자동응답
- Tistory
- 모바일 테마 적용
- PuTTYGen
- Python
- 이미지 비교
- gitignore
- 장고
- GIT
- 파이썬 강좌
- virtualenv
- 파이썬
- pycrypto
- 파이썬 독학
- gitlab
- 파이썬 프로그래밍
- 문서 비교
- 면접정답
- wsgi
- admin.py
- 플러스친구 자동응답
- 엑셀 비교
- django chatbot
- 문과 코딩
- 장고 플러스친구 자동응답
- django
- 면접답변
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |