无论是传统编程场景还是当下火爆的人工智能应用场景,循环的应用都是必不可少的,上一篇文章中阐述了如何使用for循环来进行编程,这篇文章将会由一个小朋友经常听的故事来讲Python编程中的while循环。

大灰狼来敲门了

小兔子乖乖的故事大家都听过,依稀的记得是大灰狼来敲门,小兔子不开门,妈妈回来了,小兔子就把门儿开开了。那么我们用程序来如何来描述这个过程呢?

在开始写代码之前,我们首先来看一下while循环的基本语法:

while 判断条件是否成立,如果成立,那么开始执行循环:
执行循环中的具体代码

从语法中,我们可以看到,首先我们要明确判断条件,根据故事中描述的场景,我们的判断条件就是妈妈回来了,小兔子才会开门,否则小兔子是不会开门的。

首先我们要学习一个input函数,这个函数的意思就是要让用户在终端中输入一段文字,那么我们该如何使用呢?

input("你是谁?")

运行这样的代码,我们就能够获取到用户输入的名字

运行示例

为了下边能够根据用户输入的名字来进行判断,我们将会采用下边的这种写法,我们使用name变量来接住用户输入的内容,也就是把用户输入的内容赋值给变量name

name = input("你是谁?")

下面我们继续梳理逻辑,当名字输入不是妈妈时,门是关着的,也就是说循环会继续,只有当名字是妈妈时,门才会开,循环结束,代码运行停止。按照这套逻辑我们来继续书写代码

# 首先我们声明一个变量名字,让用户先输入一次
name = input("你是谁?")
# 判断名字不等妈妈的时候我们继续循环
while name!="妈妈":
print("门关着,妈妈没回来")
# 这里让用户继续输入名字是谁
name = input("你是谁?")
# nama等于了"妈妈",循环结束
print("门开了,妈妈回来了")

由于我们的是在命令行输入的,所以代码必须分段来进行输入,要不然不行,下边这段代码中,我第一次让name等于了一个空的字符串,其实是一样的,大家在练习的时候都可以试一下。

由于我们现在是在命令行中输入的代码,所以只能分段输入

如果上边的逻辑觉得有那么一点绕,那么我们再看下一种写法,用一种正向的判断写法

# 首先我们把循环判断一直写成真的,也就是通常所说的死循环
while True:
# 这里让用户输入一个名字
name = input("你是谁?")
# 判断用户输入的名字是否等于妈妈
if name == "妈妈":
# 打印一下我们想要的结果
print("妈妈回来了,门开了")
# break的意思就是跳出循环
break
print("妈妈没回来,不开门")

这就是while循环的用法,很简单,但是很常用

大周的技术屋,力争一天一个技术点,带你领略编程的乐趣。

