글

라벨이 python인 게시물 표시

rp2040 보드 circuit python 올려서 쓰기

circuit 파이썬 예전에 써본적이 있어서 익숙하게 했다. 공식 보드가 아닌거 같아서 좀 걱정했는데 무사히 된다. https://circuitpython.org/board/raspberry_pi_pico/ 공식 라이브러리 번들 받아서 필요한 라이브러리만 폴더 내에 lib 쪽에 넣기 https://github.com/adafruit/Adafruit_CircuitPython_Bundle/releases mfrc522 모듈이 공식 지원 모듈이 아니라서 찾아서 넣기. 그냥 폴더 없이 py 만 넣음 https://github.com/domdfcoding/circuitpython-mfrc522

thonny - rp2040 python ide 세팅

  thonny rp2040 python ide 세팅 https://wooduino.tistory.com/171

externally-managed-environment 리눅스 pip 안되는 문제

리눅스는 전역으로 pip으로 깔면 안되고 가상환경을 만들거나 해야 하는듯 externally-managed-environment https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-every-time-i-use-pip-3 The proper way to install Python libraries and applications is to install them in a Python virtual environment whenever possible  (the exceptions to this rule are quite rare). The error message describes two common ways to accomplish this: either by creating a virtual environment yourself, or for applications, by using  pipx —a tool which will create a virtual environment for you and install the application in that virtual environment. pipx  is strongly recommended for installing  applications , i.e., when you will primarily use the installed code from the command line. On Debian systems and Debian-based systems such as Ubuntu, you can install  pipx  using  apt , and then use  pipx  to install the application: apt install pipx pipx install some-python-ap...

pypi 2fa

 pypi 패키지 배포하려면 2fa two factor authentication이 필수다 설정에서 계정 설정에서  일단 리커버리 방법을 생성하는데 recovery code를 생성해서 다운받고 그 중 하나를 넣어서 인증한다  Add 2FA with authentication application 으로 나는 아이폰 앱으로 했는데. 아이폰 암호 앱에서 할 수 있다 굳이 다른거 안깔아도 됨. qr 스캔해서 자동으로 코드 입력하고 아이폰에서 여섯자리 숫자코드 나오는거 인증하면됨. 이거 하면 이제 로그인할때 숫자코드 입력해줘야함

PEP 440 : Python 패키지의 버전 관리 표준

 **PEP 440**은 Python 패키지의 **버전 관리 표준**을 정의하여, 패키지 버전을 일관성 있게 관리할 수 있도록 돕습니다. PyPI나 `pip` 등 Python 생태계에서 버전을 자동으로 인식하고 처리할 수 있게 하는 기준이기 때문에, **패키지를 배포할 때 PEP 440을 따르면 호환성과 유지보수 측면에서 좋습니다.** ### PEP 440의 주요 규칙 요약 1. **기본 형식**: `X.Y.Z` 형식(예: `1.0.0`)    - **`X`**: Major (주 버전) - 큰 변화나 호환성 깨짐이 발생할 때.    - **`Y`**: Minor (부 버전) - 기능 추가와 같이 호환되는 변경이 있을 때.    - **`Z`**: Patch (수정 버전) - 작은 수정이나 버그 수정을 할 때. 2. **사전 릴리스 버전**: 알파, 베타, 릴리스 후보 등    - **알파**: `X.YaN` (예: `1.0a1`)    - **베타**: `X.YbN` (예: `1.0b1`)    - **릴리스 후보**: `X.YrcN` (예: `1.0rc1`)    - 숫자 `N`은 해당 단계에서 몇 번째 사전 릴리스인지 표시합니다. 3. **포스트 릴리스**: `X.Y.postN` 형식    - 배포 후 문서 업데이트 같은 추가 변경을 포함할 때 사용합니다. 4. **개발 릴리스**: `X.Y.devN` 형식    - 아직 정식 릴리스 전인 개발 버전을 나타내며, 개발 단계에서 사용합니다. 5. **로컬 버전 식별자**: `+`를 사용해 로컬 환경에서만 사용하는 버전 표시 가능    - 예: `1.0.0+local.1` ### 버전 예시 - **1.0.0**: 기본 릴리스 - **1.1.0a1**: 1.1의 첫 알파 버전 - **2.0.0rc1**: 2.0의 첫 번째 릴리스 ...

