37,743
社区成员




class IntResponder:
"""
整数处理机
"""
def __init__(self, num):
self.num = num
def get_type(self):
""" 取得当前待处理的数字类型 """
return type(self.num)
def is_prime(self):
""" 是质数返回 True,不是质数返回False """
return not (True in [self.num % i == 0 for i in range(2, self.num)])
def add_up(self):
""" 累加到self.num """
return sum([x for x in range(1, self.num+1)])
def multiply_to(self):
""" 累乘到self.num """
mul = 1
for i in range(2, self.num):
mul *= i
return mul
def is_odd(self):
return ('偶数' if self.num & 1 == 0 else "奇数")
def is_num(receive):
""" 不是整数返回False """
return type(receive) in [int]
def help_():
name_dict = {
'1': '数字类型',
'2': '是否质数',
'3': '从1累加该数字的和',
'4': '从1累乘到该数字的和',
'5': '奇数还是偶数',
'6': '帮助'
}
return ('\n'.join(list(item[0]+' '+item[1] for item in name_dict.items())))
def controller():
""" 流程控制器 """
recv = eval(input('滴滴,整数答复机已启动>>>'))
if not is_num(recv):
return '不是整数捣什么乱'
res = IntResponder(recv)
recv2 = input('检测到数字{} 请输入操作\n{}\n>>>'.format(recv, help_()))
if recv2 not in [str(i) for i in range(1, 7)]:
return '输入错误'
ctl_dict = {
'1': res.get_type,
'2': res.is_prime,
'3': res.add_up,
'4': res.multiply_to,
'5': res.is_odd,
'6': help_
}
print(ctl_dict[recv2]())
if __name__ == '__main__':
controller()