📌  相关文章
📜  在不使用循环的情况下,如何打印从1到100的数字? |套装2(1)

📅  最后修改于: 2023-12-03 15:23:28.394000             🧑  作者: Mango

在不使用循环的情况下,如何打印从1到100的数字?

你可能已经学会了使用循环打印从1到100的数字,但是,我们其实也可以使用其他方法实现,本篇将向大家介绍如何在不使用循环的情况下打印从1到100的数字。

1. 使用递归

我们可以使用递归来实现该需求,即每次递归调用该函数,将数字加一,并打印结果,直到数字等于100为止。下面是实现代码示例:

def print_num(num):
    if num <= 100:
        print(num)
        print_num(num+1)
        
print_num(1)

以上代码实现了从1到100的数字打印,其中,我们定义了一个名为print_num的函数,该函数需要传入一个数字,在函数内部,我们首先判断传入的数字是否超过了100,如果没有超过,就打印该数字,并且递归调用函数,将数字加一。这样,当数字等于100时,函数就不再调用,递归结束,我们也完成了从1到100的数字打印。

2. 使用生成器

我们还可以使用生成器来实现该需求。生成器是一种可以遍历一次序列,而不会将所有结果存储在内存中的迭代器,只有在调用时才会生成数据。

我们可以使用生成器函数来定义一个生成器,然后在函数体内使用yield语句生成从1到100的数字。

下面是实现代码示例:

def num_generator():
    num = 1
    while num <= 100:
        yield num
        num += 1

for num in num_generator():
    print(num)

以上代码实现了从1到100的数字打印,其中定义了一个名为num_generator的生成器函数,该函数使用while循环不断生成从1到100的数字,并且依次使用yield语句将其返回。

在for循环中调用该生成器函数,每次取出一个数字并打印,直到生成器函数返回所有数字。

3. 使用逗号表达式

最后,我们还可以使用逗号表达式来实现该需求。逗号表达式可以一次执行多个语句,并且返回最后一个语句的结果。下面是实现代码示例:

def print_num(num):
    print(num),
    num += 1
    num <= 100 and print_num(num)

print_num(1)

以上代码实现了从1到100的数字打印,其中定义了一个名为print_num的函数,该函数需要传入一个数字,在函数内部,我们首先打印该数字,然后将数字加一,并且使用逗号表达式判断数字是否小于等于100,如果是,就递归调用函数。

这样,每次调用函数时,都会先打印数字,再将其加一,递归结束的条件是数字大于100,这样就避免了使用循环的情况下,实现从1到100的数字打印。