四、Python循环语句

1、while循环的基础语法

语法格式:

image.png

注意事项

  • 条件需提供布尔类型结果,True继续,False停止
  • 空格缩进不能忘
  • 要考虑好循环终止条件,否则将无线循环
"""
while的基础使用
"""
i = 0
while i<5:
    print("helloworld")
    i+=1

"""
运行结果:
helloworld
helloworld
helloworld
helloworld
helloworld
"""

练习案例:

image.png

i = 0
sum = 0
while i<100:
    i += 1
    sum += i
print(f"1累加到100的和是{sum}")

2、while循环的基础案例

image.png

import random
num = random.randint(1,100)

count = 0  #用来记录猜测的次数
flag = True
while flag:
    guess_num = int(input("请输入一个数字:"))
    count += 1
    if guess_num == num:
        print("恭喜你,猜中了")
        flag = False
    elif guess_num < num:
        print("你猜小了")
    else:
        print("你猜大了")
print(f"你总共猜测了{count}次")

3、while循环的嵌套应用

语法格式

image.png

  • 注意空格缩进,基于空格缩进来决定层次关系
  • 注意条件的设置,避免出现无限循环(除非真的需要无限循环)

4、while循环的嵌套案例

打印九九乘法表

补充一、实现print输出不换行

默认情况下是换行,如:print(“Hello”)
如果实现不换行,则是需要在后面加上end = ‘’
如:print(“Hello”,end=’ ')
如果是输出换行,就直接是print(),即输出空内容

print("hello",end='') # 引号里没有空格,如果有空格则相应的输出就是带空格
print("world",end='')

"""
运行结果:
helloworld
"""

补充二、制表符\t

\t效果等同于在键盘上按下:tab键,可以让多行字符串进行对齐

print("Hello world")
print("itheima best")

"""
运行结果:
Hello world
itheima best
"""
print("Hello\tworld")
print("itheima\tbest")

"""
运行结果:
Hello	world
itheima	best
"""

#控制行数
i = 1
while i<=9:
    # 控制每一行的内容
    j = 1
    while j <= i:
        #内层循环的print,不要换行
        print(f"{j}*{i}={j*i}\t",end = '')
        j += 1
    i += 1
    print()     #print空内容,就是输出一个换行
"""
运行结果:
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	
"""

5、for循环的基础语法语法格式

① 基础语法

image.png

while循环与for循环对比

image.pngimage.png

例子

name = "xiaoming"

for x in name:
    # 就是将name的内容,挨个取出赋予x临时变量
    # 就可以在循环体内对x进行处理
    print(x)

"""
运行结果:
x
i
a
o
m
i
n
g

进程已结束,退出代码0

"""

注意事项

  • 与while循环不同,for循环是无法定义循环条件的
  • 理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无线大)

练习案例

image.png

name = "itheima is a brand of itcast"
count = 0
for x in name:
    if x == "a":
        count += 1
print(f"{name}中含有:{count}个字母a")

② range语句

image.png

语法1
range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0, 1, 2, 3, 4]

语法2
range(num1,num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]

语法3
range(num1,num2,num3)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
数字之间的步长,以step为准(step默认为1)
如,range(5, 10, 2)取得的数据是:[5, 7, 9]

# range语法1
for x in range(10):
    print(x,end=' ')

# 运行结果
# 0 1 2 3 4 5 6 7 8 9

# range语法2
for x in range(5,10):
    # 默认步长为1,但是也可以修改步长
    print(x,end=' ')
    
# 运行结果
# 5 6 7 8 9

# range语法3
for x in range(5,10,2):
    # 步长修改为2
    print(x,end=' ')

# 运行结果
# 5 7 9 

练习案例

image.png

num = 100
count = 0
for x in range(1,num):
    if x % 2 == 0:
        count += 1
print(f"1到{num}(不含{num}本身)范围内,有{count}个偶数。")

③ for循环临时变量作用域

image.png
红框中的print语句,可以访问到变量i,但是,在规范上是不允许的
image.png
如果想在for循环外部访问临时变量,可以在for循环体外定义变量

i = 0
for i in range(5):
    print(i,end=' ')
print(i)

# 运行结果:0 1 2 3 4 4

6、for循环的嵌套应用

语法格式

image.png

注意事项

  • for循环和while循环可以相互嵌套使用
  • 注意缩进

练习案例

image.png

# i控制行数
for i in range(1,10):
    # j控制每行内容
    for j in range(1,i+1):
        print(f"{j}*{i}={j*i}\t",end='')

    print()
"""
运行结果:
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

进程已结束,退出代码0

"""

7、循环中断:break和continue

continue

主要用于:中断本次循环,直接进入下一次循环,用在for循环和while循环的效果是一致的
image.png

  • 在循环内,遇到continue就结束当前循环,进行下一次,所以后面的语句2不会执行
  • 运用场景:在循环中,因某些原因,临时结束本次循环

continue的嵌套应用

for i in range(1,3):
    print("语句1")
    for j in range(1,3):
        print("语句2")

        print("语句3")
    print("语句4")

"""
运行结果:
语句1
语句2
语句3
语句2
语句3
语句4
语句1
语句2
语句3
语句2
语句3
语句4

"""
print()

for i in range(1,3):
    print("语句1")
    for j in range(1,3):
        print("语句2")
        continue
        print("语句3")
    print("语句4")
"""
运行结果:
语句1
语句2
语句2
语句4
语句1
语句2
语句2
语句4

"""

break

是直接结束循环

image.png

  • 在循环内,遇到break就结束循环了,即执行了语句1后,直接执行语句3
for i in range(1,100):
    print("语句1")
    break
    print("语句2")

print("语句3")

"""
运行结果:
语句1
语句3

"""

break的嵌套应用

遇到break后,内层循环直接跳出

for i in range(1,5):
    print("语句1")
    for j in range(1,100):
        print("语句2")
        break
        print("语句3")
    print("语句4")
"""
运行结果:
语句1
语句2
语句4
语句1
语句2
语句4
语句1
语句2
语句4
语句1
语句2
语句4

"""

8、综合案例

image.png

import random
sum = 10000
for i in range(1,21):
    num = random.randint(1, 10) #获得1~10之间的数
    if num < 5:
        print(f"员工{i},绩效分{num},低于5,不发工资,下一位")
    else:
        sum -= 1000
        print(f"向员工{i}发放工资1000元,账户余余额还剩余{sum}元")
        if sum < 1000:
            print("工资发完了,下个月领取吧")
            break

import random
sum = 10000
for i in range(1,21):
    num = random.randint(1, 10) #获得1~10之间的数
    if num < 5:
        print(f"员工{i},绩效分{num},低于5,不发工资,下一位")
        continue
    
    if sum >= 1000:
        sum -= 1000
        print(f"向员工{i}发放工资1000元,账户余余额还剩余{sum}元")
    else:
        print("工资发完了,下个月领取吧")
        break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值