如何用python改进这个小程序?

如何用python改进这个小程序?,python,python-3.x,Python,Python 3.x,这是我的密码。我想让它不要求多重计数,而是继续向多重计数添加数字,直到用户认为这足够了。我怎样才能做到这一点呢?例如,您可以使用while循环来实现,如下所示: def multiply(): nums = [] total = 1 multiplyCount = int(input("How many numbers do you want to multiply ? : ")) for x in range(multiplyCount): ne

这是我的密码。我想让它不要求多重计数,而是继续向多重计数添加数字,直到用户认为这足够了。我怎样才能做到这一点呢?

例如,您可以使用while循环来实现,如下所示:

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()
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()

有许多其他方法可以进一步改进这一点,但我将把这一点留给您:

您可以这样做:

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()
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最好的方法是使用sentinel值,如果用户想要停止,则由用户输入特定值。在以下代码中,要输入以完成的sentinel值为“Q”。显然,它可以根据程序员的选择进行修改,但在这种情况下,不建议选择整数/布尔值以允许用户乘以任何值

2此外,还可以使用变量代替列表。x*=y表示x=x*y

3变量res被初始化为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')

嘿,谢谢你的回答!但我不明白newNum.lower在这里做什么。你能解释一下吗?@Fingol它会将用户的输入字符串转换为所有小写字母。这样用户就可以输入'Quit'或'Quit'或'Quit'等结束循环。