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

Python 基础教程【2】:条件语句和循环语句

在这里插入图片描述

本文已收录于专栏
🌻
《Python 基础》

文章目录

  • 1、流程控制语句
    • 1.1 顺序语句
    • 1.2 条件语句
      • 1.2.1 if语句注意事项
      • 1.2.2 三元运算符
      • 1.2.3 自动类型转换
    • 1.3 循环语句
      • 1.3.1 while 循环
      • 1.3.2 for-in 循环
      • 1.3.3 for...else 循环
      • 1.3.4 break 和 continue 的区别
  • 2、实践——猜数字游戏

1、流程控制语句

1.1 顺序语句

默认情况下,Python的代码执行顺序是按照从上而下的顺序,依次执行的

1.2 条件语句

条件语句也叫做 “分支语句”
使用 if else 关键字表示条件语句

'''
if语句的格式:
if 条件:条件成立要执行的语句if 条件:条件成立要执行的语句
else:条件不成立要执行的语句if 条件1:条件1成立要执行的语句
elif 条件2:条件2成立要执行的语句
else:条件1,2不成立要执行的语句
'''

1.2.1 if语句注意事项

Python中的条件语句写法,和很多编程语言不太一样

  • if 后面的条件表达式,没有(),而是使用 : 结尾
  • if/else 中条件后要执行的“语句块”,使用缩进(通常是4个空格或者一个tab)来表示, 而不是{}
  • 对于多条件分支,不是写作 else if,而是 elif(合体了)

1.2.2 三元运算符

变量 = 值1 if 条件 else 值2

当条件成立时,把值1赋值给变量,条件不成立时,把值2赋值给变量

1.2.3 自动类型转换

if 语句需要一个判断条件,这个判断条件的结果需要一个布尔值,如果此时输入的判断条件不是一个布尔值,在代码执行的过程中,会将这个值 自动转换 成为一个布尔值

在 Python 中,转换为 布尔值时,只有 0""''None(){}[] 会被转换成 False ,其他都会转换成 True

1.3 循环语句

循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环

1.3.1 while 循环

条件为真,则执行循环体代码
条件为假,则结束循环

'''
while 条件:要循环执行的代码
'''

练习:

打印 1-10 的数字

i = 1
while i <= 10:print(i)i = i + 1

打印 1-50 之间能被3整除的数字

n = 1
while n <= 50:if n % 3 == 0:print(n)n += 1

1.3.2 for-in 循环

for 循环变量 in 可迭代对象循环体

注意:

  • Python 的 for 和其他语言不同,没有 “初始化语句”,“循环条件判定语句”,“循环变量更新语句”,而是更加简单
  • 所谓 “可迭代对象”,指的是内部包含多个元素,能一个一个把元素取出来的特殊变量

练习:

打印1~10

for i in range(1, 11):print(i)
  • 使用 range 函数,能够生成一个可迭代对象,生成的范围是[1,11),也就是[1,10]
  • rang 函数还提供了 第三个参数表示 “步长”,默认的步长值是 1
  • rang(n) :默认从0开始取值到n-1结束

打印 2、4、6、8、10

for i in range(2, 12, 2):print(i)

打印10~1

for i in range(10, 0, -1):print(i)

1.3.3 for…else 循环

'''
for i in range(n):循环体
else:如果上面的for循环 0~n-1 没有出现中断(break),执行else
'''

1.3.4 break 和 continue 的区别

break: 终止它所在的那个循环
continue: 结束本次循环,进入下一轮循环

2、实践——猜数字游戏

import randomanswer = random.randint(1, 100)
counter = 0
while True:counter += 1number = int(input('请输入: '))if number < answer:print('大一点')elif number > answer:print('小一点')else:print('恭喜你猜对了!')break
print('你总共猜了%d次' % counter)
if counter > 7:print('你要加油嗷~')

代码说明:

使用 random 函数中的 randint 方法 随机生成一个1~100的整数(包含1和100)

使用一个 while 循环, 支持用户多次从键盘输入数字,使用 if…elif…else 分支语句, 对用户输入的数字与程序提前随机生成的数字进行大小比较

