Python erreur TypeError: fonction prend exactement 1 argument (5)
Traceback (most recent call last):
File "wdd.py", line 164, in <module>
file.write("temperature is ", temperature, "wet is ", humidity, "%\n")
TypeError: function takes exactly 1 argument (5 given)
Python:
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 26 14:24:43 2014
@author: pi
"""
import smtplib
import RPi.GPIO as gpio
import time
gpio.setwarnings(False)
gpio.setmode(gpio.BOARD)
time.sleep(1)
data=[]
def delay(i): #20*i usdelay
a=0
for j in range(i):
a+1
j=0
#start work
gpio.setup(7,gpio.OUT)
#gpio.output(12,gpio.HIGH)
#delay(10)
gpio.output(7,gpio.LOW)
time.sleep(0.02)
gpio.output(7,gpio.HIGH)
i=1
i=1
#wait to response
gpio.setup(7,gpio.IN)
gpio.setup(15,gpio.OUT)
gpio.setup(16,gpio.OUT)
while gpio.input(7)==1:
continue
while gpio.input(7)==0:
continue
while gpio.input(7)==1:
continue
#get data
while j<40:
k=0
while gpio.input(7)==0:
continue
while gpio.input(7)==1:
k+=1
if k>100:break
if k<3:
data.append(0)
else:
data.append(1)
j+=1
print "Sensor is working"
#get temperature
humidity_bit=data[0:8]
humidity_point_bit=data[8:16]
temperature_bit=data[16:24]
temperature_point_bit=data[24:32]
check_bit=data[32:40]
humidity=0
humidity_point=0
temperature=0
temperature_point=0
check=0
for i in range(8):
humidity+=humidity_bit[i]*2**(7-i)
humidity_point+=humidity_point_bit[i]*2**(7-i)
temperature+=temperature_bit[i]*2**(7-i)
temperature_point+=temperature_point_bit[i]*2**(7-i)
check+=check_bit[i]*2**(7-i)
tmp=humidity+humidity_point+temperature+temperature_point
print "temperature is " , temperature,"*C"
print "wet is ",humidity, "%"
import smtplib
import RPi.GPIO as GPIO
import time
if check == tmp:
print "temperature is ", temperature,"wet is ",humidity,"%"
#file = open("wdd.txt","w")
#file.write ("temperature is ", temperature, "wet is ", humidity, "%\n")
#file.close()
#print "temperature is ", temperature,"wet is ",humidity,"%"
while True:
#check.close()
if temperature>28:
#while temperature>29:
# continue
GPIO.output(15,True)
file = open("wdd.txt", "w")
file.write("The fan 1 was turn on\n")
file.close()
# print "1"
break
#continue
# time.sleep(2)
while True:
if temperature<24:
#continue
GPIO.output(15, False)
file = open("wdd.txt", "w")
file.write("The fan 1 was turn off\n")
file.close()
#print "2"
break
#continue
# time.sleep(2)
while True:
if humidity>89:
#check.close()
#continue
GPIO.output(16,True)
file = open("wdd.txt", "w")
file.write("The fan 2 was turn on\n")
file.close()
#print "3"
break
#continue
# time.sleep(2)
while True:
if humidity<80:
#check.close()
#continue
GPIO.output(16, False)
file = open("wdd.txt", "w")
file.write("The fan 1 was turn off\n")
file.close()
#print "4"
break
#continue
# k time.sleep(2)
# print "a"
else:
print "something is worong"
if check == tmp:
# print "temperature is ", temperature,"wet is ",humidity,"%"
file = open("wdd.txt","w")
file.write("temperature is ", temperature, "wet is ", humidity, "%\n")
file.close()
#print "temperature is ", temperature,"wet is ",humidity,"%"
- Bienvenue DONC! Pour les questions d'avenir, il serait préférable de nettoyer le code un peu, et incluent uniquement les extraits pertinents de la question. Vous avez vraiment besoin d'inclure les dernières lignes.
Vous devez vous connecter pour publier un commentaire.
file.write()
ne prend qu'un seul argument, une chaîne de caractères. Vous avez donné cinq au lieu de cela:Faire que une chaîne:
ou de l'utilisation de la chaîne de mise en forme:
file.write()
ne pas agir comme unprint
déclaration.tmp
etcheck
variables.print repr(tmp), repr(check)
et vérifiez qu'ils sont du même type et de même valeur.