【JS逆向课件:第四课:流程控制】

流程控制

条件判断

  • 顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。

  • 单分支语句

    • 语法:

    • if 表达式:代码块
      
    • 说明:

      1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过bool获取一个true或者false的布尔值

      2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。

在这里插入图片描述

  • 双分支语句

    • 双分支语句顾名思义,二条分支二选一执行!语法格式:

    • if 表达式:代码块 1
      else:代码块 2
    • 在这里插入图片描述

#if(如果)-else(否则)
#场景:如果明天下雨,我们就去钓鱼,否则就在家睡觉
# if 明天下雨---条件:
#     钓鱼
# else:
#     回家睡觉num = int(input('enter a num:'))
if num > 10:print('num大于10')
else:print('num小于等于10')
  • 多分支语句

    • 多分支即从比双分支更多的分支选择一支执行。语法格式:

    • if 表达式 1:代码块 1
      elif 表达式 2:代码块 2
      elif 表达式 3:代码块 3
      ...# 其它elif语句
      else:代码块 n
      
    • 在这里插入图片描述

    • 案例:猜数字游戏

    • num = 9
      gus = input('enter a num:')
      gus = int(gus)
      if gus > 9:print('您猜的数字大了')
      elif gus == 9:print('您猜对了')
      else:print('您猜的数字小了')
      
循环控制语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。

Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。

while循环
  • 语法:

  • while 表达式:循环体
    
  • 在这里插入图片描述

  • 案例:循环打印十遍"hello world"

    i = 0
    while i < 10: #while关键字后面的代码是条件#下面两行代码:循环体(用来被重复执行)print('i love you!')i = i + 1#执行步骤:1.判断条件是否成立,如果条件成立  2.执行循环体  3.判断条件  4.执行循环体....n.条件不成立,结束循环
  • 案例:求解1-10累加和

  • 自己设计实现一下
    
for循环
  • 语法格式

  • for 迭代变量 in 字符串|列表|元组|字典|集合:代码块
    
  • 格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

  • for i in "hello world":print(i)for name in ["张三",'李四',"王五"]:print(name)for i in range(10): # range函数print(i)
    
死循环
  • 永远都不会结束的循环。
  • 但有我们是会需要无限循环。例如Web服务器响应客户端的实时请求。
循环嵌套
  • f判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。
退出循环

如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。

  • break

    • 通常情况下的循环要么执行出错,要么死循环,要么就只能老老实实等它把所有的元素循环一遍才能退出。如果想在循环过程中退出循环,怎么办?用break语句!
    • break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。
  • for i in [1,2,3,4,5]:if i == 3:break  #强制结束循环print('i love you')
    
  • Continue

    • 与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。
for i in [1,2,3,4,5]:if i == 3:continue  #结束当次循环,开始下一次新的循环print('i love you')

案例1:实现完整的猜数字游戏

  • 规则如下:

    • 可以不间断的进行猜数字游戏环节,找到猜对了,结束程序,猜不对,可以不断的进行游戏,并且需要提示用户猜打了还是猜小了。
    • 拓展功能实现:
      • 1.最后需要统计出,用户猜了多少次才猜对。
      • 2.每一个用户的初始分数为100,每猜错一次扣5分,最后程序结束,统计用户的得分
  • '''规则如下:- 可以不间断的进行猜数字游戏环节,找到猜对了,结束程序,猜不对,可以不断的进行游戏,并且需要提示用户猜打了还是猜小了。
    - 拓展功能实现:- 1.最后需要统计出,用户猜了多少次才猜对。- 2.每一个用户的初始分数为100,每猜错一次扣5分,最后程序结束,统计用户的得分
    '''
    score = 100 #用户初始的分值
    count = 0 #用来记录猜的次数
    #写出大致的框架,然后补充细节
    guess_num = 15  #提供了一个让用户猜的数字
    #让用户去猜(实现和用户进行交互)
    #input就是一个工具:获取用户从键盘上录入数据
    while 1: #死循环:没有结束的循环count += 1 #count = count + 1,使得猜的次数增加一个1num = input('enter you guess num:')num = int(num) #类型转换,将字符串的num转成数据类型的num#判断:guess_num和num是否一样if guess_num == num:#猜对了print('猜对了,您一共猜的次数为:',count)print('最终得分为:',score)break #结束循环elif guess_num < num:#猜大了print('猜大了')score -= 5else:#猜小了print('猜小了') #至此一局游戏结束score -= 5

