Нажимая на кнопку "Задать вопрос", я даю согласие на обработку персональных данных

Задать вопрос
Задать вопрос
  • Питон! 70 баллов! Напишите программу, которая возвращает сумму 2 чисел. Если один из аргументов не является числом (целым или вещественным), функция должна вернуть строку:
    "1st argument is not a number"
    "2nd argument is not a number"
    "all arguments are not a numbers"

    • 31 October 2020
    • Ответ оставил: csharp

    Решение "в лоб": на логических конструкциях.

    isInt(s) - целочисленное ли число в строке

    isFloat(s) - вещественное ли число в строке

    Стоит внести ясность в конструкции на строках 25,  27 и 28. Начнём  по порядку:

    1. (int(a) if isIntA else float(a)) + (int(b) if isIntB else float(b)) - сумма результатов двух тернарных операторов, имеющих вид:

    <результат при True> if <условие> else <результат при False>

    Если перевести на русский язык: <перевод строки в целочисленное число>, если <в строке a целочисленное число>, иначе <перевод строки в вещественное число>. Аналогично с выражением после +.

    2. isIntOrFloatA ^ isIntOrFloatB - логическая операция XOR, которая возвращает True только в двух случаях: когда только один из операторов равен True или False.

    3. 1 if isIntOrFloatA == False else 2 - аналогичная первому выражению запись тернарного оператора: если isIntOrFloatA равняется False (если первый аргумент - не число), то выводим 1, иначе - 2.

    Код:

    1. def isInt(s):
    2.    try:  
    3.        int(s)
    4.        return True
    5.    except ValueError:
    6.        return False
    7. def isFloat(s):
    8.    try:  
    9.        float(s)
    10.        return True
    11.    except ValueError:
    12.        return False
    13. def sum(a, b):
    14.  isIntA = isInt(a)
    15.  isFloatA = isFloat(a)
    16.  isIntB = isInt(b)
    17.  isFloatB = isFloat(b)
    18.  isIntOrFloatA = isIntA or isFloatA
    19.  isIntOrFloatB = isIntB or isFloatB
    20.  if isIntOrFloatA and isIntOrFloatB:
    21.    return (int(a) if isIntA else float(a)) + (int(b) if isIntB else float(b))
    22.  else:
    23.    if isIntOrFloatA ^ isIntOrFloatB:
    24.      return "{}st argument is not a number".format(1 if isIntOrFloatA == False else 2)
    25.    else:
    26.      return "all arguments are not a numbers"
    27. a = input()
    28. b = input()
    29. print(sum(a, b))
    • НЕ НАШЛИ ОТВЕТ?
    Если вас не устраивает ответ или его нет, то попробуйте воспользоваться поиском на сайте и найти похожие ответы по предмету школьной программы: информатика.
    На сегодняшний день (18.08.2026) наш сайт содержит 109576 вопросов, по теме: информатика. Возможно среди них вы найдете подходящий ответ на свой вопрос.
  • Нажимая на кнопку "Ответить на вопрос", я даю согласие на обработку персональных данных

    Ответить на вопрос

Последние опубликованные вопросы

Сообщение записанное буквами 32 символьного алфавита содержит 20 символов. Чему равен информационный объём этого сообщения в байтах? Объем видеопамяти для хранения страниц изображения при условии, что разрешающая способность двух с дисплея плана 640*350 пикселей, а количество используемых цветов-16? Комитет можно составить из 3 или 5 судей. Есть 5 кандидатов, точность предсказаний которых приведена в таблице. Составьте ансамбль судей, имеющий наибольшую из возможных точность предсказания. В ан... 16. Шифр кодового замка является двузначным числом. Буратино забыл код, но помнит, что сумма цифр этого числа, сложенная с их произведением, равна самому числу. Напишите все возможные варианты кода... S<13 и не s чётное Получено сообщение, информационный объем которого равен 32 битам. Чему равен этот объем в байтах Каждый переданный кодовый символ может принят ошибочно с фиксированным вероятностью P Решать задачку по этой формуле P(zj/Uk) = P/N-1 при j≠k I-p при j=k В дощечку в ряд вбито 10 гвоздиков, таким образом, получилось 9 последовательных промежутков между ними. Длины промежутков (подряд, слева направо) оказались равны 7, 2, 8, 4, 3, 9, 5, 1, 6. Между н... Кто может подсказать почему не работает секундомер? (не добирает 60 секунд следовательно не переходит на следующую минуту) язык Python import time from tkinter import * from datetime import datetim... Pyhon (Информатика) Решить задачу: На тренировках спортсмен ежедневно пробегает некоторую дистанцию, с каждым днем увеличивая ее на 10%. Составить программу, определяющую по расстоянию, преодоленн... совокупность средств и правил взаимодействия человека с компьютером​ Что такое информатика в ИБ кратко
*{ message }*