请问怎么用python里最简单的while loop完成这几个代码?

发布网友

我来回答

1个回答

热心网友

只用while

def func1():
    while True:
        num = int(input('Enter a number: '))
        if num == -1:
            print('terminated')
            break
        for i in range(8):
            print(f'{num} * {i+1} = {num*(i+1)}')


def func2():
    while True:
        num = int(input('Enter a number: '))
        if num == -1:
            print('terminated')
            break
        fact = 1
        for i in range(1, num+1):
            fact *= i
        print(f'Factorial: {fact}')


def func3():
    while True:
        num = int(input('Enter a number: '))
        if num == -1:
            print('terminated')
            break
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                print('no')
                break
        else:
            print('yes')


def func4():
    sum_num = 0
    while True:
        print(f'Current Sum: {sum_num}')
        num = int(input('Number? '))
        if num == 0:
            print(f'Total Sum = {sum_num}')
            return
        sum_num += num


func1()
func2()
func3()
func4()

更好一点

def keep_go(f):
    def new_f(*args, **kwargs):
        while True:
            res = f(*args, **kwargs)
            if res is not None:
                print(res)
                break
    return new_f


@keep_go
def func1():
    num = int(input('Enter a number: '))
    if num == -1:
        return 'terminated'
    for i in range(8):
        print(f'{num} * {i+1} = {num*(i+1)}')


@keep_go
def func2():
    num = int(input('Enter a number: '))
    if num == -1:
        return 'terminated'
    fact = 1
    for i in range(1, num+1):
        fact *= i
    print(f'Factorial: {fact}')


@keep_go
def func3():
    num = int(input('Enter a number: '))
    if num == -1:
        return 'terminated'
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            print('no')
            break
    else:
        print('yes')


def func4(sum_num=0):
    print(f'Current Sum: {sum_num}')
    num = int(input('Number? '))
    if num == 0:
        print(f'Total Sum = {sum_num}')
        return
    func4(sum_num + num)


func1()
func2()
func3()
func4()

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com