python提供了顺序结构、分支结构和循环结构方便用户进行流程控制。所谓顺序结构是在按照正常的书写格式书写的一行行代码,程序运行时会一行一行的执行这些代码美其名曰顺序结构。本章将对python的分支结构和循环结构进行详细说明,为了简洁明了的说明python的分支结构和循环结构,将展示大量示例代码。
所谓分支结构是指if语句的使用。下面说明if语句的三种使用形式:
第一种形式:
if expression :
statement...
第二种形式:
if expression :
statement...
else :
statement...
第三种形式:
if expression:
statement...
elif expression:
statement...
else :
statement...
对于if语句来说,除了False本身,各种代表“空”的None、空字符串、空元组、空列表和空字典都会被当成False处理。在使用if else分支语句时,一定要先处理包含范围更小的情况。另外,可以使用pass语句使程序更加完整。
s = input("请输入一个整数:")
s = int(s)
if s>5 :
print("大于5")
elif s<5 :
pass
else :
print("等于5")
断言和if分支有点相似,它用于对一个bool表达式进行断言,如果该表达式为True,该程序可以继续向下执行;否则该程序会引发AssertionError错误。
s_age = input("请输入您的年龄:")
age = int (s_age)
assert 20< age <80
print ("您输入的年龄在20到80之间")#如果输入不在此范围,报assersionError错误
对于循环结构而言,包含如下4个部分:
while循环的语法格式如下:
#while循环的语法格式:
[init_statements]
while test_expressin
body_statements
[iteration_statements]
#while循环应用实例
count_i=0
while count_i < 10 :
print("count:",count_i)
count_i+=1
print("循环结束")
#使用while循环遍历元组和列表
a_tuple = ('fkit','crazyit','charlie')
i=0
#只有i小于len(a_tuple),继续执行循环体
while i < len(a_tuple)
print(a_tuple(i))
i+=1
for-in循环专门用于遍历范围、列表、元素和字典等可迭代对象包含的元素。for-in循环的语法格式如下:
for 变量 in 字符串|范围|集合等
statements
for-in循环可用于遍历任何可迭代对象。可迭代对象是指该对象中包含一个_iter_方法,且该方法的返回值对象是next()方法。
s_max = input("请输入您想计算的阶乘:")
mx = int(s_max)
result = 1
#使用for-in遍历范围
for num in range(1,mx+1)
result *=num
print(result)
src_list = [12,45,33.4,13,'a',4,56,'crazyit',109.5]
my_sum=0
my_count=0
for ele in src_list
if isinstance(ele,int) or isinstance(ele,float)
print(ele)
my_sum+=ele
my_count+=1
print('总和:',my_sum)
print('平均数:',my_sum/my_count)
上面程序使用了python的isinstance()函数,该函数用于判断某个变量是否为指定类型的实例,其中前一个是要判断的变量,后一个参数是类型。
a_list = [330,1.4,50,'fkit',3.5]
for i in range(0,len(a_list)):
print("第%d个元素是%s"% (i,a_list[i]))
字典包含了如下几个方法:
my_dict = {'语文':89,'数学':92,'英语':80}
for key,value in my dict.keys():
print('key':key)
print('value:',value)
print('------------------------------------')
#通过key()方法遍历所有key
for key in my_dict.keys():
print('key:',key)
print('value:',my_dict[key])
for表达式最终返回的是列表,因此for表达式也被称为列表推导式。
a_range = range(10)
#对a_range执行for表达式
a_list = [x*x for x in a_range]
#a_list集合包含10个元素
print(a_list)
如果将for表达式的方括号改为圆括号,for表达式将不再生成列表,而是生成一个生成器(generator),该生成器同样可以使用for循环迭代。
#使用for表达式创建生成器
c_generator = (x*x for x in a_range if x % 2 ==0)
#使用for循环迭代生成器
for i in c_generator:
print(i,end='\t')
print()
可以使用for表达式进行嵌套:
d_list = [(x,y) for x in range(5) for y in range(4)]
print(d_list)
使用zip()可以将两个列表“压缩”成一个zip对象,如此就可以使用循环并遍历两个列表。
a=['a','b','c']
b=[1,2,3]
c=[0.1,0.2]
[x for x in zip(a,b)]
[('a',1),('b',2),('c',3)]
[x for x in zip(a,c)]
[('a',1,0.1),('b',2,0.2)]