编写python程序。定义一个自己的myMap函数,实现与内置函数map类似的功能。要求以输入一串整数,进行奇数、偶数分类输出作为示例。 示例输入:1 3 5 6 8 输出示例: 奇数有3个,分别为:1 3 5 偶数有2个,分别为:6 8
时间: 2024-06-02 14:13:24 浏览: 79
好的,我能回答你的问题。以下是你需要的Python程序:
def myMap(func, iterable):
result = []
for i in iterable:
result.append(func(i))
return result
def classify(num):
if num % 2 == 0:
return "偶数"
else:
return "奇数"
if __name__ == '__main__':
nums = input("请输入一串整数,以空格分隔:").split()
nums = list(map(int, nums))
results = myMap(classify, nums)
odd_nums = [num for num in nums if num % 2 != 0]
even_nums = [num for num in nums if num % 2 == 0]
print("奇数有{}个,分别为:{}".format(len(odd_nums), " ".join(list(map(str, odd_nums)))))
print("偶数有{}个,分别为:{}".format(len(even_nums), " ".join(list(map(str, even_nums)))))
请注意,此程序与内置函数map类似,但是比map更灵活,因为它可以输入任何函数(不仅仅是函数名)作为参数func。在这个示例中,我们定义了一个classify函数,用于对输入的数字进行分类。然后,我们calls myMap函数,将classify函数作为第一个参数传递给myMap函数,将整数列表nums作为第二个参数传递给myMap函数。最后,我们使用列表推导式,将奇数和偶数数字分别存储在odd_nums和even_nums列表中,并且使用.format和.join方法将结果呈现给用户。
阅读全文