使用 counter 这个变量记录用户输入次数

相关文章:

Python 基础教程【2】:条件语句和循环语句

本文已收录于专栏&#x1f33b;《Python 基础》文章目录1、流程控制语句1.1 顺序语句1.2 条件语句1.2.1 if语句注意事项1.2.2 三元运算符1.2.3 自动类型转换1.3 循环语句1.3.1 while 循环1.3.2 for-in 循环1.3.3 for...else 循环1.3.4 break 和 continue 的区别2、实践——猜数…...

【React避坑指南】useEffect 依赖引用类型

前言 如果你是一个入行不久的前端开发&#xff0c;面试中多半会遇到一个问题&#xff1a; 你认为使用React要注意些什么&#xff1f; 这个问题意在考察你对React的使用深度&#xff0c;因为沉浸式地写过一个项目就会发现&#xff0c;不同于一些替你做决定的框架&#xff0c;“…...

Android binder通信实现进程间通信

一.binder通信原理Binder 是 Android 系统中用于跨进程通信的一种机制&#xff0c;它允许一个进程中的组件与另一个进程中的组件进行通信&#xff0c;从而实现进程间通信 (IPC)。Binder 机制是基于 Linux 内核提供的进程间通信机制 (IPC) 实现的。在 Binder 机制中&#xff0c;…...

2023年BeijngCrypt勒索病毒家族最新变种之.halo勒索病毒

目录 前言&#xff1a;简介 一、什么是.halo勒索病毒&#xff1f; 二、.halo勒索病毒是如何传播感染的&#xff1f; 三、感染.halo后缀勒索病毒建议立即做以下几件事情 四、中了.halo后缀的勒索病毒文件怎么恢复&#xff1f; 五、加密数据恢复情况 六、系统安全防护措施建…...

【LeetCode】BM1 反转链表、NC21 链表内指定区间反转

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 BM1 反转链表 描述&#xff1a; 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;…...

拼多多24届暑期实习真题

1. 题目描述&#xff1a; 多多开了一家自助餐厅&#xff0c;为了更好地管理库存&#xff0c;多多君每天需要对之前的课流量数据进行分析&#xff0c;并根据客流量的平均数和中位数来制定合理的备货策略。 2. 输入输出描述&#xff1a; 输入描述&#xff1a; 输入共两行&#x…...

JS高级知识总结

文章目录1. this指向问题2. 对象进阶2.1 对象的定义和使用2.2 对象访问器2.2.1 Getter2.2.2 Setter2.3 对象构造器2.4 对象原型2.4.1 prototype属性2.4.2 \_\_proto\_\_ 属性2.4.3 constructor属性2.4.4 原型链2.5 Object对象2.5.1 管理对象2.5.2 保护对象3. 函数进阶3.1 函数的…...

Jenkins+Docker+Maven+gitlab实现自动构建、远程发布

前言 一个项目完整的生命周期是从开发的coding阶段和coding阶段的质量测试&#xff0c;再到多次发布投入使用。目前大部分的测试阶段并不是从coding结束后开始的&#xff0c;而是和coding同步进行的。可能今天早上coding完成一个功能&#xff0c;下午就要投入测试。在这期间&a…...

centos7克隆虚拟机完成后的的一些配置介绍

系列文章目录 centos7配置静态网络常见问题归纳_张小鱼༒的博客-CSDN博客 文章目录 目录 系列文章目录 前言 一、配置Hadoop要下载的压缩包 1、下载对应版本的Hadoop压缩包 2、我们如何查看自己电脑的端口号 3、下载jdk对应的版本 二、虚拟机centos7克隆虚拟机完成后的一些基本…...

C语言/动态内存管理函数

C程序运行时&#xff0c;内存将被划分为三个区域&#xff0c;而动态开辟的内存区间位于堆区。 文章目录 前言 一、内存划分 二、malloc函数 三、calloc函数 四、realloc函数 五、free函数 总结 前言 在使用C语言编写程序时&#xff0c;使用动态内存是不可避免的&#x…...