一个小故事,玩转Python-while循环的更多相关文章

  1. 通过一个小游戏开始接触Python!

    之前就一直嚷嚷着要找视频看学习Python,可是一直拖到今晚才开始....好好加油吧骚年,坚持不一定就能有好的结果,但是不坚持就一定是不好的!! 看着视频学习1: 首先,打开IDLE,在IDLE中新建 ...

  2. 通过一个小故事,理解 HTTPS 工作原理

    本文摘录参考: 细说 CA 和证书(主要讲解 CA 的使用) 数字签名是什么?(简单理解原理) 深入浅出 HTTPS 工作原理(深入理解原理) HTTP 协议由于是明文传送,所以存在三大风险: 1.被 ...

  3. 关于H标签 DL DT DD标签的一个小故事

    看了一篇关于SEO论坛的论文,大概故事内容是:一个专业的销售公司,里面SEO  技术多多,可就是销售网站的SEO的情况极为恼火.这天,老板又招到了一个SEO,直接聘为SEO主管全权负责网站的SEO,并 ...

  4. Pygame:编写一个小游戏 标签: pythonpygame游戏 2017-06-20 15:06 103人阅读 评论(0)

    大学最后的考试终于结束了,迎来了暑假和大四的漫长的"自由"假期.当然要自己好好"玩玩"了. 我最近在学习Python,本意是在机器学习深度学习上使用Python ...

  5. 小故事理解TCP/IP连接时的三次握手

    在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接,示意图如下: 下面通过一个小故事简单理解一下这三次握手的具体含义: 一天,快递员小客(客户端)准备去小服(服务器)家去送快递(准备与服务 ...

  6. 从壹开始 [ Design Pattern ] 之三 ║ 工厂模式 与 小故事

    编者按: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使得一个类的实例化延迟到子类. 工厂模式,是迄今为止,使用最多,最广泛的设计模式之一,它的身影几乎出现在每一个框架和个人代码之中 ...

  7. vue小故事之父子(上下级)通信之父传子props

    vue小故事之父子(上下级)通信之父传子props vue 父子(上下级)通信 props  或许你对父子通信有点迷糊,为什么这样那样父子之间就可以通信了,以下通过一个小故事来进行解说,故事模型或许有 ...

  8. POJ-3262 贪心的一个小技巧

    Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3204   Accepted: ...

  9. Python 工匠:一个关于模块的小故事

    前言 模块(Module)是我们用来组织 Python 代码的基本单位.很多功能强大的复杂站点,都由成百上千个独立模块共同组成. 虽然模块有着不可替代的用处,但它有时也会给我们带来麻烦.比如,当你接手 ...

随机推荐

  1. python excel基本操作

    #coding=utf-8 ''' excel基本操作 ''' from openpyxl import Workbook wb=Workbook() ws1=wb.create_sheet('sh1 ...

  2. intelij idea 常用插件下载

    本文,给大家推荐几款我私藏已久的,自己经常使用的,可以提升代码效率的插件.IDEA插件简介常见的IDEA插件主要有如下几类:常用工具支持Java日常开发需要接触到很多常用的工具,为了便于使用,很多工具 ...

  3. 关于webpack require.context() 的那点事

    先说 webpack里面有这么一招:使用require.context()方法来自动导入模块 官方文档有点深奥,老衲百度下拿了一段来直接使用,但是想看下它是如何运行的 本篇这里不会有太深入的研究,只是 ...

  4. Java8-Lambda-No.03

    import java.util.Comparator; import java.util.Objects; import java.util.UUID; import java.util.concu ...

  5. MySQL中的连接、实例、会话、数据库、线程之间的关系

    MySQL中的实例.数据库关系简介 1.MySQL是单进程多线程(而Oracle等是多进程),也就是说MySQL实例在系 统上表现就是一个服务进程,即进程(通过多种方法可以创建多实例,再安装一个端口号 ...

  6. 【51nod 1340】地铁环线

    题目 有一个地铁环线,环线中有N个站台,标号为0,1,2,...,N-1.这个环线是单行线,一共由N条有向边构成,即从0到1,1到2,..k到k+1,...,N-2到N-1,N-1到0各有一条边.定义 ...

  7. SIGAI深度学习第三集 人工神经网络2

    讲授神经网络的理论解释.实现细节包括输入与输出值的设定.网络规模.激活函数.损失函数.初始化.正则化.学习率的设定.实际应用等 大纲: 实验环节: 理论层面的解释:两个方面,1.数学角度,映射函数h( ...

  8. MySQL5.7 (审计)通过init_connect + binlog 实现MySQL审计功能

    转载自:https://blog.51cto.com/13941177/2173620 一.简介 1.概述 mysql本身已经提供了详细的sql执行记录–general log ,但是开启它有以下几个 ...

  9. windows问题集合

    1.windows创建内核对象时系统会创建内核数据块,我们通过什么方式去创建,打开,操作这些数据块呢?微软是如何做的?如果是你又会如何做?(提示:内核句柄) 2.进程  发展历史(系统方面发展) 答: ...

  10. Python学习日记(四)——Python基本数据类型梳理(int、str、list、tuple、dict)

    数字(int) 1.创建方式 n1 = 123 n2 = int(123) 2.内存分配 #共同用一个内存地址的情况 n1 = 123 n2 = n1 #用两个内存地址的情况 n1 = 123 n2 ...