Как принять пользовательский ввод последовательности? - PullRequest
0 голосов
/ 18 декабря 2018

Я новичок в python и пытаюсь помочь подруге с ее кодом.Код получает ввод от пользователя до 0, используя цикл while.Я не привык к синтаксису Python, поэтому меня немного смущает вопрос о том, как получать пользовательский ввод.Я не знаю, что я делаю не так.Вот мой код:

sum = 0
number = input()
while number != 0:
   number = input()
   sum += number
   if number == 0:
     break

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

В вашем примере, while number != 0: и if number == 0: break контролируют, когда выходить из цикла.Чтобы не повторяться, вы можете просто заменить первое условие на while True и оставить только break.

Кроме того, вы добавляете, так что неплохо было бы повернуть ввод чтения (которыйявляется символьной строкой) в число с чем-то вроде int(input()).

Наконец, использование имени переменной, например sum, является плохой идеей, поскольку это «затеняет» встроенное имя sum.

Взяв все это вместе, вот альтернатива:

total = 0
while True:
    number = int(input())
    total += number
    if number == 0:
        break
print(total)
0 голосов
/ 18 декабря 2018
# Declare list for all inputs
input_list = []

# start the loop
while True:

    # prompt user input
    user_input = int(input("Input an element: "))
    # print user input
    print("Your current input is: ", user_input)

    # if user input not equal to 0
    if user_input != 0: 
        # append user input into the list
        input_list.append(user_input)

    # else stop the loop    
    else:
        break

    # sum up all the inputs in the list and print the result out
    input_sum = sum(input_list)
    print ("The sum is: ", input_sum)

Или

Если вы не хотите использовать list.

input_list = 0
while True:
    user_input = int(input("Input an element: "))
    print("Your current input is: ", user_input)

    if user_input != 0: 
        input_list += user_input

    else:
        break

    print ("The sum is: ", input_list)

Примечание:

raw_input('Text here')       # Python 2.x
input('Text here')           # Python 3.x
0 голосов
/ 18 декабря 2018

Не нужно последний if, а также введите int набрано:

sum = 0
number = int(input())
while number != 0:
   number = int(input())
   sum += number

Вы действительно можете сделать:

number=1
while number!=0:
   number = int(input())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...