• Python:for循环语句


    目录

    一、for循环语法

    二、循环的使用 

    2.1、循环猜年龄

    2.2、打印奇偶数

    2.3、循环嵌套

     三、break & continue

    3.1、continue

    3.2、break

     四、打印三角形

    五、while循环

    5.1、while语法

    5.2、死循环

    5.3、循环10次

    5.4、python写99乘法表

    5.5、用while实现循环猜年龄

     六、random和string模块(随机数)

    6.1、random模块

    6.2、string模块

    6.3、京牌摇号小程序


    一、for循环语法

    1. for i in range(10):
    2. print(i)

    上面代码会从0-9,共循环10次,这个range(10),其实是相当于产生一个从0-9的列表,每循环一次,就会把列表里的下一个元素取出来给临时变量i。

    执行结果:

    二、循环的使用 

    2.1、循环猜年龄

    需求:最多允许猜三次,猜对了就退出程序

    1. age = 38
    2. for i in range(3):
    3. guess = int(input("猜测的年龄:"))
    4. if (guess>age):
    5. print("猜大了")
    6. elif (guess
    7. print("猜小了")
    8. else:
    9. print("猜对了")

    2.2、打印奇偶数

    打印50-100间的奇数

    1. for i in range(50,100):
    2. if (i%2 == 1):
    3. print(i)

     打印偶数

    1. for i in range(50,100):
    2. if (i%2 == 0):
    3. print(i)

     2.3、循环嵌套

    这里写了一个不是很灵活的冒泡排序,本质也是使用嵌套循环去完成的

    1. number = [6,7,4,2,1,3,5]
    2. for i in range(5):
    3. for j in range(6):
    4. if (number[j] > number[j+1]):
    5. tmp=number[j]
    6. number[j]=number[j+1]
    7. number[j+1]=tmp
    8. print(number)

     三、break & continue

    我们这里写一个打印楼层的小程序

    需求:一栋楼有5层,每层2间房,要求把本楼所有的房间号都打印一遍。

    1. for i in range(1,6):
    2. for j in range(1,3):
    3. print(f"{i}层-{i}0{j}室")

     我们现在需求改一下,遇到第三层时,不打印任何房间号,其他层都打印

    3.1、continue

    continue的语法作用是,只要程序一遇到continue,本次循环就不继续了,直接进入下一次循环

    1. for i in range(1,6):
    2. for j in range(1,3):
    3. if i==3:
    4. continue
    5. print(f"{i}层-{i}0{j}室")

     3.2、break

    break的语法作用是,只要程序遇到break,就会结束当前这个循环,注意如果是多层嵌套循环,只结束当前这一层的循环。

    1. for i in range(1,6):
    2. for j in range(1,3):
    3. if i==3:
    4. continue #跳过第三层,从第四层开始
    5. if i==2 and j==2:
    6. break #当dao2层2室的时候直接退出二层循环。从三层开始走
    7. print(f"{i}层-{i}0{j}室")

     四、打印三角形

    打印这样的三角形

    *

    **

    ***

    ****

    *****

    ****

    ***

    **

    *

    1. #一种方法
    2. for i in range(1,6):
    3. print("*" * i)
    4. for i in range(4,0,-1):
    5. print("*" * i)
    6. #第二种方法
    7. n=10
    8. for i in rang(n):
    9. if i<5:
    10. print(i*"*")
    11. else:
    12. print((n-i)*"*")

    五、while循环

    与for必须指定循环多少次不一样的是,while循环的次数可以是不定的,只要条件满足就可以永远循环下去。

    5.1、while语法

    1. while 条件: #只要条件为真,就不断循环
    2. print(xxxxx)

    5.2、死循环

    1. count = 0
    2. while True:
    3. print(f"第{count}次循环")
    4. count +=1

    5.3、循环10次

    1. count = 0
    2. while count < 10:
    3. print(f"第{count}次循环....")
    4. count+=1

    5.4、python写99乘法表

    1. for i in range(1,10):
    2. print()
    3. for j in range(1,i+1):
    4. print(f"{i}*{j}={i*j}",end=" ")

    5.5、用while实现循环猜年龄

    需求:允许用户猜三次,若还不对,钙塑它,你真笨,还想继续猜吗?如果用户选择yes,就让他继续,如果选择no就退出

    1. guess_age = 30
    2. guess_num=0
    3. while True:
    4. guess_num += 1
    5. if guess_num<=3:
    6. guess = int(input("请输入猜的数字:"))
    7. if guess < guess_age:
    8. print("数字猜小了")
    9. elif guess > guess_age:
    10. print("数字猜大了")
    11. else:
    12. print("恭喜猜对了")
    13. else:
    14. choice = str(input("错三次了,你还想继续猜吗?[yes/no]"))
    15. if choice == "":
    16. continue
    17. elif choice == "yes":
    18. print("游戏继续")
    19. guess_num = 0
    20. else:
    21. break

     六、random和string模块(随机数)

    6.1、random模块

    可以残生指定范围内的随机数,字符串等

    1. import random #导入random模块
    2. a = random.choice("abcdefghigk") #参数也可以是一个列表
    3. print(a)
    4. s = "asdfghjklzxcv"
    5. s = random.sample(s,5) #从数据源s中随机取出5个值
    6. print(s)
    7. i = random.randint(1,100) #打印一个随机数
    8. print(i)

     6.2、string模块

    1. import string
    2. a = string.ascii_letters #大小写全部字符
    3. print(a)
    4. s = string.ascii_uppercase #大写字符
    5. print(s)
    6. i = string.ascii_lowercase #小写字符
    7. print(i)
    8. j = string.punctuation #打印特殊字符
    9. print(j)
    10. g = string.digits #打印数字
    11. print(g)

     6.3、京牌摇号小程序

    需求:允许用户最多选3次

            每次放出20个车牌公用户选择

            3车牌[A-Z]-[xxxxx],可以是数字和字母在组合

    1. import random
    2. import string
    3. num_lsit = []
    4. tmp = (string.digits+string.ascii_uppercase)
    5. print(random.sample(tmp,5))
    6. count = 3
    7. while count > 0:
    8. count-=1
    9. num_lsit = []
    10. for i in range(20):
    11. car_code = random.choice(string.ascii_uppercase)
    12. car_num = f"京{car_code}-{''.join(random.sample(tmp,5))}"
    13. num_lsit.append(car_num)
    14. print(i,car_num)
    15. choice = input("choice:").strip()
    16. if choice in num_lsit:
    17. exit(f"恭喜你选购成功,您的车牌为{choice}")
    18. else:
    19. print(f"未选中,还有{count}次机会")

     6.4、年会抽奖程序

    需求:张三公司有300员工,年会抽奖,奖项如下

    一等奖3名,泰国五日游

    二等奖6名,iphon手机

    三等奖,小玩具一个

    每个员工只能限一次。

    1. import random
    2. import string
    3. a = []
    4. for j in range(1,301):
    5. a.append(j) #建立一个员工的地址池
    6. ###########抽一等奖##############
    7. print("抽一等奖,三等奖是泰国五日游")
    8. print("得奖员工:",end="")
    9. for yi in range(3):
    10. tmp = random.choice(a) #随机去一个员工
    11. print(tmp,end=" ")
    12. a.remove(tmp) #因为每个员工只能拿一个奖,所以删除员工池以得奖的用户
    13. print("") #另起一行
    14. ###########抽二等奖###############
    15. print("抽二等奖,二等奖是一部iphon手机")
    16. print("得奖员工:",end="")
    17. for er in range(7):
    18. tmp = random.choice(a)
    19. print(tmp,end=" ")
    20. a.remove(tmp)
    21. print("")
    22. ############抽三等奖##############
    23. print("抽三等奖,三等奖是小玩具一个")
    24. print("得奖员工:",end="")
    25. for san in range(11):
    26. tmp=random.choice(a)
    27. print(tmp,end=" ")
    28. a.remove(tmp)

     

  • 相关阅读:
    从Linux的安装到HDFS上传再到MapReduce的词频统计
    windows下最简单实用的拼接合并视频方法
    odoo xmlrpc的用法及实例(二)
    怎样防止缓存击穿?
    利用C++11 实现:迷你线程池+CAS自旋锁
    NR-ARFCN和信道栅格、同步栅格和GSCN
    安卓玩机-----给app加注册码 app加弹窗 云注入弹窗
    winform 多个子项目以及调用方法 (类库)
    Linux编辑器-vim使用
    Netty深入浅出Java网络编程学习笔记(三) 优化篇
  • 原文地址:https://blog.csdn.net/qq_57377057/article/details/126611356