python函数参数输入错误_Python错误TypeError:函数正好接受1个参数(给定5个)

Traceback (most recent call last):

File "wdd.py", line 164, in

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() only takes one argument, a string. You've given it five instead:

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

Make that one string:

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

or use string formatting:

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

file.write() does not act like a print statement.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值