Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/88: Рейтинг темы: голосов - 88, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 8

Калькулятор на Python

31.10.2021, 20:20. Показов 17670. Ответов 5

Студворк — интернет-сервис помощи студентам
Модифицируйте программу калькулятор из задачи 2 таким образом, чтобы пользователь мог вводить не два числа, а сколько он хочет. Теперь программа должна спрашивать действие и количество операндов (то есть чисел). После этого пользователь вводит то количество чисел, которое он заказал. Используйте только консоль и текстовый редактор.

Пример работы программы в консоли:
Выберите операцию: +
Сколько операндов? 4
Введите операнд 1: 6
Введите операнд 2: 43
Введите операнд 3: 11
Введите операнд 4: 0

6 + 43 + 11 + 0 = 60

Сделал калькулятор, но с 2мя операндами. Как сюда прикрутить цикл для запроса нескольких операндов?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def math():
  while True:
    num1 = int(input('Введите первое число: '))
    num2 = int(input('Введите второе число: '))
    action = input('Введите действие: ')
 
    if action == '+':
      print(num1, '+', num2, '=', num1 + num2)
    elif action == '-':
      print(num1, '-', num2, '=', num1 - num2)
    elif action == '*':
      print(num1, '*', num2, '=', num1 * num2)
    elif action == '/':
      print(num1, '/', num2, '=', num1 / num2)
    else:
      print('Ошибка. Такой операции не существует. Попробуйте ещё раз')
      math()
 
math()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2021, 20:20
Ответы с готовыми решениями:

Калькулятор в Python
Люди добрые, у меня не получается сделать следующее задание: Реализовать на языке Python программу-калькулятор реализующую вычисление...

Калькулятор на Python
Нужно написать программу , которая будет принимать на вход строку и выдавать результат в соответствии с математическим обозначением...

Калькулятор на Python-е
Помогите пожалуйста с написанием калькулятора на Python. "Python"-тема курсовой, а в ней нужно написать калькулятор с интерфейсом и ...

5
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
01.11.2021, 07:50
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import operator
import functools
 
operations = {
    "+": operator.add,
    "-": operator.sub,
    "*": operator.mul,
    "/": operator.truediv
}
 
operation = input("Выберите операцию: ")
values = [input(f"Введите операнд {i + 1}: ")
          for i in range(int(input("Сколько операндов? ")))]
result = functools.reduce(operations[operation], map(float, values))
print(f" {operation} ".join(values), "=", result)
0
0 / 0 / 0
Регистрация: 20.01.2022
Сообщений: 1
20.01.2022, 17:06
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
operation = input('Введите операцию: ')
N = int(input('Сколько операндов? '))
print('')
 
string = ''
result = 0
rresult = 1
if operation == '+':
  for x in range(1, N + 1):
    n = float(input('Введите операнд ' + str(x) + ': '))
    if x == N:
      string += str(n)
      result += n
      break
    string += str(n) + ' + '
    result += n
  print('\n', string, '=', result)
elif operation == '-':
  for x in range(1, N + 1):
    n = float(input('Введите операнд ' + str(x) + ': '))
    if x == 1:
      raz = n
      string += str(n) + ' - '
    elif x != 1:
      raz -= n
      if x == N:
        string += str(n)
        break
      string += str(n) + ' - '
  print('\n', string, '=', raz)
elif operation == '/':
  for x in range(1, N + 1):
   n =float(input('Введите операнд ' + str(x) + ': '))
   if x == 1:
      raz = n
      string += str(n) + ' : '
   elif x != 1:
    raz /= n
    if x == N:
      string += str(n)
      break
    string += str(n) + ' : '
  print('\n', string, '=', raz)
elif operation == '*':
  for x in range(1, N + 1):
   n = float(input('Введите операнд ' + str(x) + ': '))
   if x == N:
      string += str(n)
      rresult *= n
      break
   string += str(n) + ' * '
   rresult *= n 
  print('\n', string, '=', rresult)
else:
  print('Ошибка: такой операции не существует. Попробуйте ещё раз.')
0
 Аватар для Aviz__
2744 / 2053 / 507
Регистрация: 17.02.2014
Сообщений: 9,473
20.01.2022, 17:23
Цитата Сообщение от MaxFrost2709 Посмотреть сообщение
спрашивать действие и количество операндов
зачем? можно все сразу))
Python
1
2
3
print("Введите мат. выражение. Например: 2 + 5*3")
expression = input()
print(expression + ' = ' + str(eval(expression)))
2
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
21.01.2022, 02:52
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
def make_op( op, nums ):
    res = nums[0]
    for i in range( 1, len(nums) ):
        match op:
            case '+':
                res += nums[i]
            case '-':
                res -= nums[i]
            case '*':
                res *= nums[i]
            case '/':
                if nums[i] == 0:
                    if res == 0:
                        res = float('nan')
                    elif res > 0:
                        res = float('inf')
                    elif res < 0:
                        res = float('-inf')
                    else:
                        res = float('nan')
                else:
                    res /= nums[i]
    s = (' ' + op + ' ').join( map( str, nums ) ) + ' = ' + str(res)
    return s
#==============================================================================
while True:
    s_ops = '+-*/'
    while True:
        op = input(f'Введите операцию из { s_ops }: ')
        if op in s_ops:
            break
    nums = [ int( input( f'Введите операнд {i+1}: ' ) ) for i in range( int( input('\nСколько операндов? ') ) ) ]
    s = make_op( op, nums )
    print( s, '\n\n' )
0
34 / 28 / 6
Регистрация: 23.06.2021
Сообщений: 145
21.01.2022, 20:55

Python
1
print(eval(input('Введите математический пример: ')))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2022, 20:55
Помогаю со студенческими работами здесь

Калькулятор на python
Здравствуйте. Есть код, нужно дописать функцию для вычисления факториала и добавить константы П(3,1415926)и е(2,71828) from tkinter...

Калькулятор на python
#калькулятор a = float(input(&quot;Введите первое число: &quot;)) b = float(input(&quot;Введите второе число: &quot;)) operation = (&quot;Что...

Калькулятор в python
from tkinter import * root = Tk() root.title(&quot;Calculator&quot;) def tastare_1(): linie_date.insert(END, &quot;1&quot;) def...

Калькулятор в python
Исправьте ошибку в данном коде. from tkinter import * root = Tk() root.title(&quot;Calculator&quot;) def tastare_1(): ...

Python калькулятор
Можно ли как-то в коде ниже полностью отделить оформление(tkinter) от основного кода. from tkinter import * from decimal import * ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru