如何在while循环中连接两个值?

3
print("Welcome to the CALCULATORBRO. Please type 'finish' when you have finished.")
CALCULATOR = []
number = ""
operator = ""
while number or operator != "finish":
    number = input("Please insert a number.")
    while number.isdigit() is False:
        number = input("Please insert a number")
        CALCULATOR.append(number)
        operator = input("Insert an operator.")
        OPERATORLIST = ["+", "-", "/", "*"]
        while operator not in OPERATORLIST:
            operator = input("Please insert an operator.")
            CALCULATOR.append(operator)

你好!我学习 Python 已经 3-4 天了,写了一些这样的代码。我的计划是从列表(CALCULATOR)中取值并将它们作为操作执行。但是,我无法正确地编写第一个 while 循环。我该如何在“operator”和“number”输入上应用 while 循环呢?

非常感谢。

2个回答

2
while number or operator != "finish": 改为 while number != "finish" and operator != "finish":
while number or operator != "finish": 首先检查 bool(number) 是否为 True(当字符串包含内容时,它将为 True),然后检查 operator 是否不等于 "finish",最后检查结果是否为 True。

谢谢,我已经修复了你提到的错误。现在它运行得很好! - Deniz Kaya
@DenizKaya请接受我的答案! - TheEagle
@DenizKaya 如果你不知道怎么做:你必须点击帖子左侧的灰色复选标记! - TheEagle

1
您可以在循环中任何时候使用break,只需用户提供finish即可。
如果您使用while number or operator != "finish":,会出现问题。
while number.isdigit() is False:
    number = (input("Please insert a number"))

用户无法提供finish,因此用户无法退出循环。用户必须强制输入数字。

print("Welcome to the CALCULATORBRO. Please type 'finish' when you have finished.")
CALCULATOR = []
number = ""
operator = ""
while True:
    number = input("Please insert a number 1: ")
    if (number == 'finish'): # break the loop and come out
        break
    while number.isdigit() is False:
        number = (input("Please insert a number2: "))
        if (number == 'finish'): # break the loop and come out
            break
    CALCULATOR.append(number)
    operator = input("Insert an operator.")
    if (operator == 'finish'):# break the loop and come out
        break
    OPERATORLIST = ["+", "-", "/", "*"]
    while operator not in OPERATORLIST:
        operator = input("Please insert an operator.")
        if (operator == 'finish'): # break the loop and come out
            break
    CALCULATOR.append(operator)
    number = input("Please insert a number 2: ")
    if (number == 'finish'):# break the loop and come out
        break
    while number.isdigit() is False:
        number = (input("Please insert a number 2: "))
        if (number == 'finish'): # break the loop and come out
            break
    CALCULATOR.append(number)
    print('result',eval("".join(CALCULATOR)))

非常感谢您! - Deniz Kaya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接