在我们生活中有很多反复要做的事情,或者动作,我们称之为循环。在开发程序中也会有循环的事情要去做,就是需要反复的去执行某个代码,或者反复进行某种演算,直到达到某种条件的时候才会停止。在Python中我们使用的是while循环。

  伪代码:

   条件成立:

    执行循环体

  直到条件不成立

  代码格式:

while ...:
...

  示例代码:

n = 0

while n < 10:
n = n + 1
# 或者 n += 1
print(n) # 执行结果

1
2
3
4
5
6
7
8
9
10

  在示例代码中,我们将n赋值初始值为0,在while循环体对n进行自增操作,直到n<10不成立,即n大于10,才结束循环。在循环中,我们要注意一定要有结束条件,不要造成无限循环,即死循环。

  下面我们再看一个猜数字代码示例:

number = 47

while True:
guess_number = input("请输入你要猜的数字:") # 因为通过input接收到参数是字符串,我们需要将字符串转换成数字,才可以进行比较操作
guess_number = int(guess_number) if guess_number == number:
print("恭喜你猜对了!")
break
elif guess_number > number:
print("猜的太大了!")
else:
print("猜的太小了!")

  在猜数字示例代码中,我们将变量number赋值数字47,这里的循环内容是反复询问用户输入数字,进行比较,循环结束条件是:guess_number等于number,而跳出循环是由循环控制词break进行控制。在循环中控制循环的词除了break还有continue。break,是跳出整个循环,continue,是结束当前循环,继续执行下面的循环内容。

  continue示例:

n = 0

while n<10:
n += 1
if n == 6:
continue
print(n) # 执行结果 1
2
3
4
5
7
8
9
10

  在这个示例中,可以看出来,循环体对n不断进行自增操作,并打印出n的数值,当n等于6的时候,遇到了continue,跳出了当前的循环,没有打印出来,继续执行剩下的循环内容,直到条件不满足。

  猜数字我们可以修改一下,在一定次数内才可以猜到,限制猜的次数。

number = 47
count = 0
while count < 3:
guess_number = input("请输入你要猜的数字:")
guess_number = int(guess_number) if guess_number == number:
print("恭喜你猜对了!")
break
elif guess_number > number:
print("猜的太大了!")
else:
print("猜的太小了!") count +=1

  我们再增加一个条件,当猜的次数到达3次,退出循环,并告知退出原因。

number = 47
count = 0
while count < 3:
guess_number = input("请输入你要猜的数字:")
guess_number = int(guess_number) if guess_number == number:
print("恭喜你猜对了!")
break
elif guess_number > number:
print("猜的太大了!")
else:
print("猜的太小了!") count +=1 else:
print("抱歉!你猜的次数太多了!")

  这里我们只是增加了else代码块,这里的意思是当while中的循环,正常循环完毕,while的循环条件不成立,(即count大于等于0),没有经过break而结束,才会执行的代码块!

  现在我们修改一下需求,当猜的次数达到3次的时候,我们询问用户是否继续,按‘n’退出,按任意键继续。请看示例:

number = 47
count = 0
while count < 3:
guess_number = input("请输入你要猜的数字:")
guess_number = int(guess_number)
if guess_number == number:
print("恭喜你猜对了!")
break
elif guess_number > number:
print("猜的太大了!")
else:
print("猜的太小了!")
count += 1
if count == 3:
is_contin = input("是否继续?如果要退出,请输入‘n’。")
if is_contin != 'n':
count = 0

  我们可以看到当每次循环3次,并且没有猜到的时候,程序就会询问用户,是否继续?如果输入的是‘n’,程序就会退出!

  while我们暂时学到这里!

1.5 Python基础知识 - while循环的更多相关文章

  1. 1.6 Python基础知识 - for循环

    在循环语句中,除了while循环外,还有一种循环叫for循环的循环语句,for循环语句用于遍历可迭代(什么是迭代?以及迭代的相关知识,我们到后面再进行阐述,这里只要记住就可以了.)对象集合中的元素,并 ...

  2. python基础知识(循环语句)

    for循环.while循环.循环嵌套 for 迭代变量 In 对象: 循环体 range(start,end,step) 第一个和第三个可以省略生成一系列的连续整数 start 包括起始值 end  ...

  3. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  4. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  5. Python基础——for/while循环

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 上学期间,常常遇到这样的情景:为了惩罚学生,老师会说:"XXX,你先去操场上跑10圈再回来继续反省.&qu ...

  6. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  7. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  8. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...

  9. Python 基础知识(一)

    1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...

随机推荐

  1. 局域网内机器不能对ping问题

    局域网内有台A机器能ping同其他机器,但其他机器不能ping A机器.属于同一个网段 解决办法: cmd->msconfig->常规->诊断启动,仅加载基本设备和服务. 重启后试下 ...

  2. BZOJ4712: 洪水(树链剖分维护Dp)

    Description 小A走到一个山脚下,准备给自己造一个小屋.这时候,小A的朋友(op,又叫管理员)打开了创造模式,然后飞到 山顶放了格水.于是小A面前出现了一个瀑布.作为平民的小A只好老实巴交地 ...

  3. LuoguP2754 [CTSC1999]家园(分层图,最大流)

    题目背景 none! 题目描述 由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177 年冬由于未知 ...

  4. Python day4知识回顾

    # -*- coding: utf_8 _*_# Author:Vi#字典是无序的 info = { 'student001':"DIO", 'student002':" ...

  5. linux6.0系统如何安装portmap

    因为在6.0的系统里,portmap已经改名了.在Redhat或CentOS5中可以使用 service portmap start启动服务,然后在启动nfs服务,实现挂载. 6里面可是试试 serv ...

  6. SNMP介绍,OID及MIB库

    http://blog.sina.com.cn/s/blog_4502d59c0101fcy2.html

  7. oracle多实例的启动与关闭

    Oracle/oracle登录 1.启监听器 lsnrctl start 监听一般不需要动,如果机器重新启动的话需要将监听启动. 查看当前SID:echo $ORACLE_SID 2.启动数据库实例: ...

  8. [Redux-Observable && Unit Testing] Mocking an ajax request when testing epics

    Often in unit tests we are focussing on the logic involved in crafting a network request, & how ...

  9. virmon防火墙64位正式版(暂定)公布

    ChangeLog: 2015-06-2564位版本号签名问题临时得到解决.还要致谢一下某位黑客. 支持版本号x64 Windows Vista.7.8.8.1以上等.个人仅仅在Windows7上做了 ...

  10. 20亿与20亿表关联优化方法(超级大表与超级大表join优化方法)

    记得5年前遇到一个SQL.就是一个简单的两表关联.SQL跑了几乎相同一天一夜,这两个表都非常巨大.每一个表都有几十个G.数据量每一个表有20多亿,表的字段也特别多. 相信大家也知道SQL慢在哪里了,单 ...