PyPI에 Python 패키지를 업로드

 PyPI에 Python 패키지를 업로드하는 과정은 몇 가지 단계를 거쳐야 합니다. 아래는 그 과정을 순서대로 설명합니다. ### 1. 패키지 준비하기 먼저, PyPI에 업로드할 패키지를 준비해야 합니다. `setup.py` 파일을 만들고, 패키지의 메타데이터를 작성합니다. ```python from setuptools import setup, find_packages setup(     name="패키지이름",                  # 패키지 이름     version="0.1.0",                   # 버전     description="패키지 설명",         # 간단한 설명     author="작성자 이름",     author_email="작성자 이메일",     url="https://github.com/username/repository",  # 프로젝트 URL     packages=find_packages(),     install_requires=[                 # 필요한 패키지들         # '패키지명>=버전'     ],     classifiers=[         "Programming Language :: Python :: 3",         "License :: OSI Approved ...

python json 다루기

 Python에서는 `json` 모듈을 사용하여 JSON 데이터를 다룰 수 있습니다. 이 모듈을 사용하면 JSON 형식의 문자열을 파이썬의 데이터 타입으로 변환하거나, 파이썬의 데이터 타입을 JSON 형식의 문자열로 변환할 수 있습니다. 기본적으로 사용하는 함수는 다음과 같습니다: 1. `json.loads()`: JSON 형식의 문자열을 파이썬 데이터 타입으로 변환 (parsing) 2. `json.dumps()`: 파이썬 데이터 타입을 JSON 형식의 문자열로 변환 (encoding) 3. `json.load()`: 파일에서 JSON 형식의 문자열을 읽어서 파이썬 데이터 타입으로 변환 4. `json.dump()`: 파이썬 데이터 타입을 JSON 형식으로 파일에 저장 아래에 각각의 예시를 보여드릴게요. ### 1. `json.loads()`와 `json.dumps()` 사용 예시 ```python import json # JSON 문자열을 파이썬 데이터 타입으로 변환 (Parsing) json_str = '{"name": "John", "age": 30, "city": "New York"}' python_data = json.loads(json_str) print(python_data) # 출력: {'name': 'John', 'age': 30, 'city': 'New York'} # 파이썬 데이터 타입을 JSON 문자열로 변환 (Encoding) python_dict = {"name": "Alice", "age": 25, "city": "London"} json_data = json.dumps(python_dict) print(json_data) # 출력: {"name": ...

터미널 프로그램 만들기 python

 터미널 프로그램을 만들고, 이를 명령어로 부를 수 있게 하는 과정은 주로 다음과 같은 단계를 거칩니다. 예제를 통해 Python을 사용해 간단한 CLI(Command Line Interface) 프로그램을 만들고, 이 프로그램을 터미널에서 명령어로 실행할 수 있도록 하는 방법을 설명해 드릴게요. ### 1. 터미널 프로그램의 기본 개념 이해 터미널 프로그램(명령줄 프로그램)은 터미널에서 명령어로 실행할 수 있는 프로그램을 말합니다. 이를 만들려면 다음 두 가지가 필요해요: 1. **프로그램 코드 작성**: 명령어를 입력하면 수행할 작업을 정의하는 코드 작성. 2. **시스템 경로 설정**: 작성한 프로그램을 터미널에서 명령어로 호출할 수 있도록 설정. Python으로 간단한 CLI 프로그램을 만들어보고, 이를 명령어로 호출하는 과정까지 설명하겠습니다. ### 2. CLI 프로그램 작성 Python을 이용해 간단한 CLI 프로그램을 작성해보겠습니다. 예제로 `hello`라는 명령어를 입력하면 인사말을 출력하는 프로그램을 만들어 볼게요. 1. **Python 프로그램 작성**: `hello.py`라는 파일을 생성하고, 아래와 같이 작성합니다.    ```python    # hello.py    import argparse    # ArgumentParser를 통해 명령행 인자를 설정합니다.    parser = argparse.ArgumentParser(description="Simple CLI example")    # --name 옵션을 추가하여 사용자로부터 이름을 입력받도록 설정    parser.add_argument('--name', type=str, help='Your name', default='World')    # 입력받은 인자들을 args로 저장    args = parser....

