1.for循环
1)range的用法
range(stop)
range(start,stop)
range(start,stop,step)
默认start为0,step为1
实验
>>> 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]
>>>
2)for的使用
for 变量 in range(10):
循环需要执行的代码
练习1:求1~100所有偶数之和
sum = 0
# for i in range(2,101,2):
# sum += i
# print(sum)
练习2:求1~100所有奇数之和
# sum1 = 0
# for i in range(1,101,2):
# sum1 += i
# print(sum1)
练习3:求阶乘
# num = int(input('Num:'))
# res = 1
# for i in range(1,num + 1):
# res *= i
# print('%d的阶乘为:%d' %(num,res))
3)continue,break,exit()
continue ##跳出本次循环
break ##跳出大循环
exit() ##退出程序
实验
for i in range(10):
if i == 5:
# continue
# break
exit()
print(i)
print('hello python')
4)for循环的嵌套
练习1:有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数
num = 0
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i != j and j != k
print('%d%d%d' %
num += 1
print('一共有%d个不相同的数字' % (num))
练习2:判断用户是否登陆成功
用户登陆需求:
1.输入用户名和密码;
2.判断用户名和密码是否正确(name='root',passwd='westos')
3.登录仅有三次机会,超过3次会报错
for i in range(3):
name = input('用户名:')
passwd = input('密码:')
if name == 'root' and passwd == 'westos':
print('登录成功')
break
else:
print('登录失败')
print('您还剩余%d次机会' %(2 - i))
else:
print('登录次数超过三次,请稍后登录')
练习3:模拟一个控制台,实现命令行提示符
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
练习4:输入两个数值:
求两个数的最大公约数和最小公倍数
最小公倍数=(num1 * num2) / 最大公约数
#1.输入两个数字
num1 = int(input('Num1:'))
num2 = int(input('Num2:'))
#2.找出两个数中的最小值
min_num = min(num1,num2)
#3.最大公约数的范围在1~min_num之间
for i in range(1,min_num + 1):
if num1 % i == 0 and num2 % i == 0:
gys = i
#4.最小公倍数
gbs = int((num1 * num2) / gys)
print('%s和%s的最大公约数为:%s' %(num1,num2,gys))
print('%s和%s的最小公倍数为:%s' %(num1,num2,gbs))
2.while 循环
1)普通的while
while 条件():
条件满足时,做的事情1
条件满足时,做的事情2
.....
测试
#1.定义一个整数变量,记录循环的次数
i = 1
#2.开始循环
while i <= 3:
#希望循环内执行的代码
print('hello python')
#处理计数器
i += 1
练习:输出1-100的奇数和 和 偶数和
i = 1
sum = 0
while i <= 100:
sum += i
i += 2
print('0-100的奇数和为%d' % (sum))
print(sum)
i = 2
sum = 0
while i <= 100:
sum += i
i += 2
print('0-100的偶数和为%d' % (sum))
print(sum )
练习2:判断用户是否登陆成功
用户登陆需求:
1.输入用户名和密码;
2.判断用户名和密码是否正确(name='root',passwd='westos')
3.登录仅有三次机会,超过3次会报错
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('登录次数超过三次,请稍后登录')
2)死循环
#定义死循环
while True:
print('hello python')
3)while的嵌套
输出不换行
print('i',end='')
练习:输出各种星星
i = 1
while i <= 5:
j = 1
while j <= i:
print('*', end='')
j += 1
print()
i += 1
实验结果
*
**
***
****
*****
i = 5
while i > 0:
j = i
while j > 0:
print('*', end='')
j -= 1
print()
i -= 1
实验结果
*****
****
***
**
*
i = 1
while i <= 5:
j = 1
while j <= 5:
l = 5 - i
if j <= l:
print(' ', end='')
else:
print('*', end='')
j += 1
print()
i += 1
实验结果
*
**
***
****
*****
i = 5
while i >= 0:
j = 1
while j <= 5:
l = 5 - i
if j <= l:
print(' ', end='')
else:
print('*', end='')
j += 1
print()
i -= 1
实验结果
*****
****
***
**
*
练习2:99乘法表
i=1
while i<=9:
j=1
while j<=i:
print('%dx%d=%d ' %(i,j,i*j),end='')
j +=1
print()
i+=1
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
综合练习:猜测中奖
猜数字游戏:
1.系统随机生成一个1~100的数字;
2.用户共有5次机会猜;
3.如果用户猜测数字大于系统给出的数字,打印"too big"
4.如果用户猜测数字小于系统给出的数字,打印"too small"
5.如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖",
并退出循环
"""
import random
randomnum = random.randint(1, 100)
for i in range(5):
usernum = int(input('请输入数字:'))
if usernum == randomnum:
print('恭喜中奖')
break
elif usernum > randomnum:
print('too big')
else:
print('too small')
chance= 5-i-1
if chance != 0:
print('你还剩下%d次机会' % (chance))
else:
print('你没有中奖')