我正在尝试做这样的事情。问题是我无法建立这样做的循环。
这是我的代码:
import parallel
import time
p=parallel.Parallel() #object to use the parallel port
print ("Enter a string of numbers: ")
numStr = raw_input() #read line
numList=list(numSTr) #converts string to list
numlen=len(numList) #the length of the list
numBin=[['1','0001'], ['2','0010'],
['4','0100'], ['5','0101'],
['6','0110'], ['7','0111'],
['8','1000'], ['9','1001'],
['3','0011'], ['0','0000']] #Less significant bits of the numbers from 0 to 9 in a bidimesional array
p.setData(0) #clear the displays
pos=['0001','0010','0100','1000'] #Unique possible positions for the number from 0 to 9.
c=(str(pos[])+str((numBin[][1]))) #here if the number in the list numList exist and also is in numBin. It joins the position and the number in binary, creating an number that will be send in decimal to the parallel port.
p.setData(int(c,2)) #send the binary number in decimal
如果有人可以帮助我,那将是令人欣慰的
numBin 中的最高有效位定义要打开的显示。而不太重要的定义数字。例如:
字符串是 {'7', '1', '5', '4', '8'}。所以最后一个显示中显示的第一个数字是“7”。因此,我们采用二进制 7 即“0111”并将该二进制字符串与第一个显示位置“0001”连接起来。所以我们创建一个二进制数:'00010111'。我们将该数字转换为十进制并将其发送到并行端口。并口打开las显示并显示数字7。第二次,它必须在第二个和第一个位置显示一个'7'和一个'1'等等。
X X X X
X X X 7
X X 7 1
X 7 1 5
7 1 5 4
1 5 4 8
5 4 8 X
4 8 X X
8 X X X
X X X X
“X”代表显示屏关闭,数字代表其自身处于显示位置,如您在电路中所见。