Python2.7条件与循环

Posted on 2020-06-19 11:08  留不住的时间  阅读(223)  评论(0编辑  收藏  举报

Pythn条件与循环

 

一:Python条件判断

条件语句是指根据条件表达式的不同计算结果,使程序流转到不同的代码块。

1if条件语句

if语句用于判断某个条件是否成立,如果成立,则执行语句内的程序,否则跳过if语句执行后面的内容。其语法格式为:

if(条件)

语句块

 

语句块是一组程序语句,在python采用空格缩进的方式表示一组语句,通常4个空格表示一组语句,使程序员在编码时减少代码量。

1

>>> if (money>99):

        print "语句1"

        print "语句2"

 

语句1

语句2

 

2:在编辑模式中输入下列代码,并执行脚本

print '请输入考试成绩:'

score=input()

print score>=60

if score>=60:

    print '合格'

 

2:条件表达式与关系运算符

使用if语句时,要用到条件表达式和关系运算符,他们可以经过运算得到布尔值。

常用的关系运算符:

关系运算符

说明

==

等于

!=

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

例:

>>> print 10==9

False

>>> print 10!=9

True

 

3if-else条件语句

if语句可以加上else关键字,根据条件判断,决定执行不同的语句块。当条件为真时,执行语句块1;当条件为假时,执行语句块2语法如下:

if(条件)

   语句块1

else

   语句块2

 

例:(在编辑模式中编辑)

print '请输入成绩:'

score=input()

if score >=60:

    print '合格'

else:

    print '不合格'

 

4:多重if语句

if-else语句通过条件判断程序时可以由两个语句块,但是有时需要更多的路径进行处理,这时可以加入elif关键字来处理。语法为:

if(条件1):

  语句块1

elif(条件2)

  语句块2

elif(条件3)

  语句块3

......

else

   语句块

 

例:(在编辑模式中输入代码)

print '请输入成绩:'

score=input()

if score>=90:

    print '优秀'

elif score>=70:

    print '良好'

elif score>=60:

    print '合格'

else:

print '不及格'

 

5if语句的注意事项

(1) 使用if-elif-else语句时,条件时由上向下判断,如果条件成立,后面的判断将不再执行

(2) if语句中语句块没有缩进也是经常犯的错误

(3) 表达式后面要加上冒号

 

二:while循环

1while循环可以根据条件进行判断,决定是否要循环执行语句块。

语法格式为:

while 循环条件

  循环操作语句

 

注意:循环条件后面也要使用冒号,然后缩进写循环操作语句,先判断条件是否成立,如果为true,则执行循环操作语句如果为false,则跳出循环。

例:(在编辑模式中输入代码)

i=1

sum=0

while i<=5:

    print '请输入第%d门课程的成绩' %i

    sum=sum+input()

    i=i+1

avg=sum/(i-1)

print '5门课的平均成绩是%d' %avg

 

执行结果为:

>>>

请输入第1门课程的成绩

56

请输入第2门课程的成绩

60

请输入第3门课程的成绩

88

请输入第4门课程的成绩

90

请输入第5门课程的成绩

100

5门课的平均成绩是78

>>>

 

2:字符串的格式化输出

字符串格式化输出是将若干个值插入带有%替代符的字符串中,从而可以动态的输出字符串,

字符串中的%d,表示插入的是一个整型数据

  %s,表示值为字符串

  %f,表示浮点数字

 

3while循环的嵌套使用

例:

j=1

prompt='请输入学生姓名:'

while j<=2:

    sum=0

    i=1

    name=raw_input(prompt)

    while i<=5:

        print '请输入第%d门课程的成绩' %i

        sum=sum+input()

        i=i+1

    avg=sum/(i-1)

    print '%s5门课程的平均成绩是:%d'%(name,avg)

    j=j+1

print '学生的成绩输入完成'

 

执行结果:(需要输入两个学生信息,外层循环定义学生人数,内存循环定义课程数量)

>>>

请输入学生姓名:张三

请输入第1门课程的成绩

33

请输入第2门课程的成绩

55

请输入第3门课程的成绩

66

请输入第4门课程的成绩

77

请输入第5门课程的成绩

88

张三的5门课程的平均成绩是:63

请输入学生姓名:李四

请输入第1门课程的成绩

44

请输入第2门课程的成绩

55

请输入第3门课程的成绩

66

请输入第4门课程的成绩

77

请输入第5门课程的成绩

88

李四的5门课程的平均成绩是:66

学生的成绩输入完成

>>>

 

三:for循环语句

while是使用条件判断执行循环,而for是使用便利元素方式进行循环。

1for循环的几种方式

(1) for循环可以对字符串进行遍历,逐个获得字符串的每个字符

例:

for letter in 'Python':

print 'Current letter:%s'%letter

 

执行结果:

>>>

Current letter:P

Current letter:y

Current letter:t

Current letter:h

Current letter:o

Current letter:n

 

(2) for循环对列表和元组进行遍历

例:

fruits=['西瓜','苹果','葡萄']

for fruit in fruits:

print fruit

       

        输出结果:

           >>>

西瓜

苹果

葡萄

 

(3) for循环和range()函数结合使用

range(0,5,2)   表示从0开始累加2,累加后的值是列表的值,但值不能超过52是累加数

range(0,5)  表示列表的值从05,没有累加数表示累加1

 

1

>>> print range(0,5)

[0, 1, 2, 3, 4]

>>> print range(0,5,2)

[0, 2, 4]

 

2

>>> for i in range(0,5):

print '你好'

 

你好

你好

你好

你好

你好

(4) for循环的嵌套

例:输出张三和李四的平均成绩

students=['张三','李四']

subjects=('python','mysql','linux')

for student in students:

    sum=0

    for subject in subjects:

        print '请输入%s%s考试成绩:'%(student,subject)

        score=input()

        sum+=score

    avg=sum/len(subjects)

print '%s的平均成绩是%d' %(student,avg)

 

执行结果:

>>>

请输入张三的python考试成绩:

66

请输入张三的mysql考试成绩:

77

请输入张三的linux考试成绩:

88

张三的平均成绩是77

请输入李四的python考试成绩:

22

请输入李四的mysql考试成绩:

33

请输入李四的linux考试成绩:

44

李四的平均成绩是33

 

2:循环控制

当使用whilefor做循环操作时,由可能需要改变循环的正常执行顺序,这时要用循环控制语句来实现,循环控制语句由breakcontinue

(1) break

在循环的语句块中使用break语句,可以跳出整个循环。

1:输出平均成绩,当成绩无效时,使用break退出循环

students=['张三','李四']

subjects=('python','mysql','linux')

for student in students:

    sum=0

    for subject in subjects:

        print '请输入%s%s考试成绩:'%(student,subject)

        score=input()

        if(score<0 or score>100):

            print '输入的成绩超出范围,循环退出'

            break;

        sum+=score

    avg=sum/len(subjects)

print '%s的平均成绩是%d' %(student,avg)

 

上面案例在执行时,可以输入一个超出成绩范围的数字,以演示循环的退出。

 

(2) continue

continue的作用和break的作用不同,它不是结束整个循环,而是跳过当前一轮循环体的剩余语句,重新测试循环状态,准备进入下一轮循环。

 

例:

students=['张三','李四']

subjects=('python','mysql','linux')

for student in students:

    sum=0

    i=0

    while (i<len(subjects)):

        print '请输入%s%s考试成绩:'%(student,subjects[i])

        score=input()

        if (score<0 or score>100):

            print '输入的成绩超出范围,请重新输入'

            continue;

        sum+=score

        i=i+1

    avg=sum/len(subjects)

    print '%s的平均成绩是%d' %(student,avg)