#python #python-3.x
#python #python-3.x
Вопрос:
def multiply():
nums = []
total = 1
multiplyCount = int(input("How many numbers do you want to multiply ? : "))
for x in range(multiplyCount):
newNum = int(input("Enter a number: "))
nums.append(newNum)
for x in range(len(nums)):
total *= nums[x]
print(total)
multiply()
Вот мой код. Я хочу, чтобы она не запрашивала multiplyCount, а вместо этого продолжала добавлять числа в multiplyCount, пока пользователь не решит, что этого достаточно. Как я могу это сделать?
Ответ №1:
Вы могли бы использовать что-то вроде этого:
total = 1
while True:
choice = input('Enter a number to be multiplied, or stop to terminate: ')
if choice.lower() == 'stop':
break
try:
total *= int(choice)
print('Current total is {}'.format(total))
except ValueError:
print('Only enter numbers or stop')
Ответ №2:
Вы могли бы, например, сделать это с помощью while
цикла, вот так:
def multiply():
nums = []
total = 1
while True:
newNum = input("Enter quit or a number: ")
if newNum.lower() == "quit":
break
else:
nums.append(int(newNum))
for x in range(len(nums)):
total *= nums[x]
print(total)
multiply()
Есть много дополнительных способов дальнейшего улучшения этого, но я оставлю это вам 🙂
Комментарии:
1. Привет, спасибо за ответ! Но я не понял, что такое newNum. lower() выполняет здесь. Можете ли вы это объяснить?
2. @Fingol это преобразует строку ввода пользователя во все строчные буквы. Чтобы пользователь мог ввести ‘Quit’ или ‘QUIT’ или ‘quiT’ и т.д., Чтобы завершить цикл.
Ответ №3:
(1) Лучший способ — использовать контрольное значение, пользователь должен ввести конкретное значение, если он хочет остановиться. В следующем коде контрольное значение, которое нужно ввести для завершения, равно ‘Q’. Очевидно, что ее можно модифицировать по выбору программиста, но в этом случае не рекомендуется выбирать целое / логическое значение (чтобы позволить пользователю умножать любое значение).
(2) Кроме того, вместо вашего списка можно использовать переменную. (x *= y означает x = x * y)
(3) Переменная res инициализируется значением 1, потому что это целое число нейтрально при умножении.
def multiply():
res, number = 1, 1
while number != 'Q':
res *= int(number)
number = input("Enter a number (Q for leave): ")
print(res)