条件语句
所谓条件语句,顾名思义,就是依据某个条件,满足这个条件后执行下面的内容。
if
if
是构成条件语句的关键词,在Python中,if
条件语句最简单的实现方式如下:
a = 2
if a == 2 :
print ( 'a=2' )
在上面简陋但仍可行的程序中,语句if a == 2:
,如果条件a == 2
返回的是True
,那么就执行下面的语句。特别注意,冒号是必须有。此外,在条件成立时执行的print('a=2')
中,前面要有4个空格。这是Python的特点,称为语句块。 在《维基百科》是这样解释的: Python开发者有意让违反了缩排规则的程序不能通过编译,以此来使程序员养成良好的编程习惯。并且Python语言利用缩排表示语句块的开始和结束(Off-side规则),而非使用花括号或者某种关键词。增加缩排表示语句块的开始,而减少缩排表示语句块的结束。缩排成为了语法的一部分,例如上面的if
语句。 根据PEP的规定,必须使用4个空格来表示每级缩排。使用Tab字符和其他数目的空格虽然可以编译通过,但不符合编码规范。支持Tab字符和其他数目的空格仅仅是为了兼容很旧的Python程序和某些有问题的编辑程序。
if…elif…else
在实际的应用中,仅用if
往往是不够的,即第一个条件不足以判断所有情况,这时就需要引入别的条件判断,所以就有了if...elif...else
语句。其基本语句结构如下:
if 条件1 :
语句块1
elif 条件2 :
语句块2
elif 条件3 :
语句块3
. . . .
else :
语句块n
具体例子:
print ( '请任意输入一个整数:' )
num = int ( input ( ) )
if num == 5 :
print ( '输入的数字为:{}' . format ( num) )
elif num > 5 :
print ( '输入的数字为:{},大于5' . format ( num) )
else :
print ( '输入的数字为:{},小于5' . format ( num) )
当然,在实际的应用中可不会这么简单,甚至有嵌套的语句,如:
if expression:
pass
if expression:
pass
elif expression:
pass
else :
pass
elif expression:
pass
else :
pass
三元运算符
三元运算,是条件语句中比较简练的一种表达方式,其基本结构如下:
A = 95
score = "Good" if A > 90 else "Bad"
print ( score)
从上面的例子看,实际上就是把if...else
语句写到一行,如果要抽象成公式,大概就是这样的:A = X if Y else Z
如果Y
为真,那么就执行A = X
如果Y
为假,则执行A = Z
注意,三元运算中,if
与else
后面都不需要跟冒号:
。
循环语句
for
在高级编程语言中,大多数都有for
循环,它是编程语言中针对可迭代对象的语句,它允许代码被重复执行。for
循环的一般格式如下:
for < variable> in < sequence> :
< statements>
else :
< statements>
实例:
lang = [ 'Python' , 'Java' , 'C++' , 'C' ]
for i in lang:
print ( i)
for
是发起循环的关键词,i in lang
是循环规则,列表类型对象是序列类型,可以从左到右一个一个地按照索引将序列中的元素读取出来。当i=Python
时打印print(i)
此时的i
自然是Python
,如此循环直到最后一个元素,循环自动结束。
range(start,stop[,step])
range()
这个内建函数因为经常与for
循环一起结合使用,所以接下来结合循环来讲一下range()
。 首先解释一下range(start,stop[,step])
的含义:
start:开始的数值,默认为0,也就是如果不写这项,则默认start=0
。 stop:结束的数值,必须写。 step:变化步长,默认为1,也可以是正数也可以是负数。
>> > list ( range ( 0 , 5 , 1 ) )
[ 0 , 1 , 2 , 3 , 4 ]
>> > list ( range ( 0 , 9 , 2 ) )
[ 0 , 2 , 4 , 6 , 8 ]
>> > list ( rang( 0 , - 9 , - 1 ) )
[ 0 , - 1 , - 2 , - 3 , - 4 , - 5 , - 6 , - 7 , - 8 ]
值得注意的是,在range()
函数中,输出值是不包括stop
值的,也就是其参数是一个半开区间[start,stop)
。有了以下的介绍,下面可以把range()
和for
结合起来讲了,直接看以下例子:
lang = [ 'Python' , 'Java' , 'C++' , 'C' ]
n = len ( lang)
for i in range ( n) :
print ( lang[ i] )
上面的n
实际上就是lang
列表的长度即为4,则range(n)
就相当于range(4)
,如果写完整点就是range(0,4,1)
,然后将i
作为索引输出列表的每一项元素。
while
Python中while
语句的一般形式:
while 判断条件( condition) :
执行语句( statements) ……
具体实例:
n = 100
sum , i = 0 , 1
while i <= n:
sum += i
i += 1
print ( sum )
break与continue
break
,在某个地方中断循环,跳出循环体。
n = 5
while n > 0 :
if n == 2 :
break
else :
print ( n)
n -= 1
for i in range ( 1 , 5 ) :
if i == 2 :
break
else :
print ( i)
continue
,从当前位置跳到循环体的最后一行的后面,即跳出当前当轮循环进行下一轮循环。
n = 6
while n > 0 :
n -= 1
if n % 2 == 0 :
continue
else :
print ( n)
for i in range ( 1 , 6 ) :
if i % 2 == 0 :
continue
else :
print ( i)
while … else
while...else
有点类似与if...else
,一旦遇到else
,就意味着已经不在while
循环内了。
n = 5
while n > 0 :
print ( n)
n -= 1
else :
print ( "n <= 0" )
for … else
for...else
,与while...else
类似
for i in range ( 1 , 5 ) :
print ( i)
else :
print ( "is out of range" )