Member 13852296 Ответов: 1

Есть ли кто-нибудь, кто может помочь найти ошибку в моей программе Python


В моей программе, если я удаляю оператор return-1, я получаю правильный ответ, но в противном случае он продолжает возвращать -1. Почему он продолжает это делать?

Что я уже пробовал:

def findNextOpr(txt):
    #txt must be a nonempty string. 
    if len(txt)<=0 or not isinstance(txt,str):
        print("type error: findNextOpr")
        return "type error: findNextOpr"
    #In this exercise +, -, *, / are all the 4 operators
    #The function returns -1 if there is no operator in txt,
    #otherwise returns the position of the leftmost operator
    #--- continue the rest of the code here ----#
    op=['+','-','*','/']
    for i in range(len(txt)):
        if txt[i] in op:
            return(i)
        else:
            return(-1)
            
        
        
print(findNextOpr("1+2+3"))

1 Ответов

Рейтинг:
11

Patrice T

Цитата:
В моей программе, если я удаляю оператор return-1, я получаю правильный ответ, но в противном случае он продолжает возвращать -1. Почему он продолжает это делать?

Потому что с этим кодом вы получаете -1, если первая буква не является оператором.
Попробуй
def findNextOpr(txt):
    #txt must be a nonempty string. 
    if len(txt)<=0 or not isinstance(txt,str):
        print("type error: findNextOpr")
        return "type error: findNextOpr"
    #In this exercise +, -, *, / are all the 4 operators
    #The function returns -1 if there is no operator in txt,
    #otherwise returns the position of the leftmost operator
    #--- continue the rest of the code here ----#
    op=['+','-','*','/']
    for i in range(len(txt)):
        if txt[i] in op:
            return(i)
        else:
    return(-1)
            
        
        
print(findNextOpr("1+2+3"))


Member 13852296

Большое спасибо...работает отлично