(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 ...
随机推荐
- 【Leetcode_easy】605. Can Place Flowers
problem 605. Can Place Flowers 题意: solution1: 先通过简单的例子(比如000)发现,通过计算连续0的个数,然后直接算出能放花的个数,就必须要对边界进行处理, ...
- 修改iPhone5s crash 问题
- 游戏开发中伪随机正态分布JavaScript
在游戏开发中经常遇到随机奖励的情况,一般会采取先生成数组,再一个一个取的方式发随机奖励. 下面是js测试正态分布代码: <!DOCTYPE html> <html lang=&quo ...
- java面试考点-面试准备
面试前准备 了解应试公司相关信息及岗位信息 系统复习基础知识 对原公司负责项目进行梳理 阅读常规框架源码 学习典型架构案例 针对招聘文案准备加分项 相关技能 基础知识:进程/线程,TCP协议,HTTP ...
- 日常工作问题解决:Redhat6.5--解决yum无法正常安装配置问题
1.问题描述 解决RedHat6.5下yum功能不能用问题: 在redhat6.5下使用yum安装时,会提示:This system is not registered to Red Hat Subs ...
- Java程序的编写与执行、Java新手常见问题及解决方法|乐字节Java学习
今天,我们来写一段Java程序.然后看看Java程序是如何执行的,以及Java新手小白遇到的问题和解决办法. 一.HelloWorld的编写 ① 新建一个XXX.java (文件的扩展名显示出来) ...
- 点击 显示红色 小案例 vue
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- ROS学习(一)Ros 中使用kinect
上的安装说明如下: 官网上明确写了如果安装windows kinect还需要安装一个驱动,但是有些ROS的书上并没有这么做,只提到了使用如下两步进行安装即可使用: sudo apt-get insta ...
- PS复制图层快捷键
选中图层,按“Ctrl + J”即可快速复制图层.
- Fabric中的节点类型
在Fabric中,尽管所有对等节点/peer都是相同的,但它们可以根据网络的配置方式承担多个角色:(①②是主要的节点类型) ①提交节点: 通道中的每个对等节点都是一个提交节点.它们接收生成的交易区块, ...