当前位置: 首页 > news >正文

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循环语法

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

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

执行结果:

二、循环的使用 

2.1、循环猜年龄

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

age = 38
for i in range(3):
    guess = int(input("猜测的年龄:"))
    if (guess>age):
        print("猜大了")
    elif (guess<age):
        print("猜小了")
    else:
        print("猜对了")

2.2、打印奇偶数

打印50-100间的奇数

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

 打印偶数

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

 2.3、循环嵌套

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

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

 三、break & continue

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

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

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

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

3.1、continue

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

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

 3.2、break

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

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

 四、打印三角形

打印这样的三角形

*

**

***

****

*****

****

***

**

*

#一种方法
for i in range(1,6):
    print("*" * i)
for i in range(4,0,-1):
    print("*" * i)
#第二种方法
n=10
for i in rang(n):
    if i<5:
        print(i*"*")
    else:
        print((n-i)*"*")

五、while循环

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

5.1、while语法

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

5.2、死循环

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

5.3、循环10次

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

5.4、python写99乘法表

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

5.5、用while实现循环猜年龄

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

guess_age = 30
guess_num=0
while True:
    guess_num += 1
    if guess_num<=3:
        guess = int(input("请输入猜的数字:"))
        if guess < guess_age:
            print("数字猜小了")
        elif guess > guess_age:
            print("数字猜大了")
        else:
            print("恭喜猜对了")
    else:
            choice = str(input("错三次了,你还想继续猜吗?[yes/no]"))
            if choice == "":
                continue
            elif choice == "yes":
                print("游戏继续")
                guess_num = 0
            else:
                break

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

6.1、random模块

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

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

 6.2、string模块

import string
a = string.ascii_letters  #大小写全部字符
print(a)
s = string.ascii_uppercase #大写字符
print(s)
i = string.ascii_lowercase #小写字符
print(i)
j = string.punctuation #打印特殊字符
print(j)
g = string.digits #打印数字
print(g)

 6.3、京牌摇号小程序

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

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

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

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

相关文章:

  • 第9章Linux实操篇-组管理和权限管理
  • java计算机毕业设计基于安卓Android/微信小程序的产后康复APP
  • 计算机毕业设计ssm图书馆管理系统z3z90系统+程序+源码+lw+远程部署
  • java Python+Django的个人博客系统
  • 计算机毕业设计ssm图书馆自习室占座选座zg09h系统+程序+源码+lw+远程部署
  • 第10章Linux实操篇-定时任务调度
  • 06-linux下的软件包管理 RPM YUM
  • java Python+Django的工厂设备管理系统 Pycharm
  • java 基于springboot+vue的居民社区健康管理平台
  • 计算机组成原理学习笔记:计算机的发展历程
  • java毕业设计小区停车场管理系统mybatis+源码+调试部署+系统+数据库+lw
  • java基于springboot+vue的旅游博客旅游经验分享系统
  • React Spring实战之API以及animated 组件的运用
  • [JavaEE系列] Thread类的基本用法
  • Allegro Design Entry HDL(OrCAD Capture HDL)窗口管理菜单详细介绍
  • 【Leetcode】104. 二叉树的最大深度
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Android框架之Volley
  • co模块的前端实现
  • node入门
  • scrapy学习之路4(itemloder的使用)
  • Vue.js 移动端适配之 vw 解决方案
  • WebSocket使用
  • 基于HAProxy的高性能缓存服务器nuster
  • 如何胜任知名企业的商业数据分析师?
  • 小李飞刀:SQL题目刷起来!
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 字符串匹配基础上
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #if和#ifdef区别
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (三) diretfbrc详解
  • (十五)使用Nexus创建Maven私服
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)可以带来幸福的一本书
  • (转)详解PHP处理密码的几种方式
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net 发送邮件
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .net经典笔试题
  • .net中的Queue和Stack
  • @Autowired自动装配
  • @ModelAttribute使用详解
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [BUUCTF]-Reverse:reverse3解析