华为OD机试题,用 Java 解【任务调度】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不要…...

河南农业大学2023春蓝桥杯赛前训练第一场

A 滑板上楼梯 贪心 要求最少次数&#xff0c;尽量多跳三阶的&#xff0c;不能连续跳三阶&#xff0c;三阶后面一定要跟着一个一阶&#xff0c;相当于直接跳四阶 每次跳四阶都是两步&#xff08;3、1&#xff09;&#xff0c;如果 % 4 之后&#xff0c;正好剩下 3 &#xff0c…...

docker-dockerfile

1.常用保留字指令 FROM : 基础镜像MAINTAINER: 维护者姓名和邮箱RUN : Run ["可执行文件"&#xff0c;参数1]&#xff1b; Run [shell命令]EXPOSE: 暴露出的端口号WORKDIR: 登录后的位置USER: 执行用户,默认是rootENV: 构建过程的环境变量ADD: 将宿主机的文件拷贝到…...

【JavaEE】浅识进程

一、什么是进程1.1 操作系统学习进程之前首先要了解我们的操作系统&#xff08;OS&#xff09;&#xff0c;我们的操作系统实际上也是一款软件&#xff0c;属于系统软件的范畴&#xff0c;操作系统早期采用命令提示框与用户交互&#xff0c;我们启动某个软件&#xff0c;打开某…...

Java_Spring:1. Spring 概述

目录 1 spring 是什么 2 Spring 的发展历程 3 spring 的优势 4 spring 的体系结构 1 spring 是什么 Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架&#xff0c;以 IoC&#xff08;Inverse Of Control&#xff1a;反转控制&#xff09;和 AOP&#xff08;Aspec…...

使用Maven实现第一个Servlet程序

目录 前言&#xff1a; Maven 什么是Maven 创建Maven项目 Mevan目录介绍 Servlet程序 引入Servlet依赖 创建目录结构 编写代码 打包程序 部署程序 验证程序 idea集成Tomcat 下载Tomcat插件 配置Tomcat的路径 Smart Tomcat工作原理 小结&#xff1a; 前言&#…...

【MySQL】MySQL的优化(一)

目录 查看SQL执行频率 定位低效率执行SQL 定位低效率执行SQL-慢查询日志 定位低效率执行SQL-show processlist 查看SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以查看服务器状态信息。通 过查看状态信息可以查看对当…...

win kubernetes dashbord部署springboot服务

文章目录前言一、新建springboot工程二、制作镜像1.编写dockerfile2.使用阿里云镜像仓库3.使用dashbord部署服务总结前言 使用win版docker desktop安装的k8s&#xff0c;kubenetes dashbord。 一、新建springboot工程 就是简单一个接口。没什么说的 二、制作镜像 1.编写dock…...

Linux之进程终止

本节目录1.进程终止2.exit与_exit函数1.进程终止 进程终止时&#xff0c;操作系统做了什么&#xff1f; 释放进程中申请的相关内核数据结构和对应的数据和代码。本质就是释放系统资源。 进程终止的常见方式 a.代码跑完&#xff0c;结果正确 b.代码跑完&#xff0c;结果不正确…...

全网独家首发|极致版YOLOv7改进大提升(推荐)网络配置文件仅24层!更清晰更方便更快的改进YOLOv7网络模型

有不少小伙伴和我交流YOLO改进的时候&#xff0c;都说YOLOv7的网络配置文件长达104层&#xff0c;改起来很费力&#xff0c;数层数都要数很久&#xff0c;还很容易出错&#xff0c;而且基于YOLOv5代码架构&#xff0c;Debug起来也确实比较费时&#xff0c;所以博主对YOLOv7网络…...

实测46MB/s!基于FPGA与CY7C68013A的USB 2.0高速数据传输项目实战(附Streamer速率测试方法)

FPGA与CY7C68013A实现USB 2.0高速传输的工程实践 当我们需要在嵌入式系统中实现高速数据传输时&#xff0c;USB 2.0接口因其广泛兼容性和480Mbps的理论带宽成为首选。本文将详细介绍如何基于Siga-S16 FPGA开发板和CY7C68013A芯片构建一个实测传输速率可达46MB/s的高速数据通道…...

基于OpenClaw协议的轻量级AI代理网关MiniClaw实战指南

1. 项目概述&#xff1a;一个轻量级的AI代理网关如果你正在开发一个基于OpenClaw协议的AI应用客户端&#xff0c;或者想快速搭建一个能与现有OpenClaw生态工具&#xff08;比如各种仪表盘、集成插件&#xff09;兼容的独立AI代理服务&#xff0c;那么你很可能需要一个能完整实现…...

基于Ollama构建本地大模型智能体:从原理到工程实践

1. 项目概述&#xff1a;当本地大模型遇上智能体框架最近在折腾本地大模型应用开发的朋友&#xff0c;估计都绕不开一个核心问题&#xff1a;如何让一个“聪明”的模型&#xff0c;不仅能回答问题&#xff0c;还能像真正的助手一样&#xff0c;自主调用工具、处理复杂任务&…...

智能体元观察者技能:提升AI自主决策的监控与反思能力

1. 项目概述&#xff1a;一个面向智能体的“元观察者”技能最近在折腾智能体&#xff08;Agent&#xff09;开发&#xff0c;特别是那些需要长期运行、具备一定自主决策能力的应用时&#xff0c;发现一个普遍痛点&#xff1a;智能体在执行任务时&#xff0c;往往“埋头苦干”&a…...

孤舟笔记 IO 与网络编程篇五 网络编程你真的懂吗?从Socket到TCP连接全解析

文章目录一、先说结论&#xff1a;网络编程核心事实二、TCP 编程&#xff1a;三次握手的 Socket 视角三、UDP 编程&#xff1a;无连接的数据报四、服务端线程模型演进模型一&#xff1a;一连接一线程&#xff08;最原始&#xff09;模型二&#xff1a;线程池&#xff08;改进&a…...

WinDirStat插件开发终极指南:构建自定义磁盘管理功能

WinDirStat插件开发终极指南&#xff1a;构建自定义磁盘管理功能 【免费下载链接】windirstat WinDirStat is a disk usage statistics viewer and cleanup tool for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/wi/windirstat 作为Windows平台最知名的…...

AI编码助手如何重塑开发体验:从工具到伙伴的范式转变

1. 项目概述&#xff1a;当AI编码助手遇上“氛围感”最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“awesome-ai-vibe-coding”。初看这个标题&#xff0c;可能会有点摸不着头脑。“Awesome”系列我们见多了&#xff0c;是各种优质资源的集合&#xff1b;“AI Coding”也…...

别再让代码异味溜走:手把手教你用SonarQube为团队搭建代码质量守护神

别再让代码异味溜走&#xff1a;手把手教你用SonarQube为团队搭建代码质量守护神 当项目规模从几千行扩展到几十万行代码时&#xff0c;技术债务就像房间里的大象——人人都知道存在&#xff0c;却少有人主动清理。去年我们团队在重构一个核心模块时&#xff0c;发现其中隐藏的…...

gogoclaw:基于文件与技能的自主智能体运行时设计与实践

1. 项目概述&#xff1a;一个以文件为基石的自主智能体运行时如果你和我一样&#xff0c;对市面上那些“黑盒”式的AI智能体框架感到厌倦&#xff0c;总觉得它们把太多逻辑和状态藏在运行时深处&#xff0c;调试和扩展起来像在拆盲盒&#xff0c;那么gogoclaw这个项目可能会让你…...

瑞芯微刷机工具(RKDevTool)/瑞芯微刷机驱动(DriverAssitant)_多个版本下载及教程分享

瑞芯微刷机工具(RKDevTool)&#xff0f;瑞芯微刷机驱动(DriverAssitant)_多个版本下载及教程分享 适合&#xff08;处理器是RK字母开头的芯片&#xff09;&#xff0c;比如RK3128、RK3188、RK3229、RK3288、RK3368、RK3328、RK3399、RK3528、RK3568、RK3566、RK3588等等瑞芯微芯…...