2014-01-30 7 views
0

Я пытаюсь взять пользовательский ввод несколько раз на python и затем взять его сумму.Python-Несколько пользовательских входов

Принимая несколько раз вход пользователя, мне нужна новая переменная каждый раз для хранения пользовательского ввода. Мне нужна программа, которая может принимать бесконечные пользовательские входы и, конечно же, невозможно назначить новую переменную бесконечным пользовательским входам и добавить их , Есть ли встроенная функция в python, которая может продолжать добавлять сами значения?

Вот мой код. Это не дает мне сумму из-за дозорного (я не понимаю, почему). Пожалуйста, помогите.

var = int(raw_input("Enter 1,2,3 or 4 for add,subtract,multiplication,division  respectively: ")) 
if var == 1: 
print "You chose to add.Lets add!! :)" 
def main(): 
total = 0.0 
while True: 
    number = int(raw_input('enter a number: ')) 
    if number == 0: 
    total+=number 
    break 
    print 'the total is', total 

основной()

ответ

0

Попробуйте это:

var = int(raw_input("Enter 1,2,3 or 4 for add,subtract,multiplication,division  respectively: ")) 
if var == 1: 
    print "You chose to add.Lets add!! :)" 

def main(): 
    total = 0.0 
    while True: 
     number = float(raw_input('enter a number: ')) 
     total+=number 
     if number == 0: 
      break 
    print 'the total is', total 

main() 

Это займет какой-либо вход и преобразовывать его в поплавок, добавить, что к общей сумме и, если вход 0 затем возврат ваш итог.

Чтобы сделать это более гибким, вы можете использовать следующее изменение, которое добавит все числа (включая 0) и выйдет, когда пользователь ничего не вводит.

total = float(raw_input('enter a number: ')) 
while True: 
    number = raw_input('enter a number: ') 
    if number == '': 
     break 
    total+=float(number) 
+0

** Что делать, если я хочу сделать то же самое для умножения? ** Я прочитал там нет встроенной функции для произведения чисел в Python, как есть на сложение, т.е. сумма (количество). и я не могу использовать списки, так как пользовательский ввод здесь постоянно меняется. – susan

+0

@susan, если вы хотите сделать то же самое для умножения, вы можете просто изменить 'total + = number' на' total * = number' – Ewan

+0

Пробовал it.but, что я должен изменить на последнюю строку? i.e ** печать «общая сумма», общая сумма ** не дает умноженный продукт. И тот же цикл не работает для вычитания с total- = number , он просто «добавляет» вверх «отрицательные» значения. – susan

Смежные вопросы