Python 一种语句,其缩进与其前面的“;如果;语句将始终被执行?
我正在参加一个关于Python的在线课程Python 一种语句,其缩进与其前面的“;如果;语句将始终被执行?,python,Python,我正在参加一个关于Python的在线课程 if <TestExpression>: <block> i=21 与以下代码(“代码3”)相同: 这与他之前所说的不矛盾吗i=21和code2中的return b与之前的if语句具有相同的缩进,但是为什么无论测试表达式是真是假,i=21都将始终执行,而return b将仅在测试表达式(a>b)为假时执行 如何确定紧跟在与if行缩进相同的if构造之后的语句是否应该执行?换句话说,您如何确定该语句是否属于if构造的一部分?
if <TestExpression>:
<block>
i=21
与以下代码(“代码3”)相同:
这与他之前所说的不矛盾吗return b
与之前的if
语句具有相同的缩进,但是为什么无论测试表达式是真是假,i=21
都将始终执行,而return b
将仅在测试表达式(a>b)为假时执行
如何确定紧跟在与
if
行缩进相同的if
构造之后的语句是否应该执行?换句话说,您如何确定该语句是否属于if
构造的一部分?这是因为您不能从函数返回两次。当满足时,它将返回,不再执行任何语句。因此,无法访问下一个return
语句
下一个返回
仅在失败时执行<如果
失败,则当时也会执行code>else
这就是为什么你的老师说,他们都是一样的 这是你问的一个很好的问题,很多新人都有这个问题
问题在于return
关键字。在函数中,当它返回值时,函数立即中断。因此,不会运行函数中的后续代码。因此,我们可以将条件语句简写为:
if a > b:
return a
# Function breaks here - no more code is executed.
# This bit is never reached if a is returned
return b
注意:
def test():
if 10 > 5:
print("Hello!")
return True
print("Hi!")
return False
当我们调用test()
时,只有您好代码>已打印
这很有用的一个原因是,在Python中有多个条件语句时,可以阻止错误的空格。当然,在大多数其他编程语言中,因为空白不是一种特性,所以它不是必需的
假设您正在编写一个函数来检查一个数字是否为素数,其中需要很多条件语句。(当然,就本例而言,这并不高效):
知道返回
会破坏函数,我们可以将其重新编写为:
def is_prime(n):
if n == 1:
return False
if n == 2:
return True:
for i in range(2, n):
if n % i == 0:
return False # A factor exists
return True
看到缩进是如何变得如此干净了吗?区别在于您使用了函数。如果它到达一个return
语句,那么不管后面是什么,函数都会立即返回(停止)。
def test():
if 10 > 5:
print("Hello!")
return True
print("Hi!")
return False
def is_prime(n):
if n == 1:
return False
else:
if n == 2:
return True
else:
for i in range(2, n):
if n % i == 0:
return False # A factor exists
else:
continue
return True
def is_prime(n):
if n == 1:
return False
if n == 2:
return True:
for i in range(2, n):
if n % i == 0:
return False # A factor exists
return True