案例2:算法实现

  • 规则如下:有三个变量a,b,c,其值均为自然数,其中a2+b2=c2且a+b+c=1000,求出满足要求a,b,c的所有组合。

  • for a in range(1001): #a的取值就是0-1000for b in range(1001):#b的取值就是0-1000c = 1000 - a - b #得到了c的取值if a + b + c == 1000 and a**2 + b**2 == c**2:print(a,b,c)
    

案例3:算法实现

  • 找寻出列表中存储元素的最大值,且将其移动到列表最后的位置

  • alist = [2,8,61,7,6]
    #如何找寻出列表中最大元素的值?需要两两元素比较
    for i in range(len(alist)-1):#range(4)==>[0,1,2,3]if alist[i] > alist[i+1]:#两个元素交换位置alist[i],alist[i+1] = alist[i+1],alist[i]
    print(alist)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3249831.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

[Maven] 打包编译本地Jar包报错的几种解决办法

目录 方式1&#xff1a;通过scope指定 方式2&#xff1a;通过新建lib 方式3&#xff1a;通过build节点打包依赖​​​​​​​ 方式4&#xff1a;安装Jar包到本地 方式5&#xff1a;发布到远程私有仓库 方式6&#xff1a;删除_remote.repositories 方式7&#xff1a;打包…

TCP三次握手与四次挥手详解

1.什么是TCP TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的通信协议&#xff0c;属于互联网协议族&#xff08;TCP/IP&#xff09;的一部分。TCP 提供可靠的、顺序的、无差错的数据传输服务&…

element UI :el-table横向列内容超出宽度,滚动条不显示问题

是否能解决你问题的前提 **看到这篇文章的解决问题的方案之前&#xff0c;请先回忆你是否在项目中的全局样式或者私有组件中去单独设置过滚动条样式。如果有 请继续往下看&#xff1a;**单独设置过滚动条样式代码实例&#xff1a; ::-webkit-scrollbar {/*滚动条整体样式*/wi…

React@16.x(62)Redux@4.x(11)- 中间件2 - redux-thunk

目录 1&#xff0c;介绍举例 2&#xff0c;原理和实现实现 3&#xff0c;注意点 1&#xff0c;介绍 一般情况下&#xff0c;action 是一个平面对象&#xff0c;并会通过纯函数来创建。 export const createAddUserAction (user) > ({type: ADD_USER,payload: user, });这…

ExoPlayer架构详解与源码分析(15)——Renderer

系列文章目录 ExoPlayer架构详解与源码分析&#xff08;1&#xff09;——前言 ExoPlayer架构详解与源码分析&#xff08;2&#xff09;——Player ExoPlayer架构详解与源码分析&#xff08;3&#xff09;——Timeline ExoPlayer架构详解与源码分析&#xff08;4&#xff09;—…

git教程, 命令行版

前言 git就是代码版本管理系统&#xff0c;很简单的作用就是每一次commit之后&#xff0c;修改文件都是跟上一次commit的仓库文件做对比&#xff0c;也可以调出历史的文件查看某次commit修改了什么东西 0环境准备&#xff1a; 安装git, 百度一下&#xff0c;然后打开cmd&…

[word] word表格跨页断开实现教程 #职场发展#媒体

word表格跨页断开实现教程 选中整个word表格 单击鼠标右键&#xff0c;选择“表格属性”选项 切换至“行”标签&#xff0c;找到“允许跨页断行”选项 勾选上“允许跨页断行”&#xff0c;单击“确定”按钮&#xff0c;完成&#xff01; word表格跨页断开实现教程的下载地址&a…

【机器学习】--下采样原理及代码详解

下采样&#xff08;Downsampling&#xff09;是信号处理、图像处理和机器学习中的一个关键概念&#xff0c;主要通过减少数据点的数量来降低信号或图像的采样率 一、定义与原理 定义&#xff1a;下采样是指通过减少数据点的数量来降低信号或图像的采样率。在图像处理中&#…

【05】LLaMA-Factory微调大模型——初尝微调模型

上文【04】LLaMA-Factory微调大模型——数据准备介绍了如何准备指令监督微调数据&#xff0c;为后续的微调模型提供高质量、格式规范的数据支撑。本文将正式进入模型微调阶段&#xff0c;构建法律垂直应用大模型。 一、硬件依赖 LLaMA-Factory框架对硬件和软件的依赖可见以下…

