这个布尔值我做错了什么

What am I doing wrong with this boolean

我有以下代码,但出现语法错误,怎么了? :

name = 'Carol'
age = 3000
if name == 'Alice':
    print('Hi, Alice')
        if age < 12:
              print('You are not Alice, kiddo.')
              else:
                  print('You are neither Alice nor a little kid.')
    

syntax error line 7(the else operator)

这是 python 格式的代码,运行。

name = 'Carol' 
age = 3000 
if name == 'Alice':  
    print('Hi, Alice')        
if age < 12: 
    print('You are not Alice, kiddo.')
else:
    print('You are neither Alice nor a little kid.')

https://realpython.com/run-python-scripts/ 将向您展示如何 运行 该程序。欢迎来到编程世界!

Python 中的缩进非常重要,目前尚不清楚缩进问题是由于您如何创建问题还是如何实际格式化代码。您的示例可能意味着以下任一情况:

name = 'Carol'
age = 3000
if name == 'Alice':
    print('Hi, Alice')
    if age < 12:
        print('You are not Alice, kiddo.')
    else:
        print('You are neither Alice nor a little kid.')

什么都不输出(对于提供的变量)

name = 'Carol'
age = 3000
if name == 'Alice':
    print('Hi, Alice')
if age < 12:
    print('You are not Alice, kiddo.')
else:
    print('You are neither Alice nor a little kid.')

输出“你既不是爱丽丝也不是小孩。”这可能是一个公然的谎言,因为以下内容将输出相同的内容:

name = 'Alice'
age = 3000
if name == 'Alice':
    print('Hi, Alice')
if age < 12:
    print('You are not Alice, kiddo.')
else:
    print('You are neither Alice nor a little kid.')

虽然这是一个微不足道的例子,但如您所见,它们生成的输出非常不同。我从生成的输出中怀疑,您正在寻找的是上面的第一个示例。

这里有点猜测,但是你把代码粘贴到 vi 了吗?如果是这样,vi 倾向于尝试提供帮助并缩进代码,但这可能会导致 text/code 每行的缩进量不断增加(可以通过更改 vi 配置进行修改)。

正如@Peter 所描述的那样,缩进在python 中非常重要,一个缩进可能会导致不同的结果或错误。在您的代码中,else 没有正确缩进。它的缩进必须与 if 相同。这会导致您的代码出现语法错误。

这将为您提供所需的结果:

name = 'Carol'
age = 3000
if name == 'Alice':
    print('Hi, Alice')
elif age < 12:
    print('You are not Alice, kiddo.')
else:
    print('You are neither Alice nor a little kid.')