给定的模板是:
=IF(AND(
ISERROR(VLOOKUP(A2, F$2:F$11, 1, FALSE)),
ISERROR(VLOOKUP(A2, H$2:H$11, 1, FALSE)),
ISERROR(VLOOKUP(A2, J$2:J$11, 1, FALSE))), B2, 0)
我得到了这个:
def total(lst):
return (
#### YOUR CODE HERE ####
#### DO NOT WRITE CODE OUTSIDE OF THIS ####
#### RETURN STATEMENT ####
)
def getValue():
try:
return int(input())
except:
return None
v = getValue()
myLst = [v]
while v != None:
v = getValue()
if v != None:
myLst.append(v)
print(total(myLst))
输入是: 1 2 3 4 五 它应该打印所有数字的总和。 但这给了我一个错误:
def total(lst):
return (
if lst ==1:
lst[0]
else:
lst[0]+total(lst[0:])
)
def getValue():
try:
return int(input())
except:
return None
v = getValue()
myLst = [v]
while v != None:
v = getValue()
if v != None:
myLst.append(v)
print(total(myLst))
请帮我弄清楚我做错了什么!谢谢!
答案 0 :(得分:1)
您在return 表达式中放置了一个if 语句。将语句放在表达式中是语法错误。请改用if表达式,例如
return (
lst[0] if lst == 1 else lst[0] + total(lst[0:])
)
答案 1 :(得分:0)
由于您只允许在表达式中编写代码,因此需要对if
- 语句使用略有不同的语法。
if len(lst) == 1:
lst[0]
else:
lst[0]+total(lst[0:])
可以写成单个语句:
lst[0] if len(lst) == 1 else lst[0]+total(lst[0:])
(假设您想检查列表的长度,而不是对int进行比较,这总是假的)