stepik ругается.

shohver

Новичок
Пользователь
Дек 21, 2024
1
0
1
Stepik не поддается калькулятор везде работает, все примеры решает как надо, а степик выдает ошибку. Помогите пожалуйста , что не так?

Failed test #1 of 37. Cannot check answer. Perhaps output format is wrong. This is a sample test from the problem statement! Test input: 5.0 0.0 mod Correct output: Деление на 0! Your code output: введите первое числовведите второе числооперация:(+,-,*,/,mod,pow,div):Деление на 0!
Свернуть

Time Limit: 5 секунд
Memory Limit: 256 MB







1
a=float(input('введите первое число'))
2
b=float(input('введите второе число'))
3
c=input('операция:(+,-,*,/,mod,pow,div):')
4
if c=='+':
5
print(a+b)
6
elif c=='-':
7
print(a-b)
8
elif c=='*':
9
print(a*b)
10
elif c=='/'and b==0:
11
print('Деление на 0!')
12
elif b!=0:
13
print(a/b)
14
elif c=='mod'and b==0:
15
print('Деление на 0!')
16
elif b!=0:
17
print(a%b)
18
elif c=='pow':
19
print(a**b)
20
elif c=='div'and b==0:
21
print('Деление на 0!')
22
elif b!=0:
23
print(a//b)


Test input:
Запустить код
Test output:
введите первое числовведите второе числооперация:(+,-,*,/,mod,pow,div):Деление на 0!
Python:
Failed test #1 of 37. Cannot check answer. Perhaps output format is wrong.

This is a sample test from the problem statement!

Test input:
5.0
0.0
mod
Correct output:
Деление на 0!

Your code output:
введите первое числовведите второе числооперация:(+,-,*,/,mod,pow,div):Деление на 0!

Time Limit: 5 секунд
Memory Limit: 256 MB
el
1
a=float(input('введите первое число'))
2
b=float(input('введите второе число'))
3
c=input('операция:(+,-,*,/,mod,pow,div):')
4
if c=='+':
5
    print(a+b)
6
elif c=='-':
7
    print(a-b)
8
elif c=='*':
9
    print(a*b)
10
elif c=='/'and b==0:
11
    print('Деление на 0!')
12
elif b!=0:
13
    print(a/b)   
14
elif c=='mod'and b==0:
15
    print('Деление на 0!')
16
elif b!=0:
17
    print(a%b)
18
elif c=='pow':
19
    print(a**b)
20
elif c=='div'and b==0:
21
    print('Деление на 0!')
22
elif b!=0:
23
    print(a//b)
Test input:
5.0
0.0
mod
Test output:
введите первое числовведите второе числооперация:(+,-,*,/,mod,pow,div):Деление на 0!
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
435
120
43
Нормально вставь код
 

Dr. Mundo

Модератор
Команда форума
Модератор
Фев 13, 2024
21
1
3
Основная ошибка заключается в структуре условных операторов и проверке операций.

Python:
a = float(input())
b = float(input())
c = input()

if c == '+':
    print(a + b)
elif c == '-':
    print(a - b)
elif c == '*':
    print(a * b)
elif c == '/':
    if b == 0:
        print('Деление на 0!')
    else:
        print(a / b)
elif c == 'mod':
    if b == 0:
        print('Деление на 0!')
    else:
        print(a % b)
elif c == 'pow':
    print(a ** b)
elif c == 'div':
    if b == 0:
        print('Деление на 0!')
    else:
        print(a // b)

Основные изменения:
  1. Убраны текстовые подсказки в input() - Степик сам подает входные данные, поэтому они не нужны
  2. Исправлена структура условий - теперь для каждой операции сначала проверяется тип операции, а затем внутри проверяется деление на ноль
  3. Убраны лишние проверки b!=0
  4. Поправлена логика для операций деления - проверка на ноль происходит внутри соответствующего блока операции
Теперь код должен корректно обрабатывать все тестовые случаи, включая деление на ноль для операций /, mod и div.
 

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