在特定情况下,程序无法打印正确的输出

2024-10-05 10:58:49 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

def bizzBuzzAnalysis(n):
    n = int(input())
    bizz = 0
    buzz = 0
    if(n%7==0):
        print(n, "is divisible by 7. Add a bizz!")
        bizz+=1

    if(n%9==0):
        print(n, "is divisible by 9. Add a buzz!")
        buzz+=1

    r = str(n)
    for i in range(len(r)):
        if r[i] == "7":
            print("Digit is 7, add a bizz!")
            bizz+=1
        if r[i] == "9":
            print("Digit is 9, add a buzz!")
            buzz+=1
    if(bizz==0 & buzz == 0):
        print(r)
    else:
        print(("Bizz! " * bizz) + ("Buzz! " *buzz))


# input and function test
n = 0
bizzBuzzAnalysis(n)

当输入为99时,程序仍将打印该数字可被数字9整除并包含数字9。但是,它只打印该数字,而不打印应打印的短语。似乎大多数数字都包含9。我的if语句有什么问题吗


Tags: add密码inputbyifisdef数字
1条回答
网友
1楼 · 发布于 2024-10-05 10:58:49

&不是逻辑and运算符。您的表达式被解析为

if bizz == (0 & buzz) == 0:

这相当于

if bizz == 0 == 0:

因此buzz的实际值是不相关的。使用n == 99bizz的值实际上是0,因此只打印数字本身

当您的意思是and时,不要使用&

if bizz == 0 and buzz == 0:

相关问题 更多 >

    热门问题