Python编程入门-第四章 流程控制 -学习笔记
第四章 流程控制
一、布尔逻辑
*在Python中,用True和False表示真值。一般使用4个主要的逻辑运算符来组合形成布尔值:not\and\or\==。
如:
False==False #True
True==False #False
True or False #True
True and False #False
not False #True
not True #False
二、if语句
1、if/else语句
pwd=input('What is the password') if pwd=='apple': print('Logging on...') else: print('Incorrect password.') print('All Done!')
*在python中,必须使用缩进来指出语句所属的代码块。同一代码块中的各行语句必须是一样的缩进。
2、if/elif语句
其实就是if—else if的含义,如某公司提供如下儿童优惠票价:不超过2岁的儿童免费;2岁到13岁的儿童打半折;13以上的全票;代码如下:
ageStr=input("Please input your child's age:") age=int(ageStr) if age<=2: print('您的孩子可以免票!') elif 2<age<=13: print('您的孩子可以五折购票!') else: print('您孩子已超过13岁,须购全票!')
3、条件表达式
#除非可以比一般的if/else语句更方便简单才用 name=input('what is your name?') reply='we have the same name:)' if name=='Jack' else 'Hello '+name
三、循环
1、for循环
一般而言for循环重复执行给定代码块指定的次数,如下代码:
for i in range(10): print (i)
其中range(10)会从0开始直到9结束,也可以用range(0,10);如果是range(5,11)则为5开始直到10结束。实际上range函数还有第三个参数,设置步长,前述步长默认为1;如果对于range(0,10,2),则步长为2,输出为0,2,4,6,8。如果要倒序排列:range(10,0,-1),则输出为10到1。
2、while循环
i=0 while i<10: print (i) i=i+1
*for循环和while循环解决相同问题
#计算阶乘 number=int(input('please input a number below 100:')) #使用for循环 answerfor=1 for i in range(1,number+1): answerfor=answerfor*i print('answerfor='+str(answerfor)) #使用while循环 answerwhile=1 while number>=1: answerwhile=answerwhile*number number=number-1 print('answerwhile='+str(answerwhile))
#计算用户输入的数字的总和 n=int(input('请输入数字的数量:')) #使用for循环 sumfor=0 for i in range(n): sumfor=sumfor+int(input('请输入第'+str(i+1)+'个数字:')) print('for循环的总和计算为:'+str(sumfor)) #使用while循环 sumwhile=0 j=0 while j<n: sumwhile=sumwhile+int(input('请输入第'+str(j+1)+'个数字:')) j=j+1 print('while循环的总和计算为:'+str(sumwhile))
针对上例,如果事先不告知输入数据的数量,则可以通过特殊输入判定输入结束,比如设置输入为’done’的时候则不再输入,这种情况比较方便的选择是使用while循环语句。
sum=0 numberstring=input('please input a number(or done)') while(numberstring!='done'): sum=sum+int(numberstring) print('当前输入数据总和为:'+str(sum)) numberstring=input('please input a number(or done)') print('输入数据总和为:'+str(sum))
3、跳出循环和语句块
*break语句:直接跳出整个循环
*continue语句:跳出本次循环,执行下一次迭代
#对于上述当输入done时结束输入的例子 #使用break会更加便捷 sum=0 while True: numberstring=input('请输入一个数字(或者"done")') if numberstring=='done': break sum=sum+int(numberstring) print('当前输入数据总和为:'+str(sum)) print('输入数据总和为:'+str(sum))
#continue的例子,计算100以内偶数之和 sum=0 for i in range(101): if(i%2==0): continue sum=sum+i print('100以内偶数和为:'+str(sum))
4、循环中的循环
#打印九九乘法表 for row in range(1,10): for col in range(1,10): prod=row*col if prod<10: print(' ',end='') print(row*col,' ',end='') print()