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()

 

posted @ 2017-06-28 17:45  tsembrace  阅读(309)  评论(0编辑  收藏  举报