尽管没有输入,代码仍在运行(Python)

时间:2020-06-02 16:22:26

标签: python-3.x

当用户不输入任何内容时,它应该返回并再次询问该问题。它可以与其他所有类型的输入一起正常工作。

代码如下:

string = ""

def str_analysis(string):

    while True:
        if string.isdigit():
            if int(string) > 99:
                print(str(string)+ " is a pretty big number!")
                break
            else:
                print(str(string)+ " is a smaller number than expected")
                break
        elif string.isalpha():
            print(string + " is an alphabetical character")
            break
        elif string == "":
            print("")
        else:
            print(string + " is a surprise! It's neither all alpha nor all digit characters!")
            break

print(str_analysis(input("Enter word or integer: ")))

2 个答案:

答案 0 :(得分:0)

这是因为当string为空时,您只是打印了一个空白的""

elif string == "":
    print("")
    # break it here or take input again
    # break or string = input()

答案 1 :(得分:0)

您的代码中有些东西没有意义。

1:

print(str_analysis(input(“输入单词或整数:”)))

您正在尝试打印没有返回值的函数的输出

2: 它无法循环返回并再次询问问题,因为输入未在函数内部进行。

3: 如果字符串为空,则不会破坏代码,但会不断打印换行符。

以下是我认为应该执行您想要的代码:

def str_analasys():
    while True:
        string = input("Enter word or integer: ")
        if string == '':
            continue

        elif string.isdigit():
            if int(string) > 99:
                print(str(string)+ " is a pretty big number!")
            else:
                print(str(string)+ " is a smaller number than expected")
        elif string.isalpha():
            print(string + " is an alphabetical character")
        else:
            print(string + " is a surprise! It's neither all alpha nor all digit characters!")

        break
str_analasys()