python javascript 입출력 (알고리즘 문제용)

 https://help.acmicpc.net/language/info # 파이썬 알고리즘 문제 빠른 입출력 ```python import sys #한줄씩 n=sys.stdin.readline().rstrip() N,S=map(int,sys.stdin.readline().rstrip().split()) # 여러줄 한번에 input_str = sys.stdin.read().rstrip().split( "\n" )  ``` --- # js 백준 ```javascript var fs = require('fs'); var input = fs.readFileSync('/dev/stdin').toString().split(' '); var a = parseInt(input[0]); var b = parseInt(input[1]); console.log(a+b); ``` eof 예시 10951 ```javascript var fs = require('fs'); var input = fs.readFileSync('/dev/stdin').toString().trimEnd().split('\n'); #전체 입력으로 해결하는데 trimEnd로 끝에 공백제거 for (let i=0;i<input.length;i++){     let [a,b]=input[i].split(" ")     console.log(Number(a)+Number(b)) } ``` --- JavaScript로 코딩 테스트를 할 때는 입출력 방식이 플랫폼마다 다를 수 있습니다. 그러나 일반적으로 사용하는 두 가지 환경에 맞춰 설명하겠습니다. 1. **Node.js 환경**:    - 대부분의 코딩 테스트 플랫폼에서 JavaScript를 실행할 때는 Node.js 환경을 사용합니다. Node.js에서 표준 입력/출력을 처리하는 방법을 알아봅니다. 2. **브라우저 환경**:    - 브라...

Hashing 15829

이미지
 Hashing 15829 스트리크 깨질까봐 브론즈 하나 함. 교육적인 문제 해시 함수 하나 알려줌 해시 충돌을 피하기 위해 서로수인 숫자로 이런걸한다고 작은 수를 계수로 두고 스트링별로 배정된 수에 곱해서 합한다고.. <img alt="" data-original-height="142" data-original-width="422" height="108" src="https://blogger.googleusercontent.com/img/a/AVvXsEiy6Xx6etSIIan5AQuz51liLb7BW38McWIOrzSedwajy21mo8n3SkWfkg8o1KSH7DJ0Bbv1gsX1gWfIA9Lmj8FuuP-3uGkV41TNbT4VJVVe5Gjgo0K33NSCf9DHRgCJ-aXNIXv0K08xGjRZLBGh61hUe0ihi_33hWN7Kmg7uZ4SWXTPlVJcWcTUTJYelY0t" width="320" /> ```python N=int(input()) string=input() hash_dict={} for i in range(97,123):     hash_dict[chr(i)]=i-96 total=0 for i in range(N):     total+=31**i*hash_dict[string[i]] print(total%1234567891) ```

python 우선순위 큐

 파이썬에서 우선순위 큐를 사용하는 방법은 여러 가지가 있지만, 대표적으로 `heapq` 모듈을 사용하는 방법이 있습니다. `heapq`는 최소 힙(min-heap)으로 동작하며, 이 힙을 사용하여 우선순위 큐를 구현할 수 있습니다. ### 기본 사용법: `heapq` 모듈 `heapq` 모듈은 리스트를 힙처럼 다룰 수 있도록 해주는 함수들을 제공합니다. 이 모듈을 이용하면 우선순위 큐를 쉽게 구현할 수 있습니다. #### 1. 힙에 원소 추가하기: `heapq.heappush()` ```python import heapq # 빈 리스트를 힙으로 사용 heap = [] # 힙에 값 추가 (우선순위 큐에 삽입) heapq.heappush(heap, 10) heapq.heappush(heap, 1) heapq.heappush(heap, 5) print(heap)  # [1, 10, 5] -> 항상 최소값이 맨 앞에 있음 ``` #### 2. 힙에서 원소 꺼내기: `heapq.heappop()` ```python # 가장 작은 값 꺼내기 (우선순위가 가장 높은 값 제거) smallest = heapq.heappop(heap) print(smallest)  # 1 print(heap)      # [5, 10] ``` #### 3. 힙에서 최소값 확인 (제거하지 않음): `heap[0]` ```python # 최소값 확인 (제거하지 않음) min_value = heap[0] print(min_value)  # 5 ``` ### 우선순위 큐에 튜플 사용하기 우선순위 큐에서 각 요소에 우선순위를 부여하고 싶다면, (우선순위, 값) 형태의 튜플을 힙에 삽입할 수 있습니다. 튜플의 첫 번째 요소를 기준으로 우선순위가 결정됩니다. ```python import heapq pq = [] # 우선순위가 낮은 순서대로 정렬됨 (1이 가장 높은 우선순위) heapq.heappush(pq, (1, "작업 1")) hea...