> 文章列表 > Python学习笔记--循环语句 for 和 while

Python学习笔记--循环语句 for 和 while

Python学习笔记--循环语句 for 和 while

目前更新中....

(一) while循环的基本语法

1.  基本格式

while 条件

      条件满足时,做的事情1

      条件满足时,做的事情2

     …(省略)…

  • 只要条件满足,会无限循环执行
  • 条件需要布尔类型结果
    while 判断条件(condition):执行语句(statements)……

    练习:100的累加求和

    """
    100的累加求和
    """
    n=1
    sum=0
    while n<101:sum=sum+nn+=1
    print("请输出结果:%d"% sum)

  • (二) while循环的基础案例

import random
num=random.randint(1,100)
# 定义一个变量,记录猜测了多少次
count=0
# 通过一个布尔类型的变量,做循环是否继续的标记
flag=True
while flag:guess_num=int(input("键盘输入一个数"))count+=1if guess_num==num:print("猜对了")flag==Falseelse:if guess_num>num:print("你猜测大了")else: print("你猜测小了")print(f"你总共猜测了{count}次")

(三) while循环的嵌套应用

 1. 基本格式:

while 条件1:

      条件1满足时,做的事情1

      条件1满足时,做的事情2

     …(省略)…

      while 条件2:

          条件2满足时,做的事情1

          条件2满足时,做的事情2

          …(省略)…
 

"""
演示while循环的嵌套使用
"""
# 外层:表白100天的控制
# 内层:每天的表白都送10朵玫瑰花的控制
i=1
while i<=100:print(f"今天是第{i}天,准备表白。。")# 内层循环j=1while j<=10:print(f"送给小妹第{j}朵玫瑰花")j+=1print("小美,我喜欢你")i+=1print(f"坚持到第{i-1}天,表白成功")#这里为i-1,是因为假设最后一次成功,到最后whil循环到101才不满足循环,但是表白实在第i天也就是100的时候

(四) while循环的嵌套应用补充:

补充:

1. print输出不换行

print("Hello",end=' ')
print("World!",end='')

 2. 制表符/t

print("学号\\t姓名\\t语文\\t数学\\t英语")
print("2022001\\t小王\\t99\\t\\t88\\t\\t0")
print("2022002\\t小周\\t92\\t\\t45\\t\\t93")
print("2022008\\t小黄\\t77\\t\\t82\\t\\t100")

练习

"""
演示使用while的嵌套循环
打印输出九九乘法表
"""
#定义一个外层循环
i=1 # 行
while i<=9:
# 定义一个内层循环j=1 # 列while j<=i:print(f"{j}*{i}={j*i}\\t",end='')j=j+1i+=1print();#print()空内容,就是输出一个换行

(五) for循环的基础语法

1. 基础语法

for循环就是将“待办事项”逐个完成的循环机制

while循环的循环条件是自定义,自行控制循环条件
for循环是一种“轮询”机制,是对一批内容进行逐个处理
!for循环无法定义循环条件,只能从被处理的数据集中,依次取出内容进行处理

1) 基本格式:

for 临时变量 in 待处理的数据集:

            循环满足条件时执行的语句

 练习:

"""
演示for循环的基础语法
"""
name="itheima"
for x in name:# 将name的内容,挨个去除赋予x临时变量# 就可以在循环以内对x进行处理print(x)

 练习

name="itheima is a brand of itcast"
count=0
for x in name:if x=='a':count+=1
print(f"总共有{count}个字母")

(六)for循环的嵌套应用

1. 基本格式:

for 临时变量 in 待处理的数据集:

            循环满足条件时执行的语句1

            循环满足条件时执行的语句2

            ……

             for 临时变量 in 待处理的数据集:

                          循环满足条件时执行的语句1

                          循环满足条件时执行的语句1       

练习:

"""
九九乘法表
"""
i=1
for i in range(1,10):#range(1,10)为1 2 3 4 5 6 7 8 9,不包括10j=1for j in range(1,i+1):print(f"{j}*{i}={j*i}\\t",end='')j=j+1i=i+1print()#换行操作

扩展range() 函数

1.如果你需要遍历数字序列,可以使用内置 range() 函数。它会生成数列,例如:

for i in range(5):
...     print(i)
...
0
1
2
3
4

 2.你也可以使用 range() 指定区间的值:

for i in range(5,9) :print(i)5
6
7
8

3.也可以使 range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):

for i in range(0, 10, 3) :print(i)0
3
6
9

4.负数:

for i in range(-10, -100, -30) :print(i)-10
-40
-70
>>>

5.可以结合 range() 和 len() 函数以遍历一个序列的索引,如下所示:

a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
>>>

6.可以使用 range() 函数来创建一个列表:

list(range(5))
[0, 1, 2, 3, 4]
>>>

(七) 循环中断:break和continue

1. continue关键字作用:中断本次循环,直接进入下一次循环【for循环和while循环即可使用】

2. break关键字作用:所在循环永久中断【for循环和while循环即可使用】

while 中使用 break:

n = 5
while n > 0:n -= 1if n == 2:breakprint(n)
print('循环结束。')

while 中使用 continue:

n = 5
while n > 0:n -= 1if n == 2:continueprint(n)
print('循环结束。')

 

 实例:

for letter in 'Runoob':     # 第一个实例if letter == 'b':breakprint ('当前字母为 :', letter)var = 10                    # 第二个实例
while var > 0:print ('当前变量值为 :', var)var = var -1if var == 5:breakprint ("Good bye!")

 以下实例循环字符串 Runoob,碰到字母 o 跳过输出:

for letter in 'Runoob':     # 第一个实例if letter == 'o':        # 字母为 o 时跳过输出continueprint ('当前字母 :', letter)var = 10                    # 第二个实例
while var > 0:              var = var -1if var == 5:             # 变量为 5 时跳过输出continueprint ('当前变量值 :', var)
print ("Good bye!")

 

循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。

如下实例用于查询质数的循环例子:

for n in range(2, 10):for x in range(2, n):if n % x == 0:print(f"{n}等于{x}*{int(n/x)}")breakelse:# 循环中没有找到元素print(f"{n}是质数")

 

(八)PASS语句

Python pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句,如下实例

for letter in 'Runoob':if letter == 'o':passprint ('执行 pass 块')print ('当前字母 :', letter)print ("Good bye!")

 

风车动漫在线