Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2022, 13:26   #1
ZDS09KZ
Новичок
Джуниор
 
Регистрация: 22.11.2022
Сообщений: 1
По умолчанию Перевод дробей в натуральные и обратно

Всем привет. Только начинаю изучать Python, к сожалению, пока преподавателя нет.
Подскажите, пожалуйста, как сделать, чтобы при умножении натуральных чисел, ответ получался натуральный (ПРИМЕР 5х5=25 , а не 25.0)
И наоборот, если я пишу 5.5х3=16.5, а не 16 или 17.
Вот мой код. Буду рада, если поможете новичку, благодарю
----------------
what = input ("Какую функцию хотите выполнить?(+, -, /, *, **, sqrt)")
if what == "**":
a = float(input ("Введите первое число: "))
c = a*a
c = int(c)
print ("Результат: " + str(c))
elif what == "+":
a = float( input ("Введите первое число: ") )
b = float( input ("Введите второе число: ") )
c = a + b
c = float(c)
print("Результат: " + str(c))
elif what == "-":
a = float( input ("Введите первое число: ") )
b = float( input ("Введите второе число: ") )
c = a - b
c = int(c)
print("Результат: " + str(c))
elif what == "*":
a = float( input ("Введите первое число: ") )
b = float( input ("Введите второе число: ") )
c = a*b
print("Результат: " + str(c))
elif what == "/":
a = float( input ("Введите первое число: ") )
b = float( input ("Введите второе число: ") )
c = a/b
print("Результат: " + str(c))
elif what == "sqrt":
import math
a = float( input ("Введите первое число: ") )
c =a ** (0.5)
c = int (c)
print("Результат: " + str(c))
else:
print("Выбрана неверная операция!")
ZDS09KZ вне форума Ответить с цитированием
Старый 22.11.2022, 22:53   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

ZDS09KZ
Цитата:
Подскажите, пожалуйста, как сделать, чтобы при умножении натуральных чисел, ответ получался натуральный
Просто переводите строковое представление числа в целое:
Код:
a = int(input("Введите первое число: "))
Если в арифметической операции (сложение, вычитание, умножение) оба операнда целого типа, то и результат будет целого типа.
Если один или оба операнда вещественного типа, то результат будет вещественного типа.

PS:
1. Форматируйте код.
Введите свой код, выделите его, нажмите кнопку [CODE] над окном ввода.

2. Операция ** - это возведение в любую степень, а не в квадрат, как сделано у вас:
Код:
if what == "**":
    a = float(input ("Введите первое число: "))
    c = a*a
    c = int(c)
    print ("Результат: " + str(c))
3. Зачем в этом коде результат делать целого типа, а затем переводить в строковый тип?
Воспользуйтесь форматированным выводом.

4. Возможно, что ваш вопрос надо рассмотреть с другой стороны:
Пользователь вводит числа. Если числа целого типа, то надо выполнить преобразование к целому типу, а иначе - к вещественному.
В такой постановке вопроса вам поможет конструкция try - except (посмотрите в Сети)
У вещественного числа должна быть точка.
Если такое число приводить к целому типу, то будет ошибка, которую можно перехватить указанной конструкцией.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 26.11.2022, 22:12   #3
Areostar
Пользователь
 
Регистрация: 19.12.2007
Сообщений: 50
По умолчанию

кажеся в стандартной библиотеке есть функционал для превращения дробей
Areostar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод числа из 10-ую в 2-ую и обратно Frycher Помощь студентам 6 18.06.2015 20:01
Создание класса дробей. Пример на сложение двух дробей. Помогите найти ошибку (С++) Сергей.Ш Общие вопросы C/C++ 5 28.10.2013 13:24
перевод из текста в hex и обратно d4hl Общие вопросы Delphi 2 31.03.2012 16:56
Перевод из строки в число и обратно AsmBeginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 22.05.2010 18:49
Visual c++ перевод из textBox в инт и обратно Solncelikiy Visual C++ 9 08.10.2009 16:26