(超全)总结Python循环的相关问题(硬货较多,适合初学者和复习者)

Python循环并不难,认真理解以下知识点,你也可以学的很好。(此文章适合初学者,也适合复习)  

先简单回顾一下Python循环:

Python里的循环有两种一个是while语句循环,一个是for语句循环。

while语法格式:

      #缩进 ---- 强缩进语言

      #执行循环体

for循环是用来遍历容器(迭代可迭代的对象)

比如说:打印1~100

引入了一个函数:range()

range ---- 范围,区间

range(参数) ------- 表示的是从0开始到参数结束,不包含这个参数的,前闭后开的区间

其实Python里的while循环和for循环本身没有什么难度,不难理解,但是在后续的学习中会有循环的嵌套,所以才会感觉难,但只要把基础的知识学习好,自然也就水到渠成了。

下面举个while循环的简单的小例子:(在敲代码前一定要注意,Python里的循环是强缩进性语言,一定要注意空格和TAB不能混用,也不能多敲一个空格,总之注意上下代码的对齐。)

1.1 

        打印1~100

 n = 1
 while n <= 100:
     print(n)
     n += 1

1. 2 

         计算100以内所有奇数的和  

 sum = 0
 n = 99
 while n > 0:
     sum += n
     n -= 2
 print(sum)

    1.3
            * 
           **
          ***
         ****
layer = int(input("请输入你要打印的层数:"))
index = 1
while index <= layer: #layer = 3
    #打印每层的*
    j = 1
    while j <= index: #index = 1 2
        print("*",end="")
        j += 1
    print() #换行
    index += 1

1.4

        打印九九乘法表

i = 1 
while i <= 9:
    j = 1
    while j <= i:
        print("%s * %s = %s "%(j,i,(i*j)),end="")
        j += 1
    print() #换行
    i += 1

也可以进行如下的优化:

i = 1
while i <= 9:
    j = 1
    while j <= i:
        res = i * j
        if res < 10:
            print("%s * %s = %s "%(j,i,(i*j)),end="")
        else:
            print("%s * %s = %s "%(j,i,(i*j)),end="")
        j += 1
    print() #换行
    i += 1
1. 5
         判断一个数是否为质数(素数)
        质数:除了1 和它本身之外不会被其他自然数整除的数
        最小质数的是2
        2, 3 5 7 11 13 17.........
num = int(input("请输入一个数:"))
if num <=1:
    print("这不是质数")
elif num == 2:
    print("这是质数")
else:
    i = 2
    while i < num:
        if num % i == 0:
            print("这不是质数")
            break
        i += 1
    else:
        print("这是质数")
        

for语句循环

1.1 

打印1-100的整数:

for i in range(10):
    print(i)
... 
0
1
2
3
4
5
6
7
8
9
    
range( 参数 1, 参数 2)---- 表示的是从参数 1 到参数 2 之间,不包含参数 2 ,前闭后开的区间
for i in range(10,20): 
    print(i)
//... (运行后结果)
10
11
12
13
14
15
16
17
18
19
range( 参数 1 ,参数 2 step)------ 表示的是从参数 1 到参数 2 step 为单位之间的数,不包含参数 2 ,前闭
后开的区间
for i in range(10,20,2):
    print(i)
...
10
12
14
16
18

for i in range(20,10,-2): 
    print(i)
... 
20
18
16
14
12

对于循环还有breakcontinue关键字也非常重要

break关键字在循环体内被执行的话,会直接终结整个循环。

continu关键字在循环体内被执行的话,会跳过本次循环,继续执行下一次循环。

for i in range(101):
    # if i == 50: 
    #     break #终止循环
      if i == 50:
          continue #跳过此次循环,继续执行下一次循环
      print(i)
关键字: pass ---- 可以应用到任何地方,不清楚代码怎么写的情况下,为了不影响代码的执行可以使用
pass 关键字让代码继续执行
一个完整的循环的语法结构:
for 变量 in range(范围): 
    #缩进 
    #循环体 
【else: 
    循环正常结束后执行的代码
 】
【】-----可选的部分,可写可不写

for i in range(101):
     # if i == 50:
     # break #终止循环
     if i == 50:
         continue #跳过此次循环,继续执行下一次循环
     print(i)
else:
    print("循环正常结束的情况下会执行我") 
print("循环结束了!!!")

最后弄个循环的基础题给大家玩一玩:

#打印
#    *
#   *** 
#  *****
# ******* 
#  ***** 
#   ***
#    *
while layer % 2 == 0: 
    layer = int(input("请输入正确的要打印的行数,注意是奇数行:"))
 #上半部分 
for i in range(1,layer // 2 + 2): 
    #计算空格的个数 
    spce_num = layer - i
    for j in range(0,spce_num): 
        print(" ",end="") 
    #计算*个数 
    star_num = 2 * i - 1 
    for j in range(0,star_num):
        print("*",end="") 
    print("") 
#下半部分 
for i in range(layer // 2 ,0,-1):# (3,0,-1) 
    #计算空格的个数
    spce_num = layer - i 
    for j in range(0,spce_num):
         print(" ",end="") 
#计算*个数 
    star_num = 2 * i - 1 
    for j in range(0,star_num): 
        print("*",end="") 
    print("")

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值