(15)while循环
循环结构 : while
循环结构的特点:减少代码的冗余,提高代码的效率
注意:只要是循环一定要有判断条件退出循环,不然就成了死循环,程序会一直在内存执行,直到内存耗尽,暴毙.....
语法形式:
while 条件表达式:
code1
code2
(一)打印数字1~10
i = 1 # 定义一个初始化的变量
# 写一个循环的条件
while i <= 10:
# 代码体,写逻辑
print(i)
i += 1 # 程序每跑一遍,i就+1,直到1=10,循环停下来
执行结果:
1
2
3
4
5
6
7
8
9
10 (二) 计算1~100的累加和 ?
写法一:
i = 1
total = 0
while i <= 100:
total += i
i += 1
print(total) 执行结果:
5050
写法二:
i = 1
total = 0 # 初始化一个变量
flag = True # 写一个标志符
while flag: # 只有为真的时候才会循环
total += i
i += 1
# 当i位101的时候,为了避免在回到循环判断中,直接在此处终止
if i == 101:
flag = False # 更改标志符状态
print(total)
执行结果:
5050 (三)打印一行十个小星星
(1)最简单的方法:功能的确实现了,但是看起来比较low
print("*"*10)
执行结果:
**********
(2)升级版:用循环写
i = 0
while i < 10:
print("*", end="") # end=''以什么结尾,这里以空制符串结尾,保证星星不会换行,打印在一排
i += 1
执行结果:
**********
(3)进阶版:
i = 0
strvar = ''
while i < 10:
strvar += "*"
i += 1
print(strvar)
执行结果:
**********
(四)while和if的混合使用
(1)要求:打印一行十个小星星 奇数个打印★ 偶数个打印☆
i = 0
while i < 10:
if i % 2 == 0:
print("★", end="")
else:
print("☆", end="")
i += 1
执行结果:
★☆★☆★☆★☆★☆
(2)要求:一个循环 打印十行十列隔列变色小星星
i = 0
while i < 100:
if i % 2 == 0:
print("☆", end="")
else:
print("★", end="")
if i % 10 == 9: # 换行,i是从0开始的,i逢9就要开始换行
print()
i += 1
执行结果:
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★ (五)while循环的嵌套(多个while循环)
(1)用两个循环打印十行十列变色小星星
i = 0
while i < 10: # 外循环
j = 0
while j < 10: # 内循环
if i % 2 == 0: # 控制行
print("★", end="")
else:
print("☆", end="")
j += 1 # 程序运行一次,j+1,一直满足内循环,所以外循环走一次,内循环走十次
print() # 换行,外面的循环每执行一次,就打印一个换行
i += 1
执行结果:
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
(2)打印99乘法口诀表
i = 1
while i <= 9:
j = 1
while j <= i:
print("%d*%d=%-2d" % (j, i, i * j), end=" ") # end这里有空格
j += 1
print() # 换行
i += 1
执行结果:是不是beautiful
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
作业:自己下去试一下99乘法口诀的其他打发,比如,方向相反的乘法口诀
(3)百钱买百鸡,公鸡1块钱一只,母鸡3块钱一只,小鸡5毛钱一只,100块钱买100只鸡.并且三种鸡都要买到,有多少种买法?
x = 1
while x < 99: # 每种鸡最多买98只
y = 1
while y < 33:
z = 1
while z < 99:
# 三款鸡加一起是100只 三款鸡价格加一起是100块 两个条件同时满足
if (x + y + z == 100) and (x + 3 * y + 0.5 * z == 100):
print(x, y, z)
z += 1
y += 1
x += 1 执行结果:
5 19 76
10 18 72
15 17 68
20 16 64
25 15 60
30 14 56
35 13 52
40 12 48
45 11 44
50 10 40
55 9 36
60 8 32
65 7 28
70 6 24
75 5 20
80 4 16
85 3 12
90 2 8
95 1 4
(15)while循环的更多相关文章
- 141029 V7 异步通知测试,15分钟循环代码重构,同步更新payInfo测试,支付成功timer测试成功说明
支付成功之后的1分钟定时任务:测试成功. 2014-10-29 17:16:06,892 DEBUG [http-bio-8086-exec-1] org.springframework.web.se ...
- JS定时循环
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)
循环执行的例行性工作调度 crontab(定时任务) 15.1 例行性工作调度 不考虑硬件与服务器的链接状态,Linux帮助提醒很多任务. Linux例行性工作是如何进行调度的? Linux调度就是通 ...
- Perl 循环
Perl 循环 有的时候,我们可能需要多次执行同一块代码.一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推. 编程语言提供了更为复杂执行路径的多种控制结构. 循环语 ...
- Java之 循环(三)
1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...
- java基础:switch语句应用,循环的详细介绍以及使用,附练习案列
1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...
- Java(7)流程控制语句中的for、while、do while循环
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201543.html 博客主页:https://www.cnblogs.com/testero ...
- MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程
在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...
- 一个脚本可以一直运行 ignore_user_abort
php中ignore_user_abort函数的用法 PHP中的ignore_user_abort函数是当用户关掉终端后脚本不停止仍然在执行,可以用它来实现计划任务与持续进程,下面会通过实例讨论ign ...
随机推荐
- js动态改变iframe的高度
js动态改变iframe的高度的写法 〈iframe id="docDetail" width="100%" height="200" ...
- ELK之在CentOS7.5上使用rpm包安装配置ELK7版本
一,安装环境查看 二,软件版本选用 jdk 1.8.0_171 elasticsearch 7.1.1 kibana 7.1.1 logstash 7.1.1 三,安装配置 1,安装JDK 过程不详述 ...
- Robot:robot如何连接Oracle数据库(windows+linux)
1.需要安装基础数据库 pip install robotframework-databaselibrary 2.下载并安装对应版本的cx_Oracle,注意要和Oracle版本.系统位数.pytho ...
- JAVA数据结构和算法 1-综述:数据结构和数据类型
数据结构:指数据在计算机内存空间中或者磁盘中的组织形式. 对于数据结构的操作:插入.删除.查找.迭代遍历.排序等: Java.util包中含有诸如向量(一个可扩充的数组).栈.哈希表等类型的数据结构, ...
- java基础系列(二):java数据结构及常用方法
1.数组Array (1)创建数组 dataType[] arrayName = new dataType[length];必须指定大小,否则会报错:如果不想指定大小,应采用声明数组变量的方式 dat ...
- juc多线程编程学习
JUC是java.util.concurrent的缩写,java.util.concurrent是在并发编程中使用的工具类. 在以前的解决并发问题,一般是通过Synchronize关键字,现在可以通过 ...
- esigner中name和comment互換
1 PowerDesigner中批量根据对象的name生成comment的脚本 执行方法:Open PDM -- Tools -- Execute Commands -- Run Script Opt ...
- Z1. 广度优先搜索(BFS)解题思路
/** BFS 解题思路 特点:从某些特定的节点开始,感染相邻的节点; 被感染的节点,再感染其相邻的节点,以此类推. 题目常见于数据结构包括 二维数组.树.图 **/ /** 1). 二维数组特定节点 ...
- 《Mysql - 我的Mysql为什么会抖一下?》
一: 抖一下? - 平时的工作中,不知道有没有遇到过这样的场景. - 一条 SQL 语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢. - 并且这样的场景很难复现,它不只随机,而 ...
- 开源定时任务框架Quartz(一)
简介 Quartz是OpenSymphony开源组织的一个开源项目,定时任务框架,纯Java语言实现,最新版本为2.3.0. 设计模式 Quartz中使用的设计模式如下: 1.Builder模式 2. ...