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")