Python 3.6.5中的三重嵌套不是不确定的

Python 3.6.5中的三重嵌套不是不确定的,python,python-3.x,Python,Python 3.x,我正在尝试对while循环进行三重嵌套。 若您输入一个十进制数,它将返回错误,若您输入的数字高于31,它将返回错误,但若您再次尝试输入十进制数,代码将停止。无论用户输入错误的格式多少次或顺序如何,都需要帮助使其不确定循环。还需要验证输入的日期是否对给定月份的天数有效 import string varD= input("Enter Date/Day:") while varD.isdigit() or varD.isspace()\ or varD.isdecimal or int(

我正在尝试对while循环进行三重嵌套。 若您输入一个十进制数,它将返回错误,若您输入的数字高于31,它将返回错误,但若您再次尝试输入十进制数,代码将停止。无论用户输入错误的格式多少次或顺序如何,都需要帮助使其不确定循环。还需要验证输入的日期是否对给定月份的天数有效

import string

varD= input("Enter Date/Day:")

while varD.isdigit() or varD.isspace()\
    or varD.isdecimal or int(varD)>31 \
    or int(varD)==26 or int(varD)<=0:
    print ("Error: Enter Valid Number!")
    varD= input("Enter Day:")

else:
    print ("You have entered:", varD)
导入字符串
varD=输入(“输入日期/日期:”)
而varD.isdigit()或varD.isspace()\
或varD.isdecimal或int(varD)>31\

或int(varD)==26或int(varD)使用无限循环,仅当满足所有条件时才中断

while True:
    varD = input("Enter Day:")
    if varD.isdigit() and not varD.isspace() and varD.isdecimal() \
            and int(varD) < 32 and int(varD) != 26 and int(varD) > 0:
        break
    print("Error: Enter Valid Number!")
print("You have entered: %s" % varD)

我会考虑把这个长的条件分解成单独的行。事实上,我也会这么做。我实际上是指几个<代码>如果语句,抱歉。我不太认为现在我写的方式比<<代码>如果语句更不可读。但我知道你是从哪里来的。是的,我刚刚意识到我必须完成上一次打印语句的代码,因为你的语句只是占位符,它可以工作。谢谢你有3个不同的连续循环。为什么不使用单个
而使用True
循环呢?
while expression1:
    while expression2:
        while expression3:
            do_something()