Я пытаюсь сделать что-то вроде этого .Проблема в том, что я не могу построить цикл, который делает это.
Вот мой код:
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
The 'X 'означает, что дисплей выключен, а число представляет себя в положении дисплея, как вы можете видеть в схеме.