(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 ...
随机推荐
- C# Newtonsoft.Json JObject 操作
C# Newtonsoft.Json JObject 操作举例 JArray j = new JArray(); JObject obj = new JObject( ") ); JObje ...
- 网页布局(html+css基础)
一.如何用CSS进行网页布局 二.网页布局基础 三.网页简单布局之结构和表现原则 四.CSS Sprite雪碧图应用 什么叫布局? 网页的特点: 网页自适应宽度: 网页长度无限延长: (分栏也叫分列, ...
- 微信H5支付开发全过程(除内置微信以外的浏览器)
前言:网上都是~ 呵呵 自己搞 只要花时间 多问客服总会有的 只说程序不说准备工作 自己ID 或者秘钥都准备好了 写的有点儿乱 可以把所有的方法 放在一个文件中调用 public function ...
- thinkPHP 类库映射 类库导入
遵循我们上面的命名空间定义规范的话,基本上可以完成类库的自动加载了,但是如果定义了较多的命名空间的话,效率会有所下降,所以,我们可以给常用的类库定义类库映射.命名类库映射相当于给类文件定义了一个别名, ...
- 前端通过将json转成excel文件下载
方法一: 将table标签,包括tr.td等对json数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但文件形式上还是html,代码如下 ...
- java多线程上篇(一)
操作系统与程序运行以及进程简介 一.线程与操作系统 操作系统是对计算机硬件资源的管理程序,是应用程序与计算机硬件交互的中间层,其本质仍旧是运行于硬件电路上的程序 对计算机硬件来说不存在操作系统,只是处 ...
- 【Docker】:docker安装ELK(logstash,elasticsearch,kibana)
一:安装logstash 1.拉取镜像 docker pull logstash:5.6.11 2.创建目录 mkdir /docker/logstash cd /docker/logstash 3. ...
- Idea生成的的第一个eureka注册中心服务器
操作: 1.file->new->project Spring Initializer ->default 点击next 2.输入 Group ...
- 写CSDN博客
文章目录 前言 写博客的规范 写博客的小技巧 版权声明模板 博客表格模板 更改博客字体和颜色 LaTeX 数学公式 前言 这是一篇关于写CSDN博客的文章.记录我的博客规范,技巧,模板,心得. 写博客 ...
- Python 同级目录import报错
在使用protobuf时,我们自己了各种Options的时候,在生成的python文件会在同级目录中引用,所以这个时候我们不能做到,加个__init__.py文件了事然后在文件里面写 import m ...