04-python的循环语句-while循环/for循环/range语句/continue语句/break语句/99乘法表/计算指定数字内的偶数个数/随机猜数字/求100以内的数字之和

简介: 04-python的循环语句-while循环/for循环/range语句/continue语句/break语句/99乘法表/计算指定数字内的偶数个数/随机猜数字/求100以内的数字之和

循环和判断一样都是最基础最核心的内容

01while循环的基础语法

循环的两个关键:操作和条件,条件:比较,bool类型(要么是ture要么是false)

下面就是循环输出100次小海变大神

"""
演示while循环的基础应用
"""
i=0
while i<100:
    print("小海变大神")
    i+=1

02案例练习:求1-100的和

"""
演示1-100的和
"""
sum = 0
i= 1
while i <=100:
    sum +=i
    i+=1
print(f"1-100的和是:{sum}")

03使用while循环,完成猜数字案例

"""
演示while循环的基础案例-猜数字
"""
#在1-100中随机获取一个数字
import random
num = random.randint(1,100)
#print(num)
#用于记录猜测的次数,初始count为0,而后用count+=1来记录每次测的数据,每猜一次,count加1
count = 0
#在whlie中无限次的猜测机会
#通过一个布尔类型的变量,做循环是否继续的标记,默认是ture
flag = True
while flag:
    guess_num=int(input("请输入你要猜测的数字:"))
    count+=1
    if guess_num==num:
        print("您猜中了,很棒")
        flag = False #用于终止while循环
    else:
        if guess_num>num:
            print("您猜的数字偏大了")
        else:
            print("您猜的数字偏小了")
print(f"你总共猜测了{count}次")

理解记忆

#使用random随机生成一个数字
import random
num=random.randint(1,100)
#使用count记录猜的次数,设置初始数值为0
count=0
flag=True
while flag:
    #输入你要猜的数字
    guess_num=int(input("请输入你要猜的数字:"))
    #猜一次,count就+1;最后count就是猜的总次数、
    count+=1
    if guess_num==num:
        print("恭喜你猜对了")
        #猜对了,就让循环停止,这里设置flag变化
        flag=False
    else:
        if guess_num>num:
            print("你猜的数字偏大")
        else:
            print("你猜的数字小了")
print(f"你一共猜了{count}次")

04while循环的嵌套应用

注意使用空格来确保嵌套关系