270-VC709E 基于FMC接口的Virtex7 XC7VX690T PCIeX8 接口卡

一、板卡概述 本板卡基于Xilinx公司的FPGA XC7VX690T-FFG1761 芯片&#xff0c;支持PCIeX8、两组 64bit DDR3容量8GByte&#xff0c;HPC的FMC连接器&#xff0c;板卡支持各种FMC子卡扩展。软件支持windows&#xff0c;Linux操作系统。 二、功能和技术指标&#xff1a; 板卡功…

全网最适合入门的面向对象编程教程:20 类和对象的 Python 实现-组合关系的实现与 CSV 文件保存

全网最适合入门的面向对象编程教程&#xff1a;20 类和对象的 Python 实现-组合关系的实现与 CSV 文件保存 摘要&#xff1a; 本文主要介绍了在使用 Python 面向对象编程时&#xff0c;如何实现组合关系&#xff0c;同时对比了组合关系和继承关系的优缺点&#xff0c;并讲解了…

初阶数据结构的实现1 顺序表和链表

顺序表和链表 1.线性表1.1顺序表1.1.1静态顺序表&#xff08;不去实现&#xff09;1.1.2动态顺序表1.1.2.1 定义程序目标1.1.2.2 设计程序1.1.2.3编写代码1.1.2.3测试和调试代码 1.1.2 顺序表的问题与思考 1.2链表1.2.1链表的概念及结构1.2.1.1 定义程序目标1.2.1.2 设计程序1.…

Ai先行者工具与其他品牌大比拼!

AI先行者工具凭借其独特的技术优势和创新能力&#xff0c;成为了行业的焦点。那么&#xff0c;它究竟有哪些过人之处呢&#xff1f; AI先行者工具在算法优化上做了大量的工作。通过深度学习和自然语言处理技术&#xff0c;它能够更准确地理解和回应用户的需求&#xff0c;提供…

Haproy服务

目录 一.haproxy介绍 1.主要特点和功能 2.haproxy 调度算法 3.haproxy 与nginx 和lvs的区别 二.安装 haproxy 服务 1. yum安装 2.第三方rpm 安装 3.编译安装haproxy 三.配置文件详解 1.官方地址配置文件官方帮助文档 2.HAProxy 的配置文件haproxy.cfg由两大部分组成&…

linux中list的基本用法

内核链表 1 list_head 结构 为了使用链表机制&#xff0c;驱动程序需要包含<linux/types.h>头文件&#xff0c;该文件定义了如下结构体实现双向链&#xff1a; struct list_head {struct list_head *next, *prev; };2 链表的初始化 2.1 链表宏定义和初始化 可使用以…

如何在Mac下修改VSCode侧边栏字体大小

在日常使用VSCode&#xff08;Visual Studio Code&#xff09;进行开发时&#xff0c;我们有时需要对IDE&#xff08;集成开发环境&#xff09;的界面进行一些个性化的调整&#xff0c;以提升我们的开发体验。 比如&#xff0c;有些用户可能会觉得VSCode的侧边栏字体大小不符…

JavaDS —— 二叉树

树的基本概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 树形结构中&#xff0c;子树之间不能有…

健康问题查询找搜索引擎还是大模型

随着自然语言处理&#xff08;NLP&#xff09;的最新进展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为众多信息获取任务中的主要参与者。然而&#xff0c;传统网络搜索引擎&#xff08;SEs&#xff09;在回答用户提交的查询中的作用远未被取代。例如&#xf…

idea怎么配置gradle多个版本

1.背景 gradle版本很多,而且很多时候版本是不兼容的,我们希望拉取下来的代码就包含已经配置好的版本,而不是去配置本机的gradle版本..... 意思就是要实现项目A可以用6.X版本 项目B可以使用7.X版本 项目C可以用9.X版本..... 2.配置方式 步骤一:项目根路径下保留一个文件夹…

阿里云ACP云计算高级攻城狮通用知识

&#x1f525;概述 阿里云云计算高级工程师ACP认证是面向使用阿里云云计算产品的架构、开发、运维类人员的专业技术认证&#xff0c;主要考核考生利用阿里云云计算技术服务体系设计稳定、安全、高性能、易扩展、低成本的企业云计算架构的能力。 前提&#xff1a;在写适用人群…