目录
3.1 选择结构
3.1.2 if…else语句
3.1.3 if…elif…else语句
3.2 循环结构
3.2.1 while 语句
3.2.2 for语句
关于range()函数
3.2.2 for语句
3.2.3 continue和break语句
3.2.4 循环嵌套
3.3 常用算法及应用实例
1. 递推
2. 迭代
3.1 选择结构
三种基本程序结构中的选择结构,可用if语句、if…else语句和if…elif…else语句实现。
if语句的语法形式如图所示:
#比较输入的整数是否大于6
a = input("请输入一个整数:") #取得一个字符串
a = int(a) #将字符串转换为整数
if a > 6:
print ( a, "大于6")
举例1:不同会员消费者买单
商家通常会对自己店铺的会员有所优惠,假设会员消费可以打9.5折,非会员用户消费不打折。输入用户的消费额,根据是否会员情况,输出最后应付的金额。代码如下:
#不同消费者买单
consume=eval(input("输入消费金额:"))
flag=eval ( input("输入是否会员编号(1:会员,其他:非会员):" ) )
if flag == 1:
consume *= 0.95
print( “用户应付费:“,consume,”元”)
3.1.2 if…else语句
if…else语句语法形式如图所示:
if 表达式 : 语句块1 else : 语句块2
a = input("请输入一个整数:") #取得一个字符串
a = int(a) #将字符串转换为整数
if a > 6:
print ( a, "大于6")
else :
print ( a, "小于等于6")
举例2:不同会员消费者买单(续)
商家通常会对自己店铺的会员有所优惠,假设会员消费可以打9.5折,非会员用户消费9.9折。输入用户的消费额,根据是否会员情况,输出最后应付的金额。代码可改写如下:
#不同消费者买单
consume=eval(input("输入消费金额:"))
flag=eval(input("输入是否会员编号(1:会员,其他:非会员):"))
if flag == 1:
consume *= 0.95
else:
consume *= 0.99
print('用户应付费:', consume)
3.1.3 if…elif…else语句
if 表达式1 :
语句1
elif 表达式2 :
语句2
……
elif 表达式n :
语句n
else :
语句n+1
改写上一个例子:
a = input("请输入一个整数:") #取得一个字符串
a = int(a) #将字符串转换为整数
if a > 6:
print ( a, "大于6")
elif a==6:
print ( a, "等于6")
else :
print ( a, "小于等于6")
多分支例题
例题】输入学生的成绩score,按分数输出其等级:score≥90为优,90>score≥80为良,80>score≥70为中等,70>score≥60为及格,score<60为不及格。
score=int(input("请输入成绩")) #int()转换字符串为整型
if score >= 90:
print("优")
elif score >= 80:
print("良")
elif score >= 70:
print("中")
elif score >= 60:
print("及格")
else :
print("不及格")
举例2:不同会员消费者买单(再续)
商家通常会对自己店铺的会员有所优惠,假设金卡会员消费可以打9折,普通会员打9.5折,非会员用户消费9.9折。输入用户的消费额,根据会员情况,输出最后应付的金额。
#不同消费者买单3
#会员编号(2:金卡会员,1:普通会员,其他:非会员)
#不同的会员消费者买单
consume=eval(input("请输入消费额:"))
flag=int(input("请输入会员编号:"))
if flag == 2:
consume *= 0.9
elif flag ==1:
consume *= 0.95
else:
consume *= 0.99
print("用户应付费: ",consume)
数字排序
【例题】任意输入三个数字,按从小到大的顺序输出。
x=input('x=')
y=input('y=')
z=input('z=')
if x>y:
x,y=y,x
if x>z:
n=x
x=z
z=n
if y>z:
n=y
y=z
z=n
print(‘从小到大的顺序为:’,x,y,z)
#以上程序错误,因为其只会比较字符串大小,并不会比较实际数字大小。 比如出现x=18 y=5 z=20,结果会为18,20,5 因此要加上int( )或者eval( )将字符串转换为数字后再比较。
3.2 循环结构 3.2.1 while 语句while 判断条件: 执行语句
count = 0
while count < 9:
print ('Hello')
count = count + 1
print ("Good bye!" )
累加和
【例题】求1+2+3+…+100。 分析:计算累加和需要两个变量,变量sum存放累加和,变量counter存放加数。重复将加数counter加到sum中。
程序代码:
sum = 0
counter = 1
while counter <= 100:
sum = sum + counter
counter += 1
print("1 到100之和为: ",sum)
3.2.2 for语句
for语句可以遍历任何序列的项目,如一个列表、元祖或者一个字符串。
1.for循环的语法
for循环的语法格式如下:
for 循环索引值 in 序列
循环体
for循环把列表中元素遍历出来。
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print ( '元素 :', fruit)
print( "Good bye!" )
计算1~10的整数之和,可以用一个sum变量做累加。
程序代码:
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
Python提供一个range()内置函数,可以生成一个整数序列。
range(1, 101)就可以生成1~100的整数序列,计算1~100的整数之和如下:
sum = 0
for x in range(1,101):
sum = sum + x
print(sum)
关于range()函数
range()返回一个整数列表,Python常用内置函数之一。
例如:
>>>range(10) # 从0~10,step=1,不包含10的整数列表
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(5, 11) # 从5~11, step=1,不包含11的整数列表
[5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) #从0~30,step= 5,不包含30的整数列表
[0, 5, 10, 15, 20, 25]
3.2.2 for语句
通过索引循环
对于一个列表,另一种执行循环的遍历方式是通过索引(元素下标)。 实例如下:
fruits = ['banana', 'apple', 'mango’]
for i in range(len(fruits)): # for i in range(3):即 for i in [0, 1, 2]:
print( '当前水果 :', fruits[i] )
print ("Good bye!")
3.2.3 continue和break语句
break语句:在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。
continue语句:作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。
break举例:
#输出100以内的所有自然数
i=0
while 1: #无条件循环,条件为永真
print(i,end=' ')
i=i+1
if i>100: #当i为101时停止输出,结束整个循环
break
Continue举例:
#输出0~100之间所有的偶数
i=1
while i<100:
i+=1
if i%2>0: #奇数时
continue #结束本轮循环,跳到下一轮循环
print(i,end=' ')
利用break完成:
#输出0~100之间所有偶数
i=2
while 1: #无条件循环,条件为永真
print(i,end=' ')
i+=2
if i>100: #当i为102时停止输出,结束整个循环
break
3.2.4 循环嵌套
Python 语言允许在一个循环体里面嵌入另一个循环。如在while循环中可以嵌入for循环;也可以在for循环中嵌入while循环。嵌套层次一般不超过3层,以保证可读性。
【例3-6】打印九九乘法表。 【例3-7】使用嵌套循环输出2~100之间的素数。
for i in range(1,10):
for j in range(1,i+1):
print(i,"×",j,"=",i*j,end="\t")
print("")
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={}".format(i,j,i*j),end="\t")
print()
3.3 常用算法及应用实例
递推与迭代
1. 递推利用递推算法或迭代算法,可以将一个复杂的问题转换为一个简单过程的重复执行。
这两种算法的共同特点是,通过前一项的计算结果推出后一项。不同的是,递推算法不存在变量的自我更迭,而迭代算法则在每次循环中用变量的新值取代其原值。
2. 迭代迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)