Python循环语句

简介: 【10月更文挑战第7天】

【10月更文挑战第7天】

1.while循环

while 循环条件

语句(循环条件成立时执行)

重复执行某一个函数

image.png

while 的使用和 if 类似,

判断为真的时候则运行缩进里面的代码,

判断式为假时则停止循环

赋值运算符(算术运算符+赋值符):+=、-=、*=、\=、\=

作用:将左右两边的内容,进行指定的算术运算,将结果赋值给左边的变量

输出一到10的数字:

#输出一到10的数字
n=1
while n<11:
    print(n)
    n+=1

输出1到10之间的偶数:

#输出1到10之间的偶数
n=2
while n<=10:
    print(n)
    n+=2

累加1-10之间的数字和:

#累加1-10之间的数字和
sum=0#用于累加每次循环n的值
n=1
while n<=10:
    sum+=n
    n+=1
print(sum)

while循环后面也可以接上else循环,当循环正常结束的时候,就会执行else内的代码

else在while循环内的操作:


a=1
while a<5:
    print(a)
    a+=1
else:
    print("循环结束")

2.break和continue

用户登录,用户名和密码错误有三次机会:

#用户登录,用户名和密码错误有三次机会
c=1
while c<=3:
    name=input("请输入用户名")
    pw=input("请输入登录密码")
    if name=="huyunkai" and pw=="123456":
        print("登录成功")
    else:
        print("用户名或者密码输入错误")
    c+=1

在我们这个登录题目中

我们输入正确的密码和账号

我们还是要继续进行输入的操作

所以我们需要在输入正确的用户名和密码之后我们需要跳出这个循环

这个时候我们就需要使用到break了

break具有很强的破坏力,它的作用是直接停止当前所在的循环

while 后面也可以直接跟上True,但是内部就必须要使用break来终止循环。

使用break终止的循环,是不会执行else的内容。

有break的版本:

#用户登录,用户名和密码错误有三次机会
c=1
while c<=3:
    name=input("请输入用户名")
    pw=input("请输入登录密码")
    if name=="huyunkai" and pw=="123456":
        print("登录成功")
        break#登录成功直接跳出了,break的位置一定要放在语句后面
    else:
        print("用户名或者密码输入错误")
    c+=1

break只能在循环里面进行使用

continue

continue语句的作用是终止本次循环,并跳过循环体中continue后面的语句,回到循环的顶端,继续执行下一次循环。

使用continue跳过本次循环,在循环正常执行完毕后依然执行else的内容

仅仅只是跳过某一次循环

跳过此次循环,此次循环的后面 的代码不进行编译

continue的使用:

#continue ----跳过一次循环,开始下一次循环

#输出1到10之间的偶数
n=1
while n<=10:
    if n%2!=0:
        continue
    print(n)
    n+=1

#这样写代码是死循环的
'''
因为我们一开始n=1
那么满足这个if条件的雨具,单后就直接continue了
然后就不进行后面的n+=1了
然后进行下一次循环,这次n还是1
那么结果就是和上次的是一样的结果
那么为了避免死循环的话,我们需要将n+=1放在continue的前面
'''
#正确写法:
n=1
while n<=10:
    if n%2!=0:
        n+=1  #一定要添加,不然就是死循环了
        continue
    print(n)
    n+=1

3.for循环

基本格式1:遍历对象

for 变量 in 序列:

代码

格式2:使用range函数控制循环次数

for 变量 in range():

序列:字符串、列表、元组

目前我们只接触到了字符串

方法一:

for循环中的变量:可以不提前进行定义,后面会将遍历的值赋值给变量

第一种格式

#遍历:从序列中依次拿取数据,每次循环回拿一个,拿完了循环就结束了
for i in "python":#对这个字符串进行遍历
    #从字符串里面拿字符依次进行遍历
    print(i)

#每次循环都是从字符串里面拿取一个字符
#基本格式就是 for  变量  in  序列
    #我们这里的变量是可以直接在这里进行定义的
    #可以不像之前那样非要赋值了才能用

依次从序列中拿取,每次拿一个元素

直到整个序列内都拿完了就停止循环了

for else

只要程序正常执行就能运行else中的代码

image.png

4.range

for循环中的range的使用方法:

for 变量 in range():

在这个range函数里面有三个参数

开始的数字、结束的数字、步长

对于开始数字的话,我们不进行设置的话默认值是0,

步长的默认值为1

我们循环是不包含结束值的

