无论如何,有什么方法可以缩短这一点



在学习过程中非常初学者程序员。我只是想知道我输入的这个简单代码是否是最佳方法。

with open('guest_book.txt', 'a') as file_object:
    while True:
        name=input("What is your name?")
        print("Welcome " + name + ", have a nice day!")
        file_object.write(name + " has visited! n")
        another = input("Do you need to add another name?(Y/N)")
        if another == "y":
            continue
        elif another == "n":
            break
        else:
            print("That was not a proper input!")
            while True:
                another = input("Do you need to add another name?(Y/N)")
                if another == "y":
                    a = "t"
                    break
                if another == "n":
                    a = "f"
                    break
            if a == "t":
                continue
            else:
                break

我的问题在if语句中。当我询问输入时("您需要添加另一个名字?(Y/n)",如果我得到y或n以外的答案,我键入的是重新提出问题的最佳方法。我基本上想要如果我没有得到是或否答案,要重复的问题,而我发现的解决方案似乎不是最佳解决方案。

您基本上在那里。您可以简单:

with open('guest_book.txt', 'a') as file_object:
    while True:
        name=input("What is your name?")
        print("Welcome " + name + ", have a nice day!")
        file_object.write(name + " has visited! n")
        another = input("Do you need to add another name?(Y/N)")
        if another == "y":
            continue
        elif another == "n":
            break
        else:
            print("That was not a proper input!")
            continue

您可以使用函数在一个地方写下所有逻辑。

def calculate(file_object):
    name=raw_input("What is your name?")
    print("Welcome " + name + ", have a nice day!")
    file_object.write(name + " has visited! n")
    another = raw_input("Do you need to add another name?(Y/N)")
    if another == "y":
        calculate(file_object)
    elif another == "n":
        return
    else:
        print("That was not a proper input!")
        calculate(file_object)
if __name__=='__main__':    
    with open('guest_book.txt', 'a') as file_object:
        calculate(file_object)

您可以这样做,但是不会有任何无效的输入。它只会检查y

with open('guest_book.txt', 'a') as file_object:
    another = 'y'
    while another.lower() == 'y':
        name=input("What is your name?")
        print("Welcome " + name + ", have a nice day!")
        another = input("Do you need to add another name?(Y/N)")

相关内容

最新更新