Python学习笔记3

目录

Ch4 循环语句

一、 while 循环的基础语法

二、 while 循环的基础案例

三、while 循环的嵌套应用

四、while 循环的嵌套案例

补充1: print输出不换行:加上 end=''

补充2:制表符 \t

五、for 循环的基础语法

六、range 语句

七、变量作用域

八、 for 循环的嵌套使用

九、循环中断: break 和 continue

十、综合案例


Ch4 循环语句

一、 while 循环的基础语法

程序中的循环:

while 条件:
    条件满足时,做的事情1
    ...
# 只要条件满足,会无限循环执行

!:while 的条件需得到布尔类型,Ture 表示继续循环,False 表示结束循环。需设置循环终止的条件,否则会进入无限循环。空格缩进和 if 判断一样,都需要设置。

eg. 需求:通过while循环,计算从1累加到100的和

提示:1.终止条件记得设置为确保while循环100次;2.确保累加的数字,从1开始到100结束。

sum = 0
i = 1
while i <= 100:
    sum += i
    i += 1

print(f"从1累加到100的和为:{sum}")

二、 while 循环的基础案例

设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否大于随机数。无限次机会,猜中为止。每一次猜不中会提示猜大了或小了。猜完数字后会提示猜了几次。

提示:无限次机会,终止条件不适合用数字累加来判断,可以考虑布尔类型本身(Ture or False)。需要提示几次猜中需要提供数字累加功能。

import random
num = random.randint(1,100)
# 定义一个变量记录猜测次数
count = 0

flag = True
while flag:
    guess_num = int(input("输入你猜的数字:"))
    count += 1
    if guess_num == num:
        print("猜中了")
        # 设置False就是循环终止的条件
        flag = False
    else:
        if guess_num > num:
            print("猜大了")
        else:
            print("猜小了")
print(f"一共猜了{count}次")

三、while 循环的嵌套应用

while 条件1:
    条件1满足时,做的事情1
    ...
    while 条件2:
        条件2满足时,做的事情2
        ...

注意条件的控制,避免无限循环。

四、while 循环的嵌套案例

补充1: print输出不换行:加上 end=''

e.g

print("Hello",end='')
print("World",end='')

补充2:制表符 \t

字符串中有一个特殊符号 \t,效果等同于在键盘上按下: tab键。可以让多行字符串进行对齐。

e.g

print("Hello World")
print("Hi Cat")

print("Hello\tWorld")
print("bala\tlalalala")

练习案例——打印九九乘法表

# 控制行的循环 i <= 9
# 控制每一行输出的循环 j <= i
# 每一行输出内容 j * i

i = 1
while i <= 9:
    #定义内层循环的控制变量
    j = 1
    while j <= i:
        # 内层循环的print语句,输出不换行
        print(f"{j}*{i}={i*j}\t",end='')
        j += 1

    i += 1
    print() #空内容,只输出一个换行

 

五、for 循环的基础语法

while 循环的循环条件是自定义的,自行控制循环条件。for 循环是一种“轮询”机制,是对一批内容进行“逐个处理”,i.e.就是将“待办事项”逐个完成的循环机制。for循环本质上遍历的是序列类型

程序中的 for 循环:

for 临时变量 in 待处理数据集:
    循环满足条件时执行的代码

eg.

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

与 while循环不同, for循环无法定义循环条件,只能从被处理的数据集中,依次取出内容进行处理。理论上Python的for循环无法构建无限循环(被处理的数据集不可能无限大)。

练习案例:数一数"zhugegangtie yidinghui nianrubaiwang"有几个a

name = "zhugegangtie yidinghui nianrubaiwang"
count = 0
for x in name:
    if x == "a":
        count += 1
print(f"一个有{count}个a")

六、range 语句

语法中的:待处理数据集,严格来说,称之为:序列类型

序列类型指,其内容可以一个个依次取出的一种类型,包括:字符串、列表、元组等等。

语法1:获取一个从0开始,到num结束的数字序列(不含num本身)

range(num)

语法2:获取一个从num1开始到num2结束的数字序列(不含num2本身)

range(num1,num2)

语法3:获取一个从num1开始到num2结束的数字序列(不含num2本身).数字之间的步长以step为准(step默认为1)

range(num1,num2,step)

练习案例:随便定义一个数字变量num,使用range()语句获取从1到num的序列,使用for循环遍历它,统计遍历过程有几个偶数出现。

num = 100
count = 0
for x in range(1,num):
    if x % 2 == 0:
        count += 1
print(f"一共出现{count}次偶数")

七、变量作用域

临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部。如果在for循环外部访问临时变量:实际上是可以访问到的,但在编程规范上是不允许、不建议这么做到。

如需访问临时变量,可以预先在循环外定义它。

八、 for 循环的嵌套使用

程序中的嵌套 for 循环:

for 临时变量 in 待处理数据集(序列):
    循环满足条件时,做的事情1
    ...
    for 临时变量 in 待处理数据集(序列):
        循环满足条件时,做的事情1
        ...

eg.

i = 0
for i in range(1,101):
    print(f"今天是考六级百日倒计时的第{i}天,加油!")

    for j in range(1,11):
        print(f"背的第{j}个单词。")

    print("我要洋人die")

print(f"第{i}天了,下次再来!")

注:同 while 循环一样,注意空格缩进。

eg.九九乘法表:

# 外层循环控制行数,内循环控制每一行的输出
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j} x {i} = {i * j}\t", end="")
    print()

九、循环中断: break 和 continue

continue: 临时跳过。中断本次循环,直接进入下一次,可用于for 和 while 循环

for i in range(1,100):
    语句 1
    continue
    语句2

上述代码:在循环内遇到continue就结束当次循环,进行下一次,所以语句2不会执行。

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

上述代码:语句3不会被执行。

break: 直接结束所在循环。只对所在的循环生效。

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

上述代码:语句1之后马上结束循环,只输出了一次语句1和语句3。

十、综合案例

练习案例:发工资

某公司账户余额1万元,给20个员工发工资。

员工编号从1到20,按编号从小到大依次领取1000元。

领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5不发工资(continue),换下一位。

如果工资发完了,结束发工资( break )。

money = 10000
for i in range(1,21):
    import random
    score = random.randint(1,10)
    if score < 5:
        print(f"员工{i}的绩效分小于5,不发工资,下一位")
        continue

    # 发钱时,要判断钱还够不够
    if money >= 1000:
        money -= 1000
        print(f"员工{i}满足条件,发放工资1k,公司账户余额还有{money}元")

    else:
        print(f"当前余额{money},不足以发工资,下个月再发")
        break
  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值