【发布时间】:2021-08-09 21:16:57
【问题描述】:
我刚开始使用 Python,我似乎无法解决这个练习题。
编写一个函数,接收一个集合并返回所有奇数元素的列表。您应该忽略集合中的任何非数字元素。
所需签名:defodd_numbers1(x):
例如,调用odd_numbers1([1,2,3,3,'3']) 将返回[1,3,3]
例如,调用odd_numbers1([False,True,3,5.0,7.5]) 将返回[True,3, 5.0]
这是我目前所拥有的,但是当我达到“3”时遇到错误。
for i in x:
if x %2 == 0 or type(x) != int:
None
else:
print(x)
x = [1,2,3,3,'3']
odd_numbers1([1,2,3,3,'3'])```
【问题讨论】:
-
检查
type(x)之前检查x%2。感谢short-circuiting,如果or表达式的第一个条件返回True,则不会检查第二个条件,因此您不会尝试对字符串取模。 -
另外,您可以使用
pass关键字代替None来表示一个空块。
标签: python list loops for-loop