内置函数range()
- range()函数
- 用于生成一个整数序列
- 创建range对象的三种方式
- 返回值是一个迭代器对象
- range类型的优点:不管range对象表示的整数序列有多长,所有 range 对象占用的内存空间都是相同的,因为仅仅需要存储 start,stop 和 step ,只有当用到 range 对象时,才会去计算序列中的相关元素
- in 与 not in 判断整数序列中是否存在(不存在)指定的整数
代码演示
#range()的三种创建方式
'''第一种创建方式,只有一个参数(小括号中只给了一个数)'''
r=range(10) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 默认从零开始,默认步长为1
print(r)
print(list(r)) #用于查看range对象中的整数序列 -->list是列表的意思
'''第二种创建方式,给了两个参数(小括号中给了两个参数)'''
r=range(1,10) #指定了起始值,从1开始,到10结束(不包含10),默认步长为1
print(list(r))#[1, 2, 3, 4, 5, 6, 7, 8, 9]
'''第三种创建方式,给了三个参数(小括号中给了三个数)'''
r=range(1,10,2)#指定了起始值,从1开始,到10结束(不包含10),默认步长为2
print(list(r)) #[1, 3, 5, 7, 9]
'''判断指定的整数 在序列中是否存在'''
print(10 in r) #False,10不在当前的r这个整数序列中
print(9 in r) #True,9在当前的r这个整数序列中
print(10 not in r)#True
print(9 not in r)#False
运行结果
循环结构
- 反复的做同一件事情的情况,称为循环
- 循环结构的流程图
- 循环的分类
- while
- for -in
- 语法结构
- while 条件表达式:
- 条件执行体(循环体)
- while 条件表达式:
- 选择结构的if与循环结构while的区别
- if是判断一次,条件为True执行一次
- while是判断N+1次,条件为True执行N次
a=1
#判断条件表达式
while a<10:
#执行条件执行体
print(a)
a+=1
while 循环的执行流程
• 四步循环法
• 初始化变量
• 条件判断
• 条件执行体(循环体)
• 改变变量
• while 循环的执行流程
代码演示
#计算0到4之间的累加和
'''
4步循环法
1.初始化变量
2.条件判断
3.条件执行体(循环体)
4.改变变量
总结:初始化的变量与条件判断的变量与改变的变量为同一个
'''
sum=0 #用于存储累加和
'''初始化变量为0'''
a=0
'''条件判断'''
while a<5:
'''条件执行体(循环体)'''
sum+=a
'''改变变量'''
a+=1
print('和为',sum)
练习题
#计算1到100之间的偶数和
'''初始化变量'''
sum=0 #用于存储偶数和
a=1
'''条件判断'''
while a<=100:
'''条件执行体(求和) 偶数'''
#条件判断是否是偶数
if a%2==0:
sum+=a
'''改变变量'''
a+=1
print('1-100之间的和为',sum)
for-in 循环
代码演示
for item in 'Python': #第一次取出来的是P,将P赋值给item,将item的值输出
print(item)
#range() 产生一个整数序列,-->也是一个可迭代对象
for i in range(10):
print(i)
#如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_”
for _ in range(5):
print('人生苦短,我用Python')
print('使用for循环,计算1到100之间的偶数和')
sum=0 #用于存储偶数和
for item in range(1,101):
if item %2==0:
sum+=item
print('1到100之间的偶数和为:',sum)
运行结果
P
y
t
h
o
n
0
1
2
3
4
5
6
7
8
9
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
使用for循环,计算1到100之间的偶数和
1到100之间的偶数和为: 2550
进程已结束,退出代码0
练习题
'''输出100到999之间的水仙花数
举例;
153=3*3*3+5*5*5+1*1*1
'''
for item in range(100,1000):
ge=item%10 #个位
shi=item//10%10 #十位
bai=item//100 #百位
#print(bai,shi,ge)
#判断
if ge**3+shi**3+bai**3==item:
print(item)
#运行结果 153 370 371 407
流程控制语句 break
- break语句
- 用于结束循环结构,通常与分支结构 if 一起使用
代码演示(for)
#从键盘录入密码,最多录入三次,如果正确就结束循环
for item in range(3):
pwd=input('请输入密码')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确')
代码演示(while)
a=0
while a<3:
'''条件执行体(循环体)'''
pwd=input('请输入密码')
if pwd =='8888':
print('密码正确')
break
else:
print('密码不正确')
流程控制语句 continue
- continue 语句
- 用于结束当前循环,进入下一次循环 , 通常与分支结构中的 if 一起使用
代码演示
'''要求输出1到50之间所有5的倍数 5,10,15,20,25....
5的倍数的共同点: 和5的余数为0的数都是5的倍数
什么样的数不是5的倍数, 1,2,3,4,6,7,8,9.... 与5的倍数不为0都不是5的倍数
要求使用continue实现
'''
for item in range(1,51):
if item%5==0:
print(item)
print('-------------使用countinue实现--------------')
for item in range(1,51):
if item%5!=0:
continue
print(item)
运行结果
5
10
15
20
25
30
35
40
45
50
-------------使用countinue实现--------------
5
10
15
20
25
30
35
40
45
50
进程已结束,退出代码0
else 语句
代码演示
for item in range(3):
pwd=input('请输入密码')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确')
else:
print('对不起,三次密码均输入错误')
a=0
while a<3:
pwd=input('请输入密码')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确')
'''改变变量'''
a+=1
else:
print('对不起,三次密码均输入错误')
嵌套循环
代码演示1
#输出一个三行四列的矩形
for i in range(1,4):#行表,执行三次,一次是一行
for j in range(1,5):
print('*',end='\t') #不换行输出
print() #打行
运行结果
代码演示2
#使用嵌套循环打印九九乘法表
for i in range(1,10): #行数
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
运行结果
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
进程已结束,退出代码0
二重循环中的 break 和 continue
代码演示
'''流程控制语句break与continue在二重循环中的使用'''
for i in range(5): #代表外层循环要执行5次
for j in range(1,11):
if j%2==0:
#break
continue
print(j,end='\t')
print()
运行结果