목록Programming/Python (3)
행복한 하루
안녕하세요. 시리얼(UART) 통신을 하다 보면 HEX(16진수) 데이터를 많이 보게 됩니다. 그런데 python에서 화면에 표시하려면 생각한 것처럼 예쁘게 나오지 않습니다. 그래서 간단하게 알고 있으면 좋을 내용이 있어서 적어보았습니다. 기본적으로 Hex라고 하면 0x00~ 0xFF로 표기가 됩니다. 그러나 0x를 뺄 수도 있고, 00 두 자리로 표시할 수도 있고 대문자로도 할 수 있고 정의하는 곳에 맞게 출력할 필요가 있습니다. 그래서 맞는 옵션을 찾아서 출력설정을 하면 도움이 될 거라고 생각됩니다. 그리고 MicroPython에서 바로 지원하지 않는 함수도 있을 수 있으니 개발 환경에서 작동하는지 확인이 필요해 보입니다. 1. 변환 함수로 10진수 -> 16진수(HEX) 변환 - hex(정수) 함수..
안녕하세요. asyncio는 async/await 구문을 사용하여 동시성 코드를 작성할 수 있게 해주는 모듈로, asyncio를 사용하면 단일 스레드 작업을 병렬로 처리할 수 있습니다. 그리고 async 함수에서 리턴하는 값도 받을 수 있습니다. 그런데 MicroPython에서는 리턴 값을 받는 방법이 약간 달라서 남겨봅니다. - Python3.7 이전과 이후에 따라 ansyncio모듈에 추가된 함수가 있어 사용방법 차이가 있는 것으로 보입니다. 현재 MicroPython1.20, python3.9으로 테스트했습니다. 1. 일반 Python에서 비동기 함수에서 리턴 받는 코드 - 간단한 샘플 코드로 숫자의 합을 구하는 비동기 함수를 만들고 A, B의 두 개의 Task로 해서 coroutine으로 생성합니..
안녕하세요. 연산자 확인 2번째 내용으로 나머지 비트연산자와 비교연산자를 확인해 보았습니다. 기존 사용하는 언어와 Python에서 사용하는 것에 차이가 있는지 확인해 보는 시간이 되었으면 합니다. 1. 비트 연산자 단순 비트 연산을 한다면 쉽지만, NOT 연산자를 사용할 때는 한 번쯤 값이 맞는지 출력해 보고 진행해야 합니다. bin(~0b0011) 이라고 하면 출력이 '0b1100' 될 것 같지만 그렇게 되지 않았습니다. '-0b1101' 로 -가 붙고 +1이 되는 것을 알 수 있습니다. 정확한 것은 모르겠지만, 2의 보수처럼 처리하려고 보이려고 느껴집니다. 비트연산할 때 뒤에 & 연산을 더해주면 생각했던 것과 같이 반전된 결과를 확인할 수 있습니다. bin(~0b0011 & 0b1111) 이면 '0b..