python笔记_程序流程控制2

C,循环控制

1,for循环

功能:让代码循环运行

语法:

for <变量> in <范围、序列>:

<循环操作语句>

nums = (1,2,3,4) <class 'list'>

for i in nums:

        print("第",i,"名")

——>

第1名

第2名

第3名

第4名

说明:

        1,for,in是关键字

        2,<范围、序列>可以理解为要处理的数据集,必须是可迭代对象(字符串,列表等)

        3,<循环操作语句>可以有多条

        4,python的for循环是轮询机制(一个一个问过去)

        5,可以和else配合使用

for <变量> in <范围、序列>:

<循环操作语句>

else:

<循环操作语句>

流程图

tips:遍历数字序列,可以使用内置range()函数,生成数列,且数列前闭后开

        range()函数 

        1,range()是一个不可变的序列类型

        2,默认step=1,start=0

        3,list()函数可以查看range()生成的序列包含的数据

        4,生成的数列前闭后开

        语法

        range(start,stop,step=1):

        range(起点,终点,每次增加的数)

        要求:生成(1,2,3,4,5)

        r = range(1,6,1)

        print(list(r))

        ——>

        (1,2,3,4,5)

练习(for)

1,生成(0,1,2,3,4,5)

range(6):

print(list(range))

2,用for range输出10次hello world

for a range(10):

        print("hello world")


2,while循环

功能:在表达式为的前提下,重复地执行

语法

while <判断条件>:

        <循环操作语句>

说明:

        1,while是关键字

        2,条件为True,执行<循环操作语句>;条件为False,退出while

        3, <循环操作语句>可以有多条

age = 1

while age < 4:

        print("Tom还不到4岁",age)

        age += 1 age会不断+1

——>

Tom还不到4岁 1

Tom还不到4岁 2

Tom还不到4岁 3

流程图

        4,while可以和else一起使用

while <判断条件>

        <循环操作语句>

else

        <其他语句>在while else判断条件为False时,会执行else的语句块

age = 1

while age < 4:

        print("Tom还不到4岁",age)

        age += 1 age会不断+1

else

        print("Tom是只大猫咪")

——>

Tom还不到4岁 1

Tom还不到4岁 2

Tom还不到4岁 3

Tom是只大猫咪


练习(while)

1,输出,1-100中所有能被3整除的数

a = 1

while a <= 100:

        if a%3 = 0

                print(a)

        a += 1

2,输出,40-100中所有偶数

a = 40

while a <=100:

        if a%2 = 0:

                print(a)

        a +=1 

3,键盘输入name,输入exit时结束 

name = input("请输入名字:")

while name != "exit":

        #name = input("请输入名字:")也可以写在这边

        print("name")

4,输出,1-100中所有能被9整除的数,并统计个数,算出总和

a = 1

count = 0

sum = 0

while a <= 100:

        if a%9 == 0:

                print(a)

                count += a

                sum += a

        a += 1

print(f"count={count} sum={sum}")


 3,多重循环

功能:将 一个循环放在另一个循环里(for,while)

说明

        1,嵌套循环就是把内层循环当成外层循环的循环体

        2,循环尽量不超过三个(可读性)

        3,如果外层循环是m次,内层循环是n次,一共需要循环m*n次

使用for 输出五层的空心金字塔

输出*****

for a in range(1,6):a控制每层输出的*的个数

        print("*",end ="")使用end ="",让输出结果不换行

输出由*组成的矩形 

for b in range(1,6):b控制输出层数

        for a in range(1,6):

                print("*",end ="")

        print("")print("")每层输出后换行

输出直角三角形 

for b in range(1,6):

        for a in range(b):每层输出的*的个数=(1,b+1)= b

                print("*",end ="")

        print("")

 输出金字塔

for b in range(1,6):

        for c in range(5-b):c控制空格数,每层的空格数=5-b

                print(" ",end ="")

        for a in range(2*b-1):每层*的个数=2*b-1

                print("*",end ="")

        print("")

 输出空心金字塔

每层的两边输出*,最后一层输出*

for b in range(1,6):

        for c in range(5-b):

                print(" ",end ="")

        for a in range(2*b-1):

                if a == 0 or a == 2*b-1-1 or a = 5:金字塔的两边(左边和右边的*),最后一层

                        print("*",end ="")

                else:

                        print(" ",end ="")金字塔中间的空格

        print("")

 输出层数可随意改变的空心金字塔

使用total_level(总层数)

for b in range(1,total_level):

        for c in range(total_level-b):

                print(" ",end ="")

        for a in range(2*b-1):

                if a == 0 or a == 2*b-1-1 or a = total_level

                        print("*",end ="")

                else:

                        print(" ",end ="")

        print("")

练习 

统计三个班的成绩,每班有五个学生

1,求各个班的平均分,从键盘输入学生成绩

sum = 0.0一个班的总分

for a range(6):

        score = float(input("请输入成绩:"))

        sum += score 累加到sum

print(f"班级平均分 {sum/5}")

2,求三个班级及格人数的总和以及平均分

sum = 0.0

total = 0.0平均分

pass_num = 0及格人数

for b range(1,4):三个班

        for a range(6):

                score = float(input("请输入b班级a学生成绩:"))

                if sum >= 60.0:判断是否及格

                        pass_num += 1累加到pass_num

                sum += score

        print(f"第b班级平均分 {sum/5}")

        total += sum

print(f"所有班级的平均分{total/5*3 及格人数{pass_num}")

  • 37
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值