Python 2.7 Python“;应为缩进块”;

Python 2.7 Python“;应为缩进块”;,python-2.7,error-handling,Python 2.7,Error Handling,我正在运行以下脚本进行验证: def num_val(x): while True: try: userInput = raw_input("Please, enter the length of list " + x + " (only values from 1 to 100 are valid): ") val = int(userInput) except ValueError: print("Entered value m

我正在运行以下脚本进行验证:

def num_val(x):
while True:
    try:
        userInput = raw_input("Please, enter the length of list " + x + " (only values from 1 to 100 are valid): ")
        val = int(userInput)
    except ValueError:
        print("Entered value must be a number. Please, write the number again")
        continue
    if userInput < 1 or userInput > 100:
        print ("Entered value must be a number in range from 1 to 100. Please write the number again")
    else:
break
num_val("a")

你能告诉我那行有什么问题吗?

从复制和粘贴来看,你的代码可能混合了空格和制表符,这可能会导致奇怪的错误。以下内容适合我:

def num_val(x):
    while True:
        try:
            userInput = raw_input("Please, enter the length of list " + x + " (only values from 1 to 100 are valid): ")
            val = int(userInput)
        except ValueError:
            print("Entered value must be a number. Please, write the number again")
            continue
        if val < 1 or val > 100:    # <-- use "val" instead of "userInput"
            print ("Entered value must be a number in range from 1 to 100. Please write the number again")
        else:
            break

num_val("a")
def num_val(x):
尽管如此:
尝试:
userInput=raw_input(“请输入列表长度”+x+(只有1到100之间的值有效):”)
val=int(用户输入)
除值错误外:
打印(“输入的值必须是一个数字。请重新写入数字”)
持续

如果val<1或val>100:#删除
打印后的空格
@Oisin我对此没有任何问题-在py 2.7中,
print
是一条语句,因此
()
不是由单个字符串文字组成的表达式的运算。您的缩进可能是空格和制表符的混合体,如@cxw所指出的。尝试使用升华或任何其他编辑器拉回缩进(Shift+Tab),然后使用Tab重新缩进。手动删除空格并添加选项卡后,问题就解决了。
def num_val(x):
    while True:
        try:
            userInput = raw_input("Please, enter the length of list " + x + " (only values from 1 to 100 are valid): ")
            val = int(userInput)
        except ValueError:
            print("Entered value must be a number. Please, write the number again")
            continue
        if val < 1 or val > 100:    # <-- use "val" instead of "userInput"
            print ("Entered value must be a number in range from 1 to 100. Please write the number again")
        else:
            break

num_val("a")