; http://php.net/smtp
SMTP = tls://smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 587
答案 0 :(得分:1)
因为如果int
没有返回值,那么在rental_car_cost
中,正好在这一行:
trip_cost
您正尝试将return rental_car_cost(days) + hotel_cost(days) + plane_ride_cost(city) +\
spending_money
与NoneType
答案 1 :(得分:0)
事实上,您不必从该行返回...此外,从每个if / elif分支返回是不好的做法,更好的方法是:
def rental_car_cost(days):
cost_times_day = days * 40
if days >= 7:
cost_times_day -= 50
print cost_times_day
elif days >= 3 and days <7:
cost_times_day -= 20
return cost_times_day # <-- a single point of return
如果你有一个没有返回值的分支,Python默认会返回None
,这会在调用者函数尝试将int
添加到{{1}时失败因此错误:
TypeError:+不支持的操作数类型:'NoneType'和#'int'
答案 2 :(得分:0)
你的错误确实在这里:
return rental_car_cost(days) + hotel_cost(days) + plane_ride_cost(city)
您正在尝试将rental_car_cost(days)
的结果添加到其他费用中,当您注释掉您提到的行时,有一种情况rental_car_cost
不会返回任何内容(即返回{ {1}})。当您尝试将None
添加到None
时,它就会爆炸。
要解决此问题,请确保每个代码路径(特别是int
语句中的每条可能路径)都返回有效的if
。
答案 3 :(得分:0)
puts chars.each_char.with_object(fruits.dup){|e, a| a.select!{|s| s.include?(e)}}
并删除已突出显示的return语句,if days >= 3 and days < 7
函数将返回rental_car_cost()
。当None
函数尝试连接trip_cost()
和两个数字时,它将失败,因为它不可能。