返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始
开启辅助访问

登录  | 注册成为修仙之旅的少年~

游客您好!登录后享受更多精彩

QQ登录

只需一步,快速开始

查看: 662|回复: 0

[原创] 【原创】循环while和for语句的讲解

[复制链接]
发表于 2025-4-7 00:00:43 | 显示全部楼层 |阅读模式

少侠不来段修仙之旅吗~

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
本帖最后由 da11 于 2025-4-7 00:02 编辑

# 循环while和for语句的讲解
"""
· while的条件需要得到布尔类型,True表示继续循环,False表示结束循环
· 需要设置循环终止的条件,如i+=1配合i<100,就能确保100次后停止,否则将无限循环
· 空格缩进和if判断一样,都需要设置


"""
import random

i=1
n=0

while i<=100:
    n=n+i
    i+=1
    print(f"第{i}次循环,黎明方舟欢迎你~,总和计算{n}")

wc=0
nc=0
# 嵌套循环练习
while wc<=100:
    while nc<10:
        nc+=1
        print(f"外层循环{wc}内层循环{nc}")
    nc=0
    wc+=1
    if wc<=100:
        print(f"外层循环{wc}")

"""
print知识点:
默认print语句输出内容会自动换行,如下:
print("1")
print("2")

那怎样不换行呢?其实非常简单,在print语句中,加上 end='' 即可输出不换行了,如下:
print("1",end='')
print("2",end='')

补充知识-制表符\t:
在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab健。它可以让我们的多行字符串进行对齐

以下是嵌套while循环的练习,输出99乘法表


"""
wc_num=1
nc_num=1

while wc_num<=9:
    while nc_num <= wc_num: # 乘法表的内层循环数量通过外层的数值控制
        print(f"{wc_num}x{nc_num}={wc_num*nc_num}\t",end='') # 对于乘法表的内层循环不需要换行
        nc_num+=1
    print("")
    nc_num=1
    wc_num+=1


"""
小练习:
设置1-100的随机数,无限次猜数字,直到猜中为止,每次会提示大了或者小了。最后统计猜了几次

"""

#随机数
random_num = random.randint(1,100)
print(f"随机数作弊显示:{random_num}")
now_count=1
input_num=int(input("请输入数字:"))

while input_num != random_num:
    if input_num < random_num:
        print("数字小了")
    else:
        print("数字大了")
    now_count+=1

    input_num = int(input("请再次输入数字:"))

print(f"恭喜猜中啦~,正确数字是{random_num},你猜了{now_count}次")

"""
for循环讲解:
除了while循环语句外,python同样提供了for循环语句。
两者能完成的功能基本差不多,但仍有一些区别:
· while循环的循环条件是自定义的,自行控制循环条件。
· for循环是一种"轮询"机制,是对一批内容进行"逐个处理"

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

待处理数据集严格来说,称之为:序列类型
序列类型指的是,其内容可以一个个依次取出的一种类型,包括:
· 字符串
· 列表
· 元组
等   

for循环也被称之为:遍历循环

· for循环中的临时变量,其作用域限定为:
   循环内
· 这种限定:
   · 是编程规范的限定,而非强制限定。
   · 不遵守也能正常运行,但是不建议这样做。
   · 如需访问临时变量,可以预先在循环外定义它。

同while循环不同,for循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。

所以,理论上讲,python的for循环无法构建无限循环(被处理的数据集不可能无限大)。

for循环也可以和while一样嵌套使用

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

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

range语法3:
range(num1,num2,step(步进))
获取一个从num1开始,到num2结束的数字序列(不含num2本身(num2-1))
step是这个数字范围之间的步进,step默认是1
range(0,10,3)取得的数据是:[0,3,6,9]


"""

# 将后面的字符串逐个取出打印
for i in "for循环测试":
    print(i)

for_work_str="jshdjashdjhasdhashduashdoiqhvuiwhjkbuivjskl"
for_work_num=0

for i in for_work_str:
    if i == "a":
        for_work_num+=1

print(f"for循环练习,字符串:{for_work_str} 有 {for_work_num} 个a")

for i in range(5):
    print(i)

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

"""
for_work_num2=100
for_work_num3=0
for i in range(1,for_work_num2):
    if i % 2 == 0:
        for_work_num3+=1
print(f"有{for_work_num3}个偶数")


# 使用for循环实现上方的99乘法表
for wc_num2 in range(1,10):
    for nc_num2 in range(1,wc_num2+1): # 不能range(1,1)因为range的不包含1本身,所以返回的是0,需要加一才能实现返回1
        print(f"{wc_num2}x{nc_num2}={wc_num2 * nc_num2}\t", end='')  # 对于乘法表的内层循环不需要换行
    print("")

"""
循环中断:
临时中断:continue:
    中断所在循环的当次执行,直接进入下一次。
永久中断:break:
    直接结束所在的循环
注意事项:
· continue和break,在for和while循环中作用一致
· 在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用。

循环综合练习:
某公司,账户余额1w元,给20名员工发工资。
· 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元。
· 领工资时,判断员工绩效分(1-10)(随机生成),低于5分不能发工资,继续下一位。
· 如果工资发完了,结束发工资

"""

for_work_num4=10000
for i in range(1,21):
    if for_work_num4 > 0:
        if random.randint(1,10) < 5:
            print(f"{i}号员工绩效不够,不发工资!")
            continue
        else:
            for_work_num4 = for_work_num4-1000
            print(f"{i}号员工领取工资1000元,公司剩余{for_work_num4}元")
    else:
        print("工资发放完毕")
        break

*滑块验证:

本版积分规则

DA论坛飞机票来了~

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表