"""
演示while循环的嵌套使用
需求:表白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}天,表白被拒")
#注意根据前面i=1开始,用i<=100来进行判断最后100的时候,会符合条件,进入循环,最后输出101,故最后需要是i-1

注意,当j进入到内置循环中后,会在内层循环中循环10次,当j=11的时候,不再满足while的判断条件时,才能出内层循环,这时候i才能加1,当i再1进入内层循环时候,j又一次定义为1,再次在内层循环中跑10次,才能出内层循环,外层的i才能加1

这里的每天送10枝花,是一枝一枝送的,先送第一枝,再送第二枝,累加到10枝,不是一下送10枝

05while嵌套循环的案例-打印99乘法表

print输出不换行end=' '

print("hello",end='')
print("world",end='')

end='',可以控制输出的子符不换行,但同时他单引号之间的空格,将会影响每一行字符之间的空格

print("hello",end='      ')
print("world",end='')
print()
print("hello",end='                          ')
print("world",end='')

制表符\t--多行字符串进行对齐

print("Hello World")
print("itheima best")
print("Hello\tWorld")
print("itheima\tbest")

打印99乘法表的案例

一共9行,需要有一个外循环来控制行数。每一行的数量也不一样还有有一个能控制每一行输出的控制。也就是外层循环控制行,内置循环控制每一行的内容。再看条件,看行,一共9行,若定义i,那么i<=9.而内层循环中,会发现第一行一个,第二行两个,第三行三个,,,每一行输出的数量是和行数匹配的。若用j表示循环条件,则j<=i.这也就是内层循环的条件。每一行乘的数字是怎么来到呢?第一行1x1.第2行从1开始乘,乘的还都是2,乘到2结束,第3行,从1开始乘,乘到3结束,都乘3。依次类推。也就是说每一行乘的数字都是行数,也就是外层循环的控制数i,而前面乘的数字也就是j,整体来说也就是iX j,每一行都是从1开始乘,知道行数截至是因为,在每次循环时候,都将j重置为1.要注意的就是输出不换行,让对应一行的输出在同一行。也就是print(“i*j”,end= ‘’)同时还发现有对齐的关系,故还要用到\t控制对齐关系。

"""
演示使用while的嵌套循环
打印输出99乘法表
"""
#定义外层循环的控制变量,从1开始
i=1
while i<=9:
    #定义内层循环的控制变量
    j =1
    while j<=i:
        #内层循环的print语句,不要换行,注意要表示出来谁乘以谁等于谁,要用\t制表符对齐,用end=''来控制换行
        print(f"{j}*{i}={j*i}\t",end='')
        j+=1
    i+=1
    print()     #打印一个空内容,也就是换行的意思

06–for循环的基础语句

for循环和while循环的对比

while循环,这里的条件可以自行控制,满足条件就可以循环

for循环,一批内容,逐个处理,取到1,看是否有下一个,有的话,就把2取过来,对2进行处理。当所有的都取完以后,没有下一个了,就不在进行for循环了。

对待处理数据集的数据挨个取出来,每一次循环,就将当前数据赋予这个临时变量

"""
演示for循环是基础语法使用
"""
#定义字符串name
name = "anquantongwang"
#for循环处理字符串
for x in name:
    print(x)

for循环:它将被处理的数据里面的内容挨个取出赋予临时变量,进而对其进行处理。

python中空格缩进很重要,千万不要忘记了。

07–练习案例-一共有几个a

"""
演示for循环的练习题:数一数有几个a
"""
#统计如下字符串中,有多少个字母a
name = "itheima is a brand of itcast"
#定义一个变量,用来统计有多少个a
count = 0
#for 循环统计
#for临时变量 in 被统计的数据
for x in name:
    if x== "a":
        count+=1
print(f"被统计的{name}中有{count}个a")

#判断输入的字符中有几个a
name=input("请输入你要判断有几个a的字符串:")
count=0
for x in name:
    #这里的a是字符串要加双引号
    if x=="a":
         count+=1
#输出要在循环外面,否则就会每次循环都输出一遍
print(f"你输入的字符{name}一共有{count}个a")

08–range语句

range语句-获得一个简单的数字序列

#range语法1 range(num),配合for循环使用,range(num)严格来说就是个序列
for x in range(10):
  print(x,end='')

#range 语法2 range(num1,num2)
for x in range(5,10):
  print(x,end='')

#range 语法3 range(num1,num2,step)
for x in range(5,10,2):
  print(x,end='')

#拓展代码
for x in range(10):
    print(f"{x}\t",end='  ')
print( )
for x in range(5,9):
    print(f"{x}\t",end=' ')
print()
for x in range(2,9,2):
    print(f"{x}\t",end=' ')

有什么用呢?

i=1
while i<= 10:
    print("送玫瑰花")
    i+=1

这是送了10朵玫瑰花

for x in range(10):
    print("送玫瑰花")

两者效果是一样的

#代码升级效果
i=1
while i<=10:
    print(f"送你第{i}玫瑰花")
    i+=1

for x in range(11):
    print(f"送你第{x}玫瑰花")

range是从0开始到10结束,这里的是range(11)

效果一样的代码如下

#当步长是1的时候属于默认步长,可以不写
for x in range(1,11):
    print(f"送你第{x}玫瑰花")

练习案例–有几个偶数

count=0
num=int(input("请输入从1开始最后的截止数字:"))
#range遍历的时候不遍历num,为了能够包含这个数字,这里使用num+1
for x in range(1,num+1):`
    #判断是否为偶数,即是判断对2求余是否为0
    if x%2==0:
        count+=1
print(f"从1开始截止数字{num}共有{count}个偶数")

09–for循环的基础语法-变量作用域

"""
演示python for循环临时变量的作用域
"""
for i in range(5):
    print(i)
print(i)

这里就不符合规范,规范是软要求,而规则就是硬要求,不建议这样使用哦。

那到底如何正常的在for循环外调用这个I呢?很简单,在for循环外定义这个i就i就就可以了。

就不在有黄色提醒了

10-for循环的嵌套使用

"""
演示for循环的嵌套
"""
#坚持表白100天,每天都送10朵花
i=1#定义好i,让代码规范使用
for i in range(1,101):
    print(f"今天是向小美表白的第{i}天")
    #写内层循环
    for j in range(1,11):
        print(f"送给小美的第{j}朵玫瑰花")
    print(f"小美,我喜欢你(第{i}天的表白失败结束)")
print(f"第{i}天,表白成功")

#书写规范,最后还要用到i,这里先给i赋初值1
i=1
for i in range(1,101):
    for j in range(1,11):
        print(f"这是第{i}天送的第{j}朵花")
    print(f"第{i}天的表白失败")
print(f"坚持了{i}天,终究是表白失败了")

i=1
while i<=100:
    for j in range(1,11):
        print(f"这是第{i}天,表白的第{j}次")
    print(f"表白的第{i}天以失败结束告终")
    i+=1
#注意这里是i-1天,当循环到i00时候,下面又加了一次1,再到上面的101<=100,不符合条件,才跳出循环,所以这里用i-1
print(f"表白了{i-1}天,终究是失败了")

11–用for循环打印99乘法表

两层循环来控制,外层循环来控制行数,内层循环控制每一行的内容

"""
演示for循环打印99乘法表
"""
#通过外层循环控制行数,从1开始到9结束,所以是range(1,10)
for i in range(1,10):
    #通过内层循环控制每一行的内容输出,因为每一行的输出内容不一样,是和行号有关的,故要用到i,i+1正好输出为i
    for j in range(1,i+1):
        #内层循环中输出每一行的内容,用\t对齐,用end=''来使其在同一行
        print(f"{i}*{j}={i*j}\t",end='')
    #外层循环通过print输出一个换行
    print()

12-循环中断continue和break

continue-结束本次循环,进入下一次循环

遇到contiune,本次循环结束,进入到下一次循环,上面例子中只会输出语句1,不会输出语句2

语句2也有黄色警告提醒

continue在循环中只能控制他所在的循环的中断

#演示continue的嵌套应用
for i in range(1,6):
    print("语句1")
    for j in range(1,6):
        print("语句2")
        continue
        print("语句3")
    print("语句4")

会输出1个语句1,5个语句2,语句3无法输出,再有一个语句4,如此重复5次,就是输出的结果

break-直接结束循环

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

只输出语句1和语句3,也就是遇到break,整体循环就结束了

continue只是结束了这次循环,后面的一条语句不执行,但是这个循环还会继续下去,而break是结束了循环,直接将循环给结束掉了、

break在嵌套循环中的应用-它所造循环的结束

只对编号1生效,对编号2不生效

#演示break的嵌套应用
for i in range(1,6):
    print("语句1")
    for j in range(1,101):
        print("语句2")
        break
        print("语句3")
    print("语句4")

生成一句语句1,一句语句2,一句语句4,重复5次,这也就是说在内层循环中执行完语句2就被中断了,结束了循环,而外层循环还在继续,再一次执行外层循环时候,内层循环又是只是执行了一次

13-循环综合案例

"""
综合案例-给员工发工资
"""
money=10000
#for循环对员工发放工资
for i in range(1,21):
    #随机生成一个数字
    import random
    score = random.randint(1,10)
    # import random
    # score = random.randint(1,10)
    #判断生成的随机数字是否满足发工资的要求
    if score <5:
        print(f"员工{i}绩效分{score},不满足,不发工资,下一位")
        #continue终止这次循环,进入下一个,也就是跳过发放
        continue
    #判断余额是否够发工资
    if money >= 1000:
        money -=1000
        print(f"员工{i},满足条件发放工资1000,公司账户余额:{money}")
    else:
        print(f"余额不足,当前余额:{money}元,不足以发工资,不发了,下个月有工资再说")
        #break结束发工资
        break


相关文章
|
1天前
|
PHP Python
最新【Python】 实现循环最快的方式_python while循环加速,2024年最新阿里php面试题
最新【Python】 实现循环最快的方式_python while循环加速,2024年最新阿里php面试题
|
1天前
|
Python
2024年最新【Python】循环结构:while 循环(1),阿里巴巴面试常见问题及回答技巧
2024年最新【Python】循环结构:while 循环(1),阿里巴巴面试常见问题及回答技巧
2024年最新【Python】循环结构:while 循环(1),阿里巴巴面试常见问题及回答技巧
|
1天前
|
算法 程序员 Python
年底工资总结,实例教你用Python计算个税 依法纳税做好公民(1)
年底工资总结,实例教你用Python计算个税 依法纳税做好公民(1)
|
4天前
|
数据采集 数据挖掘 关系型数据库
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
|
4天前
|
Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
|
4天前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
|
4天前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
|
6天前
|
Python
python计算线段角度
python计算线段角度
5 0
|
6天前
|
索引 Python
【Python 基础】解释Range函数
【5月更文挑战第6天】【Python 基础】解释Range函数
|
6天前
|
机器学习/深度学习 JSON 数据库
Python每循环一次保存一次结果
Python每循环一次保存一次结果
13 1