Python语法错误。初学者的琐事代码

时间:2017-06-15 15:49:20

标签: python syntax-error

我想创建一个简单的程序来计算用户输入方法和半径的圆的面积。

我经常收到错误:IndentationError: expected an indented block
出了什么问题?

print("1 Exact | 2  π(r*r)")
choice=input()
if int(choice)>2:
print("Restart and hit 1 or 2")

if choice=="1":
pi=22/7
print("radius=...")
radius=int(input)
area=pi(radius**2)
print(area)

else: 

pi2='π'
print("radius=...")
radius2=int(input)
squareradius=int(radius2**2)
str(squareradius)
area2=pi2+squareradius
print("area2")

2 个答案:

答案 0 :(得分:1)

Python通过缩进单独表示块。你的“真实”和“其他”分支必须缩进。您无法缩进前导print语句。这符合您的预期逻辑吗?

print("1 Exact | 2  π(r*r)")
choice=input()
if int(choice)>2:
    print("Restart and hit 1 or 2")

if choice=="1":

    pi=22/7
    print("radius=...")
    radius=int(input)
    area=pi(radius**2)
    print(area)

else: 

    pi2='π'
    print("radius=...")
    radius2=int(input)
    squareradius=int(radius2**2)
    str(squareradius)
    area2=pi2+squareradius
    print("area2")

你确实有其他问题,但这会让你更接近执行。首先,您永远不会在 else 分支中打印计算值 - 只是一个文字字符串。

除此之外,我强烈建议您练习增量编程:一次只编写一行或两行,并且在语法合法并执行您想要的操作之前不要继续。使用print语句可以随时跟踪值 - 并在以后删除它们。如果您还没有设法读取前4行中的值,则无需获得20行代码。

答案 1 :(得分:1)

Python使用缩进来定义代码块。

这很重要,因为没有它,解释器无法知道预期该代码块的一部分。

if x == 5:
print ('foo')
print ('bar')

(忽略缺少缩进导致错误) 如果x==5会发生什么?

foo
bar

如果不是吗?什么呢?它打印什么?是否会打印bar

那么,缩进如何解决这种混乱?

这样做:

if x == 5:
    print ('foo')
    print ('bar')

将打印     FOO     酒吧 当x==5时没有其他

if x == 5:
    print ('foo')
print ('bar')

将打印

foo
bar

x==5

bar

,否则