Stap 10: Code
Dat gezegd zijnde, sommige nuttige dingen die ik geleerd over Python omvatten:
Een van de grootste eigenschappen van Python's (of eventueel het ergste?) is het gebrek aan syntaxis. Je nodig zelden om het onthouden van een sluiting of de openingstag. U kunt gewoon doorgaan met typen lijnen van code en Python zal proberen haar best om het te verwerken.
Python verwerkt blokken van code op basis van hun inspringing. Onjuiste inspringen kan resulteren in een ramp. Bijvoorbeeld, de enige manier waarop de code weet dat er iets onderdeel van is een lus is omdat het is ingesprongen hetzelfde als alles wat dat ook deel uitmaakt van die lus. Dit kan beginnen te lastig met geneste lussen (loops binnenkant lussen) en leiden tot verwarring en slechte code.
Python's functie systeem is verwarrend op een aantal niveaus (bijvoorbeeld sommige variabelen zijn veranderlijk en sommige rijen niet). Ik niet volledig begrijpen de complexiteit van functies, maar als u geïnteresseerd bent, u moet zeker opzoeken.
Een verzameling functies die kunnen worden aangeroepen op zal de code die we willen gebruiken omvat een aantal pakketten, (zie vorige stap voor meer informatie over het installeren van pakketten).
Wij importeren de volgende pakketten:
-Python Twitter
-PySerial
-Numpy
-Time
-Random
De code is als volgt:
#!/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)