python笔记之while和for循环

实例1

输入n个数,求每次输入后的算术平均数。

sum = 0 #总和
count = 0 #计数
while True:
     n = input("请输入一个数:")
     if n == "exit":
          break
     sum+=int(n) #总和
     count +=1 #计数
     avg = sum/count #平均值
print("平均数为:"+str(avg))

运行结果:

请输入一个数:1  
请输入一个数:2  
请输入一个数:3  
请输入一个数:exit  
平均数为:2.0  

实例2

打印闪电

for i in range(-3,4):
    if i<0:
        print(" "*(-i)+"*"*(4+i))
    elif i>0:
        print(" "*3 + "*"*(4-i))
    else:
        print("*"*7)

运行结果:

   *
  **
 ***  
*******
   ***
   **
   *

实例3

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if (i != j) and (i != k) and (j != k):
                print(i,j,k)  

运行结果:

1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2  

实例4

随机数进行猜数游戏

import random
ran = random.randint(1,11)
while True:
    temp = input("请输入一个数:")
    if temp.isdigit():
        guess = int(temp)
        if guess == ran:
            print("对了")
            break
        elif guess > ran:
              print("大了")
              continue
        else:
            print("小了")
            continue
    else:
        print("请输入数字!")  

运行结果:

请输入一个数:ff
请输入数字!
请输入一个数:1
小了
请输入一个数:5
小了
请输入一个数:10
对了  

实例5

打印乘法表

方法一:for 循环

for i in range(1,10):
    for j in range(1,i+1):
        print("{}*{}={}\t".format(j,i,j*i),end="")
    print()  

方法二:while 循环

j =1
while j<=9:
    i =1
    while i<=j:
        print("%dx%d=%d"%(i,j,i*j),end="\t")
        i+=1
    print()
    j+=1

运行结果:

1*1=1
1*2=2	2*2=4
1*3=3	2*3=6	 3*3=9
1*4=4	2*4=8	 3*4=12	4*4=16
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81