所以问题是:
编写一个函数
is_member()
,它接受一个值(即一个数字,字符串等)x
和一个值列表a
,并返回True
if {{ 1}}是x
的成员,否则为a
。 (请注意,这正是in运算符所做的,但是为了练习,你应该假装Python没有这个运算符。)
这是我的代码:
False
如果我将值作为列表中的最后一项放置,我将只得到正确的答案,但在此之前的每个值即使它在列表中也打印出第二个list1 = type(list)
value = type(int)
def is_member(value, list1):
for e in list1:
if e == value:
ans = 'Yes, the value ' + str(value) + ' is in the list'
else:
ans = 'No, the value ' + str(value) + ' is not in the list'
return ans
print is_member(2, [1, 2, 3, 4, 5, 6, 7])
语句(没有值... )。
如何获取它以便为列表中的任何元素打印正确的语句?
答案 0 :(得分:3)
def is_member(value, list1):
for e in list1:
if e == value:
ans = 'Yes, the value ' + str(value) + ' is in the list'
break
else:
ans = 'No, the value ' + str(value) + ' is not in the list'
return ans
print is_member(2, [1, 2, 3, 4, 5, 6, 7])
你太近了,你只需要添加休息时间。 break语句停止循环的执行,并继续执行块之后的下一个可用代码。在这种情况下,您的退货声明
重要的是要注意,在每次迭代中将设置设置为相同的字符串是不必要的。但是,我想将您的代码修改为具有最少修改量的工作表单。
答案 1 :(得分:2)
def is_member(value, list1):
for e in list1:
if e == value:
return 'Yes, the value ' + str(value) + ' is in the list'
return 'No, the value ' + str(value) + ' is not in the list'
与其他提议的答案一样有效。
答案 2 :(得分:2)
当您获得匹配时,您需要在for循环中返回,或者除非值等于最后一个元素,否则您将始终将ans设置为即使在上一场比赛中,你的其他人也会阻止:
def is_member(value, list1):
for e in list1:
if e == value:
# return on any match
return 'Yes, the value ' + str(value) + ' is in the list'
# if we get here we had no match.
return 'No, the value ' + str(value) + ' is not in the list'
您还可以简化使用 来测试会员资格:
def is_member(value, list1):
if value in list1:
return 'Yes, the value is in the list'
return 'No, the value is not in the list'
答案 3 :(得分:0)
您问过州的问题
"编写一个函数is_member(),它接受一个值(即数字,字符串等)x和值列表a,如果x是a的成员则返回True,否则返回False。
def is_member(x, a):
for list_item in a:
if list_item == x:
return True
return False
所以是的,虽然你的代码目前只会根据最后一个值是否等于e返回结果(因为你每次迭代都覆盖ans
),整个返回功能目前是不正确的要求。