# code39.py

Created by schraf

Created on February 28, 2019

982 Bytes

En cours de réalisation : création de code-barres “Code 39” https://fr.wikipedia.org/wiki/Code_39

```from kandinsky import *

def rect(x, l):
for i in range(l*200):
set_pixel(x+i%l,i//l,0)

def c39(txt):
code = {'A':265,'B':73,'C':328,'D':25,'E':280,'F':88,'G':13,'H':268,'I':76,'J':28,'K':259,'L':67,'M':322,'N':19,'O':274,'P':82,'Q':7,'R':262,'S':70,'T':22,'U':385,'V':193,'W':448,'X':145,'Y':400,'Z':208,'0':52,'1':289,'2':97,'3':352,'4':49,'5':304,'6':112,'7':37,'8':292,'9':100,' ':196,'-':133,'\$':168,'%':42,'.':388,'/':162,'+':138,'*':148}
traits = ""
final = ""
for c in "*"+txt.upper()+"*":
if c in code:
#traits += ("0"*9+bin(code[c])[2:])[-9:]
#traits += bin(code[c])[2:].zfill(9)
traits += '{:09b}'.format(code[c])
final += c
pos = 0
for i,v in enumerate(traits):
if i%9==0: pos+=2
if v=="1":
if (i%9)%2==0:rect(pos,4)
pos+=4
else:
if (i%9)%2==0:rect(pos,2)
pos+=2
draw_string(final,10,202)

print(c39("numworks19"))```