1.while循环的基础语法

  • 语法

    while 条件:
        条件成立时,执行的逻辑代码
        ....
    
  • 练习:表白100次,100次后成功

i = 0
while i < 100:
    print("I love you!")
    i += 1
  • 注意点
    • 需要设置循环终止的条件,否则将无限循环
    • 空格缩进和if判断一样,需要注意缩进
  • 练习:求1-100的和
i = 0
sum = 0
while i<=100:
    sum += i
    i += 1
print(f"1-100累加的和是:{sum}")

2.while循环的基础案例

设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数

  • 需求
    • 无限次机会,直到猜中为止
    • 每一次猜不中,会提示猜大了或猜小了
    • 猜完数字后,提示猜了几次
import random
num = random.randint(1,100)
isTrue = True
count = 0
while isTrue:
    guessNum = int(input("请输入您猜测的数字:"));
    count += 1
    if guessNum > num:
        print("猜大了,请继续")
    elif guessNum < num:
        print("猜小了,请继续")
    else:
        isTrue = False
print(f"猜对了,你猜了{count}次")

3.while循环的嵌套应用

  • 语法

    while 条件1:
        条件1满足时,执行的逻辑代码...
        while 条件2:
            条件2满足时,执行的逻辑代码...
    
  • 练习:表白100天,且每天都会送10朵玫瑰花

# 表白100天,并每天10支玫瑰花
i = 1
while i <= 100:
    print(f"今天是第{i}天,准备表白!")
    j = 1
    while j <= 10:
        print(f"送的第{j}朵玫瑰花")
        j += 1
    print("表白!")
    i += 1
print(f"表白{i-1}天,表白成功")
  • 嵌套注意点
    • 注意空格缩进,基于空格缩进来决定层次关系
    • 注意条件的设置,避免出现无限循环

4.while循环的嵌套案例

  • 补充—print输出不换行
print("Hello",end='')
print("World",end='')

image-20230810210028463.png

  • 补充—制表符"\t"

    • 与Java一致
  • 练习:打印九九乘法表

i = 0
while i < 9:
    i += 1
    j = 1
    while j <= i:
        print(f"{i} * {j} = {i*j}",end='\t')
        j += 1
    print("")

5.for循环的基础语法

5.1、基础语法

for 临时变量 in 待处理数据集
    循环满足条件时,执行的逻辑代码...
  • 与while循环的区别
    • while循环的循环条件是自定义的,自行控制循环条件
    • for循环是一种轮询机制,是对一批内容进行逐个处理
  • 练习:遍历字符串
name = "mahaonan"
for i in name:
    # 将name的内容,挨个取出赋值给临时变量i
    print(i)
  • 案例:判断一条数据中含有多少字母a
# 2.
name = "itheima is a brand of itcast"
count = 0
for i in name:
    if i == 'a':
        count += 1
print(f"{name}中公函有:{count}个字母a")

5.2、range语句

  • for循环中的待处理数据集,严格来说称之为:可迭代类型
  • 可迭代类型:其内容可以一个一个依次取出的一种类型

    • 字符串、列表、元组等
  • range语句

    • 获取一个简单的数字序列(可迭代类型中的一种)
  • 语法1

    # range 语法1 range(num):从0-num,间隔为1递增
    for i in range(10):
        print(i,end='\t')
    print()
    
  • 语法2

    # range 语法2 range(num1,num2):从num1-num2,间隔为1递增——包前不包后
    for i in range(5,10):
        print(i,end="\t")
    
  • 语法3

    # range 语法3 range(num1,num2,setp):从num1-num2,间隔为step(默认为1)——包前不包后
    for i in range(5,10,2):
        print(i,end="\t")
    
  • 练习:偶数有几个

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

5.3、变量作用域

  • for循环中的临时变量
    • 编程规范上,作用域,只能限定在for循环内部
  • 实际上是可以访问到的,在编程规范上是不允许,不建议这么做

如果需要在循环外部访问循环内的临时变量,可以在循环外预先定义

image-20230810210043848.png

由于i变量是在循环之前定义的,所以在循环外访问i变量是合理、允许的

6.for循环的嵌套应用

  • 语法

    for 临时变量 in 待处理数据集
        循环满足条件时,执行的逻辑代码...
        for 临时变量 in 待处理数据集
            满足循环条件是,执行的逻辑代码...
    
  • 练习:表白100天,每天送10朵花,并访问临时变量,输出最后一天表白成功

i = 0
for i in range(1,101):
    print(f"今天是第{i}天,准备表白!")
    for j in range(1,11):
        print(f"送出的第{j}朵玫瑰花")
    print("表白!")
print(f"表白的第{i}天,表白成功!")
  • 案例:通过for循环来打印乘法表
for i in range(1,10):
    for j in range (1,(i+1)):
        print(f"{j} * {i} = {j*i}",end='\t')
    print()

7.循环终端:break和continue

与Java一致

8.综合案例

image-20230810210051057.png

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

results matching ""

    No results matching ""