一、for 循环语句
1.for 循环语句结构
for 循环使用的语法:
for 变量 in range(10):
循环需要执行的代码
else:
全部循环结束后要执行的代码
2.python内置函数 range()
range(stop):0~stop-1
range(start,stop):start~stop-1
range(start,stop,step):start~stop-1,step为步长
>>> range(3)
[0, 1, 2]
>>> range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10,2)
[1, 3, 5, 7, 9]
>>> range(2,11,2)
[2, 4, 6, 8, 10]
示例:
求1~100的数字之和
num = 0
for sum in range(1,101):
num = num + sum
print(num)
需求1:求1~100之间的所有偶数之和
num = 0
for sum in range(2,101,2):
num = num + sum
print(num)
需求2:求1~100之间的所有的奇数之和
num = 0
for sum in range(1,100,2):
num = num + sum
print(num)
需求3:用户输入一个数字,求该数的阶乘:3!=321
num = int(input('请输入一个数字:'))
res = 1
for i in range(1,num+1):
res *= i
print('%s的阶乘是%d' %(num,res))
操作练习:
用户登陆程序
1.输入用户名和密码
2.判断用户名和密码是否正确(‘name==root’,'passwd=‘westos’)
3.为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错
for i in range(3):
username = input('请输入用户名:')
passwd = input('请输入密码:')
if username == 'root' and passwd == 'westos':
print('成功登陆程序')
break
else:
print('登陆失败,您还剩余%d次机会' %(2-i))
else:
print('登录机会用完,请等待后重试')
3.break 、continue、exit 的区别
break
:跳出整个循环,不会再循环后面的内容
continue
:跳出本次循环,continue后面的代码不再执行,但是循环依然继续
eixt()
:结束程序的下运行
for i in range(10):
if i == 5:
break
print(i)
print('hello python world')
开始执行脚本
0
1
2
3
4
hello python world
for i in range(10):
if i == 5:
continue
print(i)
print('hello python world')
开始执行脚本
0
1
2
3
4
6
7
8
9
hello python world
for i in range(10):
if i == 5:
exit()
print(i)
print('hello python world')
开始执行脚本
0
1
2
3
4
练习题:
题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
提示:组成无重复的几位数,就嵌套几次
sum = 0
for a in range(1,5):
for b in range(1,5):
for c in range(1,5):
if a != b and a != c and b != c:
sum += 1
print(a,b,c)
print('共有%d种可能'%(sum))
题目:实现命令行提示符
要求:
1.命令行样式[[email protected] ~]#
2.能实现原本linux中实现命令的功能
3.实现exit退出功能
4.实现原本linux输入回车功能
import os
for i in range(1000):
cmd = input('[[email protected] ~]# ')
if cmd:
if cmd == 'exit':
print('退出')
break
else:
print('run %s' %(cmd))
os.system(cmd)
else:
continue
题目:
输入两个数值:
求两个数的最大公约数和最小公倍数.
提示:最小公倍数=(num1*num2)/最大公约数;最大公约数=num1 % i ==0 , num2 %i ==0 ,i为最大公约数
方法一:
num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
if num1 < num2:
min = num1
elif num1 >num2:
min = num2
for i in range(1,min+1): 最大公约数的范围在1~min之间
if num1 % i == 0 and num2 % i == 0:
gys = i
print('%s和%s的最大公约数是%d' %(num1,num2,gys))
gbs = (num1 * num2) / gys
print('%s和%s的最小公倍数是%d' %(num1,num2,gbs))
方法二:
num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
min_num = min(num1,num2)
for i in range(1,min_num+1):
if num1 % i == 0 and num2 % i == 0:
gys = i
print('%s和%s的最大公约数是%d' %(num1,num2,gys))
gbs = (num1 * num2) / gys
print('%s和%s的最小公倍数是%d' %(num1,num2,gbs))
二、while 循环语句
1.while 循环语句结构
while 条件满足:
满足条件执行的语句
else:
不满足条件执行的语句
示例:
sum = 0
i = 1
while i <= 10:
sum += i
i += 1
print(sum)
用while做
用户登陆程序
1.输入用户名和密码
2.判断用户名和密码是否正确(‘name==root’,'passwd=‘westos’)
3.为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错
i = 0
while i < 3:
username = input('请输入用户名:')
passwd = input('请输入密码:')
if username == 'root' and passwd == 'westos':
print('成功登陆程序')
break
else:
print('登陆失败,您还剩余%d次机会' %(2-i))
i += 1
else:
print('登录机会用完,请等待后重试')
2.while死循环:while True
即定义条件永真,即死循环
while True:
print('hello world')
while 2 > 1:
print('hello python world')
测试后快速退出,避免卡死
练习题:
猜数字游戏
if , while, break
1. 系统随机生成一个1~100的数字;
** 如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
2. 用户总共有5次猜数字的机会;
3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环;
import random
num1 = random.randint(1,100)
i = 0
while i < 5:
num2 = int(input('请输入您猜想的数字:'))
if num1 == num2:
print('恭喜中奖100万')
break
elif num1 > num2:
print('too small')
print('您还剩余%d次机会' %(4-i))
else:
print('too big')
print('您还剩余%d次机会' %(4-i))
i += 1