目录
1.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],默认从0开始,默认相差1称为步长
print(r) #range(0,10)
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)
print(list(r)) #[1,3,5,7,9]
'''判断指定的整数 在序列中是否存在in,not in'''
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
print(range(1,20,1)) #[1...19]
print(range(1,101,1)) #[1....100]
2.循环结构
-
反复做同一件事情的情况,称为循环
-
循环结构的流程图
-
循环的分类
-
while
-
for
-
-
语法结构
while 条件表达式:
条件执行体(循环体)
-
选择结构的if与循环结构while的区别
-
if是判断一次,条件为True执行一次
-
while是判断N+1次,条件为True执行N次
a = 1 #判断条件表达式 while a<10: #执行条件执行体 print(a) a+=1
-
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的偶数和
print(bool(0))
'''计算1-100的偶数和'''
'''初始化变量'''
a = 1
sum = 0
'''条件判断'''
while a<=100:
'''条件执行体(求和)'''
#条件判断是否为偶数
if not bool(a%2):#if a%2==0:
sum += a
'''改变变量'''
a+=1
print('1-100之间的偶数和',sum)
2.for-in循环
-
for-in循环
-
in表达从(字符串,序列等)中依次取值,又称遍历
-
for-in遍历的对象必须是可迭代对象
-
-
for-in的语法结构
for 自定义的变量 in 可迭代对象:
循环体
-
for-in的执行图
-
循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
for item in 'Python': #第一次取出来的是p,将p赋值item,将item,将item的值输出
print(item)
#range()产生一个整数序列,--》也是一个可迭代对象
for i in range(10):
print(i)
#如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_”
for _ in range(5):
print('人生苦短,我用python')
#计算1-100的偶数和
sum =0
for item in range(1,101):
if item%2==0 :
sum+=item
print('1-100之间的偶数和为:',sum)
练习:输出100-999的水仙花数
'''输出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)
3.break,continue与else语句
-
流程控制语句break
-
用于结束循环结构,通常与分支结构if一起使用
'''从键盘录入密码,最多录入3次,如果正确就结束循环''' for item in range(3): pwd = input('请输入密码:') if pwd =='888': print('密码正确') break else: print('密码不正确')
a =0 while a<3: '''条件执行体(循环体)''' pwd = input('请输入密码') if pwd =='8888': print('密码正确') break else: print('密码不正确') '''改变变量''' a+=1
-
-
流程控制语句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('-------------使用continue--------') for item in range(1,51): if item%5!=0: continue print(item)
-
-
else语句
-
与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('对不起,三次密码均输入错误')
-
4.嵌套循环
-
循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体执行
for i in range(1,4): #行表,执行三次,一次是一行
for j in range(1,5):
print('*', end='\t')
print() #打印
#输出三角形
for i in range(1,10):
for i in range(1,i+1):
print('*',end='')
print()
#输出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
-
二重循环中的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()
总结: