Étape 10 : Code
Cela dit, certaines choses utiles, j’ai appris sur Python incluent :
Une des meilleures fonctionnalités de Python (ou peut-être le pire?) est l’absence de syntaxe. Vous devez rarement retenir une balise d’ouverture ou de fermeture. Vous pouvez garder juste en tapant les lignes de code et Python va essayer de son mieux afin de la traiter.
Python traite les blocs de code basé sur leur mise en retrait. Une mauvaise mise en retrait peut conduire à la catastrophe. Par exemple, la seule façon le code sait que quelque chose fait partie d’une boucle est parce qu’il est en retrait les mêmes que tout le reste qui fait également partie de cette boucle. Cela peut commencer à se complique avec des boucles imbriquées (boucles à l’intérieur des boucles) et source de confusion et de mauvais code.
Système de fonctions de Python est déroutant sur plusieurs niveaux (par exemple certaines variables sont mutables et d’autres non). Je ne comprends pas la complexité des fonctions, mais si vous êtes intéressé, vous devriez vraiment le regarder vers le haut.
Le code que nous allons utiliser comprend un certain nombre de paquets, une collection de fonctions qui peuvent être appelés à vous (voir la dernière étape pour plus d’informations sur l’installation de paquets).
Nous importons les paquets suivants :
-Python Twitter
-PySerial
-Numpy
-Temps
-Random
Le code est comme suit :
#!/usr/bin/python #Filename: TwitterChair.pyimport twitterimport serialimport numpyimport timeimport random## Your username and password here#api = twitter.Api(username='yourusername', password='yourpassword')## Change this to match your serial port#ser = serial.Serial('/dev/tty.usbserial-A70063pF', 19200)serialArray = []global gassygassy = 0def checkokay(): ser.flushInput() time.sleep(3) line=ser.readline() time.sleep(3) if line == ' ': line=ser.readline() print 'here'def startvalues(i): while i <= 50: #time.sleep(.25) line=ser.readline() serialArray.append(int(line)) ser.flushInput() i=i+1 print serialArraycheckokay()startvalues(0)def main(i, i1): ArrayTransfer = numpy.array(i) ComparatorValue = int(numpy.mean(ArrayTransfer)) print ComparatorValue lastReading = ComparatorValue print lastReading loopy = i1 print loopy y = 0 x = 0 while y < 10: while x < 5: line=ser.readline() currentReading = int(line) if currentReading > lastReading: lastReading = currentReading print lastReading print currentReading time.sleep(6) ser.flushInput() x=x+1 print 'half minute' x=0 y=y+1 if lastReading > (ComparatorValue + 50): i1 = 1 if i1 == 1: sayings = ["He farted again with success and vigor. Woest me.", "Pfffffffffft", "Ugh. That was a gross one", "Someone please disassemble me", "If I could puke my foam stuffing, I would", "I wish I were some other chair", "He farted right on me again", "Didn't hear that coming", "allow me to repeat... ppppfffffffffftttttttttttt", "It wasn't always like this."] pickSaying = random.randint(0,9) print pickSaying status = api.PostUpdate(sayings[pickSaying]) loopy = 0 print 'done' if __name__ == "__main__": main(serialArray, loopy)main(serialArray, gassy)