ошибка File "C:\Python\rem.py", line 17 elif what == "выход": ^ SyntaxError: invalid syntax

errorsad

Новичок
Пользователь
Апр 10, 2020
25
3
3
Python:
from colorama import init
from colorama import Fore, Back, Style

init()

print( Back.GREEN)

while True:

    what = input("введи знак (+,-,*,/,%,**,p,per):")

    for what in range(len(what)):
        if what != "+,-,*,/,%,**,p,per":
            print("нет такого дествия")
            continue

    elif what == "выход":   
        print("выхожу")
        break
    
    a = float(input("введите первое число : "))
    b = float(input("введите второе число : "))

    if what == "+":
        c = a + b
        print("ваш ответ человек: " + str(c))
        continue
    elif what == "p":
        c = a * b * 3,14
        print("ответ: " + str(c))
        continue 
    elif what == "-":
        c = a - b
        print(" ответ: " + str(c))
        continue
    elif what == "*":
        c = a * b
        print(" ответ: " + str(c))
        continue
    elif what == "/":
        c = a / b
        print(" ваш ответ " + str(c))
        continue
    elif what == "%":
        c = a / 100 * b
        print("ваше решение" + str(c))
        continue
    elif what == "**":
        c = a**b
        print("ваш ответ" + str(c))
        continue
    elif what =="per":
        c = (a + b) * 2
        print
        print("ваш пиреметра" + str(c))
        continue
    else:
        ("нет такого действия бро")
        continue
виндоус 7
 

Vlad_SD

Активный пользователь
Пользователь
Апр 7, 2020
91
45
18
1. конструкция if --> elif --> else должна отделяться равный количеством отступов. у тебя elif выполняется после завершения цикла и перед ним нет if с тем же количеством отступов
Python:
cmd_list = ['+', '-', '*', '/', '%', '**', 'p', 'per']
while True:
    what = input("введи знак (+,-,*,/,%,**,p,per):")
    if what == "выход":
        print("выхожу")
        break

    elif what not in cmd_list:
        print("нет такого дествия")
        continue
2. нет смысла прогонять цикл, если собираешься выйти из программы, помести его сразу после ввода пользователя
3. если вынести все команды в список, то можно обойтись без цикла и проверить через in not in
 

shishkinav

Пользователь
Пользователь
Апр 18, 2020
11
9
3
у Вас elif по отступам находится под for, а должен находится под if
 
  • Мне нравится
Реакции: Student и Vlad_SD

errorsad

Новичок
Пользователь
Апр 10, 2020
25
3
3
спасибо все понял
 
  • Мне нравится
Реакции: shishkinav

Форум IT Специалистов