程序设计的3种基本结构
选择结构
if表达式:
Ture语句块
else :
False语句块
if表达式1:
语句块1
…
if 表达式11:
语句块11…
else:
语句块12
…
else:
语句块2
if表达式1:
语句块1
elif表达式 2 :
语句块2
…
elif表达式 n :
语句块n
else:
语句块n+1
【示例】选择结构的嵌套问题。购买地铁车票的规定如下:
乘1-4站,3元/位;
乘5-9站,4元/位;
乘9站以上,5元/位。
输入人数、站数,输出应付款。
#改用elif:
n, m = input("请输入人数,站数: ")
if m < 0:
print "站数小于等于0"
elifm <= 4:
pay = 3 * n
elif m <= 9: # 这里的隐含条件是 m > 4 且 m <= 9
pay = 4 * n
else: # 这里的隐含条件是 m > 9
pay = 5 * n
print "应付款:", pay
复合赋值语句
复合赋值运算符:
+=、-=、*=、/=、%=、//=
复合赋值语句的形式:
变量名复合赋值运算符表达式
作用:
Ø计算右边表达式的值
Ø再与左边的变量进行相应的运算
Ø最后赋值给变量
如:
a*=b等价于a=a*b
Sum+=x等价于sum=sum+x
n+=1等价于n=n+1
循环结构概述
循环结构是一种重复执行的程序结构。实际应用中,常会碰到一些需要重复执行的步骤,如级数求和、统计报表等等。
for语句
Python中的for语句与传统的for语句不太一样,它接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中的一个元素。
for取值 in 序列:
循环体
for语句的执行过程是:
每次循环,判断循环索引值是否还在序列中,如果在,取出该值提供给循环体内的语句使用;如果不在,则结束循环。
range( )函数
语法:range(start, end, step)
说明:range( )函数会产生1个包含所有等差数列级数k的列表,k每次递增step,step不能为0,可正可负
两种简略用法:
range(end):当提供1个参数时,start为0,step为1,range( )函数返回从0到end的数列。
range(start,end):当提供2个参数时,step为1,range( )函数返回从start到end的数列。
for语句用于序列类型
列表、元组、字符串都是序列。
序列类型有着相同的访问模式:它的每一个元素可以通过指定一个偏移量的方式得到;而多个元素可以通过切片操作的方式得到。
序列操作可以通过很多内建函数来实现,这些内建函数的实现都离不开循环结构。
Ø求序列长度len( );
Ø求最大值max( ) ;最小值min( );
Ø求和sum( );
Ø排序sort( )
【例】:
【示例1】通过输入,创建1个由5个分数构成的列表,求出所有分数的平均分。
方法一:使用Python的内建函数sum( )求和,然后再求平均分。
方法二:使用for语句,通过序列索引进行迭代。
方法三:使用for语句,通过序列项运算。
for语句用于计数循环
【例】求表达式S=1+1/2+1/3+…+1/n的值,其中n值从键盘输入
n = input("请输入n 的值: ")
s = 0.0
for i in range(1, n + 1):
s = s + 1.0 / i
print "1 + 1/2 + ... + 1/%d = %f" % (n, s)
for语句实现双层循环嵌套
循环嵌套的执行过程是:一次外循环对应着完整的一轮内循环。
【示例3】使用for循环的嵌套结构打印“九九乘法表”
(方阵)
(下三角矩阵)
说明:
\t纵向制表符
\n换行符
while语句
格式1:
while表达式:
循环体
格式2:
while表达式:
循环体
else:
语句
while语句用于不确定循环次数问题
循环何时结束由while语句的条件表达式决定。只有当某条件成立时,循环才会结束,否则循环将一直进行下去。
【示例4】编程从键盘输入若干正整数,求所有输入整数之和。当输入整数为负数时,结束该操作。
break语句
当在循环过程中,某个条件被触发(一般通过if语句检查),需要立即停止循环时使用。break语句可以用在while和for循环中。
break语句用于退出循环,并跳过循环体中其余部分(包括循环语句中的else代码块)
while语句解决确定循环次数的问题
为了控制循环次数,通常在程序中设置一个计数变量,每次循环,该变量进行自增或自减操作,当变量值自增到大于设定的上限值或者自减到小于设定的下限值时,循环自动结束。
【示例6】编程计算1+2+3+…+100的值。
i的作用:循环计数变量,作为每次被累加的整数值,控制循环次数
【示例7】求以下表达式的值,其中n值从键盘输入。
l分母的通式:s = s + i
l变量i的通式:i = i + 1
l当前项的通式:t = 1.0 / s
l求和的通式:ss= ss+ t