1.while 循环的基本使用
2.break 和 continue
3.while 循环嵌套
顺序:从上向下,顺序执行代码
分支:根据条件判断,决定执行代码的分支
循环:让特定代码重复执行(解决程序员重复工作)
“”"
for 变量 in range(10):
循环需要执行的代码
else:
循环结束时,需要执行的代码
“”"
for i in range(5):
print(i)
“”"
range(stop): 0~stop-1
range(start,stop): start~stop-1
range(start,stop,step): start~stop step(步长)
“”"
测试:
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(1,11,2) ##取出奇数
[1, 3, 5, 7, 9]
>>> range(0,11,2) ##取出偶数
[0, 2, 4, 6, 8, 10]
>>>
sum = 0
for i in range(2,101,2):
sum += i
print(sum)
sum1 = 0
for i in range(1,101,2):
sum1 += i
print(sum1)
# 求阶乘
num = int(input('请输入一个数字:'))
res = 1
for i in range(1, num + 1):
res*=i
print('%d的阶乘为:%d' %(num,res))
sum = 0
for i in (1,2,3,4):
for j in (1,2,3,4):
for k in (1,2,3,4):
if i != j and j!= k and i != k:
sum += 1
print('共有%d种组合' %sum)
for x in range(1,5):
for y in range(1,5):
for z in range(1,5):
if (x!=y) and (y!=z) and (z!=x):
print("%d%d%d" % (x, y, z))
i = 0
for x in range(1,5):
for y in range(1,5):
for z in range(1,5):
if (x!=y) and (y!=z) and (z!=x):
i += 1
if i%4:
print("%d%d%d" % (x, y, z), end=" | ")
else:
print("%d%d%d" % (x, y, z))
break:跳出整个循环,不会再执行循环后续的内容
continue:跳出本次循环,continue后面的代码不再执行,但是还是会继续循环
exit():结束程序的运行
import os
for i in range(1000):
cmd = input(’[kiosk@test ~]$ ')
if cmd:
if cmd == ‘exit’:
break
else:
print(‘run %s’ %(cmd))
os.system(cmd)
else:
continue
for i in range(1,10):
for j in range(1,i+1):
print('%d * %d = %d\t' %(i,j,i*j),end='')
print()
用户登录需求:
1.输入用户名和密码;
2.判断用户名和密码是否正确(name=‘root’,passwd=‘westos’)
3.登录仅有三次机会,超过3次会报错
for i in range(3):
user = input('请输入用户名:')
passwd = input('请输入密码:')
if user=='root' and passwd == 'westos':
print('%s用户登录成功' %user)
break
else:
print('密码错误,请重新输入密码,您还剩%d次机会' %(2-i))
else:
print('超过三次,登录失败')
输入两个数值:
求两个数的最大公约数和最小公倍数
最小公倍数=(num1 * num2) / 最大公约数
# 输入两个数字
num1=int(input('Num1:'))
num2=int(input('Num2:'))
# 找出两个数中的较小者
min_num = min(num1,num2)
# 确定最大公约数
for i in range(1,min_num+1):
if num1 % i ==0 and num2 % i ==0:
max_commer = i
# 求最小公倍数
min_commer =int(num1 * num2)/max_commer
print('%s 和 %s 的最大公约数为%s' %(num1,num2,max_commer))
print('%s 和 %s 的最小公倍数为%s' %(num1,num2,min_commer))
循环的作用就是让指定的代码重复的执行,while 循环最常用的应用场景就是让执行的代码按照指定的次数重复执行
while 条件():
条件满足时,做的事情1
条件满足时,做的事情2
......
# 定义一个整数变量,记录循环的次数
i=1
# 开始循环
while i <= 3:
# 希望循环内执行的代码
print('hello python')
# 处理计数器
i+=1
while True:
print('hello python')
# 定义记录循环次数的变量
i = 0
# 定义结果变量
result = 0
while i <= 100:
result+=i
# 处理计数器
i+=1
# 输出结果
print('1~100之间的数字之和为:%d' %result)
trycount = 0
while trycount < 3:
name = input('用户名:')
passwd = input('密码:')
if name == 'root' and passwd == 'westos':
print('登录成功')
break
else:
print('登录失败')
print('您还剩余%d次机会' %(2 - trycount))
trycount += 1
else:
print('登录次数超过三次,请稍后登录')
while 里面还有 while
1.在控制台连续输出五行*,每一行星号的数量依次递增
2.完成 5 行内容的简单输出 分析每行内部的*应该如何处理
输出
*
**
***
*****
*******
如下:
第一种:
# 1.控制行
for i in range(6):
# 2.控制*的数量
for j in range(6):
if i > j :
print("*",end='')
print(" ")
i =1
while i <= 5:
j = 1
while j <= (5 - i):
print(" ",end='')
j += 1
while (j >(5-i) and j <= 5):
print("*",end='')
j += 1
print()
i += 1
第三种:
# 1.控制行
for i in range(6):
# 2.控制*的数量
for j in range(6):
if i < j :
print("*",end='')
print(" ")
i = 1
while i <= 5:
j = 1
while j < i:
print(" ",end='')
j += 1
while j >= i and j <= 5:
print("*",end='')
j += 1
print()
i += 1
猜数字游戏:
1.系统随机生成一个1~100的数字;
2.用户共有5次机会猜;
3.如果用户猜测数字大于系统给出的数字,打印"too big"
4.如果用户猜测数字小于系统给出的数字,打印"too small"
5.如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖",并退出循环
import random
num = random.randint(1,100)
print(num)
i = 1
while i <= 5:
ans = int(input("请猜数:"))
if ans > num:
print("too big,还剩%d次机会"%(5-i))
elif ans < num:
print("too small,还剩%d次机会"%(5-i))
else:
print("恭喜中奖!!!")
break
i += 1