Discuss / Python / 练习题

练习题

Topic source
# -*- coding: utf-8 -*-
from functools import reduce


def gen():  # 首先定义一个生成器
    i = 0
    while True:
        yield i
        i += 1


def is_palindrome(num):  # 判断一个数是否为回数
    if isinstance(num, int):
        n = len(str(num))
        k = []
        for i in range(n):
            k.append(num // (10 ** i) % 10)
        num_x = reduce(lambda x, y: 10 * x + y, k)
    else:
        print('该数字不是整数')
    return num == num_x


def find_palindrome():  # 找出所有回数
    ini_num = gen()
    palindrome_num = filter(is_palindrome, ini_num)
    return palindrome_num


for x in find_palindrome():
    if x < 1000:
        print(x)

  • 1

Reply