Python错误TypeError:函数正好接受1个参数(给定5个) [英] Python error TypeError: function takes exactly 1 argument (5 given)

查看:95
本文介绍了Python错误TypeError:函数正好接受1个参数(给定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,"%"

推荐答案

file.write()仅采用一个参数,即字符串.您给了它五个:

file.write() only takes one argument, a string. You've given it five instead:

file.write("temperature is ", temperature, " wet is ", humidity, "%\n")

使该一个字符串:

file.write("temperature is " + str(temperature) + " wet is " + str(humidity) + "%\n")

或使用字符串格式:

file.write("temperature is {} wet is {}%\n".format(temperature, humidity))

file.write()不会 充当print语句.

这篇关于Python错误TypeError:函数正好接受1个参数(给定5个)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