这个for循环的范围就是[开始数字,结束数字)

左边是闭区间,右边是开区间的

range函数的基本使用方式:

#方法二:使用range函数控制循环的次数
'''
for 变量  in  range():
'''

#在这个range函数里面有三个参数
#开始的数字、结束的数字、步长
#对于开始数字的话,我们不进行设置的话默认值是0,

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


#我们在这里的range后面的函数没有写另外两个参数,但是没有进行报错
#为什么呢?
#因为开始的默认值为0,步长默认值为1
#那么这里的range(5)等价于range(0,5,1)的

#意思就是从0开始,到5结束,每次增加步长,就是每次循环就增加1

#对于我们上面的代码,仅仅是打印0-4,并没有进行5的打印
#为什么呢?
'''
因为对于range函数来说,我们的结束值是不包括在内的
那么打印的区间范围就是[0,5)
如果我们想输入0-5的数字,那么我们就需要将结束值改成6
那么编译器就会依次打印0-5的数字了
'''
for i in range(1,11,1):
    print(i)
#那么这里的话就能输出1-10的数字了

#可以与while进行比较,可以发现for循环比while更加简单一些

可以与while进行比较,可以发现for循环比while更加简单一些

输出1-10之间的偶数:

for i in range(2,11,2):
    print(i)

print("********")

累计1-10之间的数字:

sum=0#累加的和
for i in range (1,11,1):
    sum+=i
print(sum)

我们在循环的时候,如果是正常运行的话是会运行这个循环后面的else代码的

a=1
while a<5:
    print(a)
    a+=1
else:
    print("循环结束")

不管是while循环还是for循环都是这样的

除非是非正常循环,比如说满足一个条件就break了

这就是不正常循环的例子

但是如果是continue的话,那么这个循环仍然是正常循环的

else仍然能正常运行

#当循环正常结束的时候,回执行else部分
for i in range(1,6):
    print(f"吃第{i}个苹果")
else:
    print("吃完了")
'''


'''
#5个苹果,吃了3个苹果就饱了

for i in range(1,6):
    print(f"吃第{i}个苹果")
    if i==3:
        break
else:
    print("吃完了")
 '''   

'''
当循环正常结束的时候,回执行else部分
但是当我们通过break跳出循环过后是不会进行else循环的
这个break是强制解除掉的

回想之前的用户名密码登录的问题
如果我们输入了三次密码之后还是错的,那么我们直接就进入else直接锁定账户
之前的是我们输入密码正确后我们直接break了,那么就是非正常结束循环

break结束的循环是不会执行else部分
'''
'''
#5个苹果,第四个坏了,不能吃
for i in range(1,6):
    if i==4:
        continue
    print(f"吃第{i}个苹果")   
else:
    print("吃完了")
#那么对于现在这个代码的话,当i=4的时候我们是不进行当前循环的进行的,直接跳出进行下一次循环
#continue跳过当次循环,进行下一次循环,仍然是正常的循环的,会执行else的操作

'''

5.循环嵌套

for i in range(1,4):
    print(f"第{i}天写作业")
    print("第1页")
    print("第2页")
    print("第3页")
    print("第4页")
    print("第5页")
'''
#对于后面的页数,我们是可以利用循环嵌套以及格式化的方式将这个缩写出来的
for i in range(1,4):
    print(f"第{i}天写作业")
    for n in range(1,6):       
        print(f"第{n}页")

#那么这个循环嵌套就能达到我们要的效果了

'''
对于这个代码的话
当i=1的时候,n的大小是从1-5一直在变化
当内循环遍历完之后,然后i变成2,重复之前的过程的
外部循环执行一遍,内部循环执行n遍
'''

假设外层循环是i次,内层循j次

那么每进行一次外层循环,那么就会进行j内层循环

只有每一个外层循环里面循环了j次,i才会++,进行下一次的外循环

九九乘法表:

for i in range(1,10):
    for j in range(1,i+1):#让j的大小随着i的变化而变化
        print(f'{j}x{i}={i*j}',end="\t")#"\t是制表符"  这里空格也是可以的,但是会导致列数对不齐了
    print("\n")    #每一个外层循环结束的时候我们就进行换行的操作,手动换行
#手动换行,要在新的一行进行内容输出,要在新的一行进行输出

#\t能保证每一次内循环打印的内容都在同一行
#然后进行完i次内循环之后我们就进行一个整体的换行,就是我们在外循环和内循环中间加的换行操作

