【Python学习笔记Day09】2.7 分支与循环三

1. While循环

While 条件:
    循环体    

条件为真一直执行循环体,知道条件为假,退出循环体
循环体里可以设置条件会改变,则会在执行一定循环之后,会发生退出,python中不能执行无限循环

2. For循环 (计数器循环)

#python的循环和c语言的for循环不一样,功能要强大一点
例一:

for 目标 in 表达式:
    循环体
favorite = "weivid"
for i in favorite:
    print(i,end=" ") # 打印字符串中的每个字符,并空格连接

运行结果,以空格分隔:
在这里插入图片描述
例二:

member = ['weivid', 'wangwei', 'yijing'] #[]定义member是一个列表类型
for each in member:
    print(each, len(each)) #len表示字符串的长度

运行结果:
在这里插入图片描述

3. range()和for循环类似

3.1 range()方法
range ([strat,], stop[,step = 1])
#BIF有三个参数,其中用[]的两个表示参数是可选的
#step = 1 表示第三个参数的默认值是1
range这个BIF的作用是生成一个从start参数的值,开始到stop参数的值结束的数字序列

range(5) #返回一个range(0,5),值为0,1,2,3,4不包含5
#左闭右开[0,5)
print(range(5))

list1 = list(range(5))#list()把参数生成一个列表
print(list1)#输出[0,1,2,3,4]

运行结果:
在这里插入图片描述
3.2 传递一个参数的range,默认从0,开始

print("传递一个参数的range(5)")
for i in range(5):
    print(i, end=" ")
print()

运行结果:
在这里插入图片描述
3.2 传递两个参数的range

print("#传递两个参数的range(1,10):")
for j in range(1, 10):
    print(j, end=" ")
print()

运行结果:
在这里插入图片描述
3.3 传递三个参数的range,第三个参数为步长

print("#传递三个5参数的range(1,10,2)")
for m in range(1,10,2):
    print(m, end=" ")
print()

运行结果:
在这里插入图片描述

4. 两个关键语句

1)break语句

终止当前循环,跳出循环体
#break 当条件成立可以跳出循环体

string = "I love weivid"
answer = input("请输入weivid最想听到的一句话:")

while True:
   if answer == string:
       break
   else:
       answer = input("sorry!请重新输入(答案对了才能退出):")

print("you are goood!")
2)continue语句

终止本轮循环,进行下一轮循环,在执行下一轮循环之前,先判断条件在执行,若不正确,则退出循环

#continue
for i in range(10):
    if i%2 != 0:
        print(i)
        continue
    i += 2
    print(i)

#奇数则直接打印,并退出循环体,开始下一个循环
#偶数则不满足if条件,则加2打印
运行结果:
在这里插入图片描述

5. 练习题

1.下面的代码片段打印多少次
for i in range(0,10,2):
    print("I love weivid")

#五次

for j in 5:
    print("I love weivid!!!")

#会报错,因in是成员资格运算符

2. range(10)会有哪些数?

会生成range(0,10)
list(range(0,10)) 转换为列表[0,1,2,3,4,5,6,7,8,9],不包含10

3. 一下代码片段会打印什么? #break 只能跳出一层循环
while True:
    while True:
        break
        print(1)
    print(2)
    break
print(3)

运行结果:
在这里插入图片描述

3.什么情况下,我们需要循环体永远为真?

用于游戏实现,操作系统的运行,服务器等。
虽然永远为True,但是对于这个”死循环“,不一定是坏事,可以随时用break跳出循环

4. 学会提高代码的效率,修改一下代码片段
i = 0
string = "I love weivid"
while i < len(string):
    print(i)
    i += 1

#以上代码片段之所以效率低,是因为:每次循环都要使用函数len()
#修改后的如下:

i = 0
string = "I love weivid"
length = len(string)
while i < length:
    print(i)
   i += 1
5. 程序设计题

设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果输入的内容包括
”*“,则次数不计算在内

count = 3
password = "I love weivid"  #假设密码设定为:I love weivid

while count > 0:
    answer = input("请输入用户密码:")
    if answer == password:
        print("密码正确,请进入程序")
        break
    elif '*' in password:
        print("密码不包含”*“号,请重新输入,您还有",count,"次机会!",end=" ")
        continue
    else:
        print("您的密码输入错误!您还有",count-1,"次机会!")
    count -= 1
6. 编写一个程序,求100-999之间所有水仙花的数

如果一个三位数等于各位数字的立方和,则称这个数为水仙花,例如153 = 13 + 53 + 33

for i in range(100,999):
    sumdata = 0
    temp = i
    while temp:
       sumdata = sumdata +  (temp%10)**3
       temp //= 10      # 此循环是计算每个数的三位数的立方和,注意使用地板除法
    if sumdata == i:
        print(i)
7. 三色球问题

有红、黄、蓝三种颜色的球,其中红色 3个, 黄色 3个,蓝色 6个, 将这12个球放进盒子中,从中任意摸出8个球,编程计算各种球的颜色搭配

print("三色球:红、黄、蓝")
#red = yellow = blue = 0


for red in range(0,4):
    for yellow in range(0,4):
        for blue in range(2,7):
            if red + yellow + blue == 8:
                print(red,yellow,blue)
                
print("进程结束")    
发布了105 篇原创文章 · 获赞 71 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/vivid117/article/details/104296118
今日推荐