Python3.7条件与循环

Pythn条件与循环

一:Python条件判断

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

1if条件语句

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

if(条件)

语句块

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

1

>>> money=100

>>> if (money>99):

        print ("语句1")

        print ("语句2")

        

语句1

语句2

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

print ('请输入考试成绩:')

score=int(input())

if score>=60:

    print ('合格')

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=int(input())

if score>=60:

    print ('合格')

else:

    print ('不合格')

4:多重if语句

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

if(条件1):

  语句块1

elif(条件2)

  语句块2

elif(条件3)

  语句块3

......

else

   语句块

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

print ('请输入成绩:')

score=int(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+int(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=input(prompt)

    while i<=5:

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

        sum=sum+int(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

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

print (i)

 

0

1

2

3

4

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

print (i)

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=int(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

(5) 乘法口诀

op1=(1,2,3,4,5,6,7,8,9)

op2=(1,2,3,4,5,6,7,8,9)

for i in op1:

    for j in op2:

        print(i,"*",j,"=",i*j,end=' ')

        if j>=i:

            print(end=' ')

            break

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=int(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=int(input())

        if (score<0 or score>100):

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

            continue;

        sum+=score

        i=i+1

    avg=sum/len(subjects)

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

 

原文地址:https://www.cnblogs.com/ccshi/p/13161961.html