2016-06-05 4 views
-1

다음과 같은 문제점이 있습니다. 파이썬에서 spi 메소드로 전달 된 값의 인쇄를하려고합니다. 이 방법은 다음과 같습니다.Python print formatted byte (s)

def Write_MFRC522(self, addr, val): 
    spi.transfer(((addr<<1)&0x7E,val)) 

이 함수에 전달 된 값을 출력하는 행을 추가하고 싶습니다. 나는 파이썬을 잘 이해하지 못하기 때문에 제대로 포맷 된 문자열을 인쇄 할 수 없다.

def Write_MFRC522(self, addr, val): 
    //print logic here 
    spi.transfer(((addr<<1)&0x7E,val)) 

올바른 형식 (16 진수) 값을 얻는 방법을 알려주는 사람이 있습니까?

+0

"SPI"이고 어쩌면 우리가 알아야 할 사항을 유니 코드/문자열/바이트와 관련하여 약간의 변경 사항이 있었기 때문에 파이썬 v2 또는 v3을 사용하는 경우 (솔루션을 제공 할 때) 간단한 인쇄 문과 형식화 된 변수가 정의 된 행을 제공하려고 할 수 있습니까 (값) 그래서 우리는 더 쉽게 도울 수 있습니다. 왜냐하면 적어도 저에게 함수 정의 및 포장 spi.transfer() 함수는 꽤 산만 해합니다. 감사. – Dilettant

+0

정확히 무엇을 요구하고 있습니까? 'print ("write_mfrc522", addr, val)'같은 것을 메소드에 추가하는 법? 16 진수를 인쇄하는 방법? 그리고 어쨌든'addr'와'val'은 무엇입니까? –

+1

16 진수로 포맷하려면'hex (addr)'를 사용할 수 있습니다. –

답변

1

잘하면 나는 주석과 질문을 잘 이해하고 있습니다.

이것에 대해 (@ 토비아스-k는 이미 주석의 hex 기능 제안) 무엇 :

#! /usr/bin/env python 
from __future__ import print_function 

addr = 204 
val = 123 
print('%s, %s' % (hex((addr << 1) & 0x7E), hex(val))) 

이 수율 :

0x18, 0x7b 
+0

정확히 무슨 뜻인지, 고마워! –