#加了\t之后,我们每个打印完成之后的式子之间的距离就是一个Tab键的距离,会对齐就好一点

效果图:

image.png

每个班有5名学生,有语数外三科,外部输入每个学生每科的成绩

分别求出每个学生三科成绩的平均值(保留两位小数)

s1=eval(input("请输入成绩1"))
s2=eval(input("请输入成绩2"))
s3=eval(input("请输入成绩3"))

avg=(s1+s2+s3)/3#求平均值
print(f'平均值为{avg:.2f}')

现在我们通过代码实现了一个学生的平均值的操作

但是我们还要实现4个学生,那么我们就需要进行循环操作

for i in range(1,6):
    sum=0
    svg=0
    print(f"第{i}个学生的成绩的录入")
    for j in range(1,4):
        s=eval(input(f"请输入成绩{j}:"))
        sum+=s
    avg=sum/3#每进行完3次内部循环我们就进行平均值的计算

    print(f'平均值为{avg:.2f}')
#sum在内部循环和外部循环之间定义的原因
'''
每进行完一次外部循环,那么这个sum就进行清零
然后重新计算另一个学生的值
这个avg也是一样的
'''

6.random模块

具体作用----随机模块

生成随机的内容

这个模块内的方法:

randint()---生成随机n-m之间的随机整数

我们如果想使用某一个模块

我们需要通过import 将这个模块拿到导入到当前pyhton文件中

之前的我们在变量那一章节,我们导入的是关键字

那么import就是导入模块的关键字

import 导入模块的名称

模块中的方法使用:模块名.方法名()

import random

random.randint(n,m)

这个就是生成n到m之间的数字

random模块里面的随机生成整数的方法的具体使用:

import random
num=random.randint(1,10)
print(num)

实现猜数字游戏

#猜数字游戏,电脑随机生成1-10的数字,用户进行猜测
#有5次机会
'''
电脑生成数字----random.randint()   --我们通过这个模块实现
用户猜测
    1.使用input输入用户的猜测
    2.我们要判断这个猜测是不是对的
        1.正确(第一次就猜对了,我们就不用继续猜了,使用break结束循环)
        2.不正确(我们给出提示)
            1.猜大了
            2.猜小了
'''
#现在实现的是单次的
print("---猜数字游戏(1-10)---")

import random
cp_num=random.randint(1,10)
print(cp_num)
for i in range(1,6):

    user_num=eval(input("请输入你猜的数字:"))

    if cp_num==user_num:
        print("恭喜你,猜对了")
        print("游戏结束")

        break

    elif cp_num<user_num:
        print(f"你猜的数字大了,你还有{5-i}次机会")

        continue
    else :
        print(f"你猜的数字小了,你还有{5-i}次机会")


        continue
else:
    print("游戏结束")
相关文章
|
4月前
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
56 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
|
4月前
|
Python
揭秘Python编程核心:一篇文章带你深入掌握for循环与while循环的奥秘!
【8月更文挑战第21天】Python中的循环结构——for循环与while循环,是编程的基础。for循环擅长遍历序列或集合中的元素,如列表或字符串;而while循环则在未知循环次数时特别有用,基于某个条件持续执行。本文通过实例展示两种循环的应用场景,比如用for循环计算数字平方和用while循环计算阶乘。此外,还通过案例分析比较了两者在处理用户输入任务时的不同优势,强调了根据实际需求选择合适循环的重要性。
55 0
|
26天前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
22 2
|
28天前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
29 2
|
29天前
|
Python
Python 中,循环判断
Python 中,循环判断
48 1
|
1月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
32 4
|
2月前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
69 5
|
2月前
|
Python
Python 循环语句的高级应用与深度探索
本文深入探讨了Python中循环语句的高级应用,包括`for`循环遍历字典获取键值、同步遍历多个序列,以及`while`循环结合条件判断和异常处理。通过嵌套循环实现了矩阵乘法,并介绍了如何优化循环以提升程序性能。示例代码展示了这些技术的实际应用。
53 15
|
3月前
|
Python
Python 中如何循环某一特定列的所有行数据
Python 中如何循环某一特定列的所有行数据
36 2
|
4月前
|
搜索推荐 Python
Python基础编程:冒泡排序和选择排序的另一种while循环实现
这篇文章介绍了Python中冒泡排序和选择排序的实现,提供了使用while循环的替代方法,并展示了排序算法的运行结果。
34 2
Python基础编程:冒泡排序和选择排序的另一种while循环实现