【发布时间】:2019-12-29 17:24:48
【问题描述】:
我正在编写一个让用户逐行输入 RLE 的代码。然后我将输入的数据发送到解码它的函数。在函数中,我包含了一些基本的错误捕获。
我的错误是,当用户只能输入错误的数据时,他们选择的次数(他们选择了他们想要输入的行数)。即,如果用户输入了 2 行(共 3 行)正确的 RLE 行,然后输入了不正确的行,则代码不会要求再次输入 RLE,但如果他们在第一次或第二次输入时输入了错误的行,它会起作用。
代码:
if line_amount>2:
print ("Please enter the compressed data one line at a time")
while line_amount > counter:
compressed_data = input('->') #ENTER RLE DATA
counter+=1
RLEtoASCII(compressed_data,counter)
RLEtoASCII:
def RLEtoASCII(compressed_data,counter):
try:
pairs = [(int(compressed_data[i:i+2]), compressed_data[i+2]) for i in range(0, len(compressed_data), 3)]
global text
text = ''.join(n * c for n, c in pairs)
RLE_Inputs = open("Entered Data.txt", 'a+') #File that lists all the inputs
#[etc all the file writing]
except:
print('THERE WAS A PROBLEM WITH THE VALUES Please re-enter values.\n')
如果我尝试在例外之后调用RLEtoASCII,它会创建一个循环。 counter -=1 似乎在除了...
【问题讨论】:
标签: python loops error-handling try-except