python循环程序_python的循环

python的循环

编写程序时经常有代码需要重复运行,python提供了while和for进行循环操作。

一、while循环

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

4061730a78100826f8025309686dc7cd.png

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

count = 0

while (count <5):

count = count+1

print (count)

#结果

>>>

5

变量count初始值为0,当count < 5时,循环执行count=count+1语句。如第1遍执行时,条件是0 < 5,结果true,则执行count=count+1语句,count值变为1,此时已经没有其他语句同级,则值变为2。以此类推,当count等于4的时候,4 < 5成立,执行count=count+1语句,count变为5,此时再进行条件判断5 < 5为false,退出while循环,最后的输出结果为5.

2、字符串的格式化是将若干值插入带有“%”替代符的字符串中,从而可以动态地输出字符串,字符串中的“%d”表示插入的是一个整形数据,字符串后面的“%i”表示取的是变量i的值。

字符串格式化中可以使用的替代符除了“%d”,还有其他的替代符,如下表:

ec6c7b7bf32d19a72f33317134b7c393.png

下面示例演示这几种替代符的使用情况:

num = 5

numStr = "5"

numF = 5.55

print("第%d名"%num)

print("第%s名"%numStr)

print("分数是:%f"%numF)

#结果

>>>

第5名

第5名

分数是:5.550000

字符串中使用对应的替代符,把相应的变量插入到了相应的位置。

字符串中还可以使用多个替代符,对应的变量使用元组即可,示例代码如下:

first = 1

second = 2

print("第%d名和第%d名"%(first,second))

#结果

>>>

第1名和第2名

使用时要注意顺序,位置不能放错,否则可能会出现类型不匹配的问题。

还可以使用字典格式化多个值,示例代码如下:

num={"first":1,"second":2}

print("第%(first)d名和第%(second)d名"%num)

#结果

>>>

第1名和第2名

因为字典是无序的,所以使用字典时需要把键指定出来,明确哪个位置要用哪个键值。

3、对于编写好的代码,经过一段时间之后,有可能会忘记代码的具体作用,所以代码中要写一些注释文字,以便于日后阅读和修改代码。python中使用“#”+空格开头表示注释,可以对前面代码加上注释如下:

#输入5门课程的考试成绩,计算平均成绩

#初始化循环计算器i

i=1

#初始化总成绩变量sum

sum=0

#重复执行5次接收考试成绩,求和的操作

while i<=5:

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

#每门课程计入总成绩

sum=sum+inpunt()

i=i+1 #计数器i增加1

#计算平均成绩

avg=sum/(i-1)

#输出平均成绩

print("5门课程的平均成绩是%d"%avg)

使用“#”+空格开头的文字python解释器不会做任何处理,可以提高代码的可读性。在行开头就使用“#”+空格的成为单行注释,紧随同行以“#”+空格开头的成为行内注释,注释并不是在每行都需要,只需要把不易读的代码做注释即可。

二、for循环

for循环是另一种用于控制循环的方式,while是使用条件判断执行循环,而for是使用遍历元素的方式进行循环。

1、for循环的几种方式

for循环的语法结构如下:

42041c78c143426c07f4bff1ab0f1dc5.png

常用的有以下几种方式。

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

语句“for letter in python”:的作用是对“python”字符串的字符逐个遍历,把字符赋值给变量letter,然后执行for对应的语句块。例如,第一遍执行时,letter的值是“p”,执行输出语句,然后返回再执行for语句,letter的值是“y”;依此类推,当执行完最后一个字符“n”的语句块后,for循环已经没有字符再可以获得,循环退出。

2)for循环可以对列表和元组进行遍历,示例代码如下:

fruits = ["西瓜","苹果","香蕉"]

for fruit in fruits:

print (fruit)

#结果

>>>

西瓜

苹果

香蕉

语句“for fruit in fruits:”的作用是遍历列表fruits中的元素,把元素赋值给fruit,输出语句每次输出一个水果。

3)需要循环操作相同的内容时,可以用for循环和range()函数结合使用,先看看range()函数的作用,示例代码如下:

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

range(0,5)输出的是一个列表,由第一个参数0开始,默认每次加1,当大于等于第二个参数时结束,所以列表中不包括第二个参数值。range(0,5,2)多了第三个参数2,作用是每次加2,最后的列表值是“[0,2,4]”。所以range()函数的作用是创建一个数字列表,取值范围是从起始数字开始到结束数字之前的内容。for循环可以对列表进行遍历,所以可以对range()函数的结果进行遍历。示例代码如下:

for i in range(0,5):

print("哈哈哈")

#结果

>>>

哈哈哈

哈哈哈

哈哈哈

哈哈哈

哈哈哈

