在python上缩进时遇到问题
问题描述:
我不知道如何用这段代码修复python上的标识问题。 因为这一切都在这一刻抛出。当我运行它。在python上缩进时遇到问题
import math
p = int(raw_input("Please enter deposit amount: \n"))
i = int(raw_input("Please input interest rate: \n"))
t = int(raw_input("Please insert number of years of the invesment: \n"))
interest = raw_input("Do you want a simple or compound interest ? \n")
A =p(1+r*t)
B =p (1+r)^t
if interest == "simple":
print int(float(A))
elif interest == "compound":
print int(float(B))
答
Python需要缩进语句块以定义块结束的位置。某些语言使用大括号({
,}
)或其他符号来分隔块的开始和结束。但是,在Python中,行末尾的冒号(:
)表示下一行是块的开头,块必须比冒号所在的行缩进得更多,块中的每一行都必须缩进确切的数额。任何以下行回到带有冒号的行的原始缩进级别(或者反向缩进(反向凹陷?)甚至更进一步)表示该块的结束。
所以......
你if
块(单一的if
线以下代码行)应缩进比if
线本身。 elif
行不缩进,因为它不是if
块的一部分。与elif
行和elif
块类似。
因此,对于你的最后4行缩进应该是:
if interest == "simple":
print int(float(A))
elif interest == "compound":
print int(float(B))
大多数语言,缩进仅仅是风格和可读性。使用Python它也是语法的一部分。
答
当你用Python语言编写
if a == b:
print c
您if
的if
必须运行一些代码,如果它的条件为真。
当你的,如果所做的不仅仅是一件事
if a == b:
print c
print b
它并不总是很清楚哪些动作是绑在if
的条件
if a == b:
print c
print b
在这种情况下,Python不知道更多是否只有print b
如果a == b
或print b
这两种方式。 当代码不清晰时,电脑不喜欢它。
File "broken.py", line 2
print(c)
^
IndentationError: expected an indented block
但是有一件事我们可以做,使其更清晰。
像这样
if a == b:
print c
print b
现在,Python可以告诉大家,print b
是不依赖于如的条件,因为它不是缩进。
TL; DR: 最后4行你的程序应该是
if interest == "simple":
print int(float(A))
elif interest == "compound":
print int(float(B))
插入两/四/ 16位两个'print'语句之前。 –