range(0,5)是由0~4组成的列表,循环共执行了5遍,输出语句执行了5遍,变量i的值就是每次遍历列表的元素值。

2、for循环综合示例代码如下:

subjects = (‘python‘,‘MySQL‘,‘Linux‘)

sum = 0

for i in subjects:

print("请输入111的%s的考试成绩:"%i)

score=int (input())

sum+=score

a v g=sum/len(subjects)

print("111的平均成绩是%d"%a v g)

#结果

>>>

请输入111的python的考试成绩:

52

请输入111的MySQL的考试成绩:

68

请输入111的Linux的考试成绩:

84

111的平均成绩是68

这段代码的作用是接收2门课程的成绩,计算输出平均成绩。使用for循环遍历课程列表subjects,接收成绩后使用sum累加,最后输出平均成绩。

3、逻辑运算符

任何语言中都有逻辑表达式,它是用逻辑运算符和变量连接起来的表达式,逻辑运算符下图所示:

75a22d629e04bdc5f962e240a1f1726a.png

简单演示逻辑运算符的使用方法:

>>> print (not True)

False

>>> print(True and False)

False

>>> print(True or False)

True

not是求反运算,所以not True的结果是false;and是与运算,只要有一个值是False,结果就是False,所以(True and False)的结果是False;or是或运算,只要有一个值是True,结果就是True,所以(True or False)的结果是True。

4、for循环嵌套

同while循环一样,for循环也可以使用嵌套的方式,示例代码如下:

students =["111","222"]

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

#结果

>>>

请输入111的Python考试成绩:

56

请输入111的MySQL考试成绩:

75

请输入111的Linux考试成绩:

93

111的平均成绩是74

请输入222的Python考试成绩:

63

请输入222的MySQL考试成绩:

42

请输入222的Linux考试成绩:

69

222的平均成绩是58

第1层循环用于控制对学生进行遍历,第2层循环控制对课程遍历,与while的方式基本相同。

此处需要注意的是,for循环的变量名没有使用i、j这样没有意义的变量,而是使用了student、subject这种名称明确的变量名,使程序的可读性更强,避免了引用变量时出现引用错误的情况。

三、循环控制

当使用while和for做循环操作时,有可能需要改变循环的正常执行顺序,这时就需要用循环控制语句实现,循环控制语句有break和continue。

1、break

在循环的语句块中使用break语句,可以跳出整个 循环。下面对输出平均成绩的代码进行修改,当成绩无效时,使用break退出循环,示例代码如下:

students =["111","222"]

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("输入的成绩需要大于0或小100,循环退出")

break;

sum+=score

avg=sum/len(subjects)

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

#结果

>>>

请输入111的Python考试成绩:

52

请输入111的MySQL考试成绩:

111

输入的成绩需要大于0或小100,循环退出

111的平均成绩是17

请输入222的Python考试成绩:

0

请输入222的MySQL考试成绩:

0

请输入222的Linux考试成绩:

5

222的平均成绩是1

大部分是前面的代码,只是在第8~10行加入了成绩有效性的判断,不符合条件,退出循环。当输入111时,这是不符合条件的数值,程序执行8~10行,break退出for循环,break只和一个for循环对应,虽然有两层循环,但它只会结束离它最近的循环,这里就是第2层for循环。第二层循环结束后,接着执行后面的第12行和13行代码,第1层的循环照常遍历执行,开始输入第2个学生“王五”的成绩。

2、continue

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

students =["111","222"]

subjects = (‘Python‘,‘MySQL‘,‘Linux‘)

for student in students:

sum = 0

i = 0

while (i

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

score=int(input())

if(score<0 or score>100):

print("输入的成绩需要大于0或小100,重新输入")

continue;

sum+=score

i=i+1

avg=sum/len(subjects)

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

#结果

>>>

52

请输入111的MySQL考试成绩:

120

输入的成绩需要大于0或小100,重新输入

请输入111的MySQL考试成绩:

82

请输入111的Linux考试成绩:

100

111的平均成绩是78

请输入222的Python考试成绩:

69

请输入222的MySQL考试成绩:

150

输入的成绩需要大于0或小100,重新输入

请输入222的MySQL考试成绩:

63

请输入222的Linux考试成绩:

50

222的平均成绩是60

第1层使用的是for循环遍历名字,第2层使用while循环遍历成绩,使用continue是跳到离它最近的循环的下一轮,也就是第2层的while循环的下一轮。因为执行continue后,第13行的i=i+1没有执行,而是重新有执行第6行的while循环,所以就是对当前课程的成绩重新输入。当输入MySQL的成绩为120时,提示数据有误,然后又提示需要重新输入MySQL成绩,代码更加健壮。

此博文到此结束,感谢阅读!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值