range()函数
用于生成一个整数序列
创建range对象的三种方式:
①range(stop):创建一个(0, stop)之间的整数序列,步长为1
②range(start, stop):创建一个(start, stop)之间的整数序列,步长为1
③range(start, stop, step):创建一个(start, stop)之间的整数序列,步长为step
返回值是一个迭代器对象
range类型的优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start, stop, step,只有当用到range对象时,才会去计算序列中的相关元素
in与not in判断整数序列中是否存在(不存在)指定的整数
# 第一种创建方式,只有一个参数stop
r = range(10)
print(r) # 输出:range(0, 10)
print(list(r)) # 用于查看range对象中的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 第三种创建方式,给了三个参数
r = range(1,10,2)
print(list(r)) # 输出为[1, 3, 5, 7, 9]
# 判断指定的整数是否在序列中
print(10 in r) # False
print(9 in r) # True
print(10 not in r) # True
循环结构(while、for-in)
while循环
while循环判断N+1次,执行N次,最后一次判断为False,不执行循环体
四步循环法:
①初始化变量
②条件判断
③条件执行体(循环体)
④改变变量
'''计算1到100之间偶数和'''
sum_odd = 0 # 用于存储偶数和
'''初始化变量'''
a = 1
'''条件判断'''
while a <=100:
'''条件执行体(求和)'''
# 条件判断是否是偶数
if a % 2 == 0:
sum_odd += a
a += 1
print(sum_odd)
for-in循环
in表达从(字符串、序列等)中依次取值,又称为遍历
for-in遍历的对象必须是可迭代对象
for-in的语法结构:
for 自定义的变量 in 可迭代对象:
循环体
注意:循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
# 循环体内需要访问自定义变量的情况
for item in 'Python': # 第一次取出来的是P,将P赋值给item,将item的值输出
print(item)
for i in range(10): # range对象常用在for-in循环中,作为循环执行的次数
print(i)
# 如果在循环体中不需要使用到自定义变量,可将自定义变量写为'_'
for _ in range(5):
print('人生苦短,我用Python') # 输出五行“人生苦短,我用Python”
例:使用for循环找出100到999之间的水仙花数
for item in range(100,1000):
ones = item % 10
tens = item // 10 % 10
hundreds = item // 100
print(ones, tens, hundreds) # 验证个十百位是否取对
# 判断是否是水仙花数,若是,则输出
if ones ** 3 + tens ** 3 + hundreds ** 3 = item:
print(item)
流程控制语句
break语句,用于结束循环结构,通常与分支结构 if 一起使用
# 从键盘录入密码,最多录入三次,如果正确就结束循环
for _ in range(3):
pwd = input ('请输入密码:')
if pwd == '8888':
print('密码正确')
break
else:
print('密码不正确,请重新输入')
continue语句,用于结束当前循环,进入下一次循环,通常与分支结构中的 if 一起使用
# 输出1到50之间所有5的倍数, 5,10,15,20,25...
# 要求使用continue语句
for item in range(1,51):
if item % 5 !=0:
continue
print(item)
else语句,else语句可以与 if、while、for 配合使用
与 if 配合时:if 条件表达式不成立是执行else
与 while、for搭配时,没有碰到break时执行else
for _ in range(3):
pwd = input('请输入密码:')
if pwd == '8888':
print('密码正确')
break
else:
print('密码不正确,请重新输入')
else:
print('对不起,三次密码均输入错误')
嵌套循环
嵌套结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环执行体
# 输出一个三行四列的*阵
for i in range(3):
for j in range(4):
print('*', end = '\t') # 不换行
print() # 一行四个*输出完成之后换行
# 输出一个九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(i, '*', j, '=', i*j, end = '\t')
print()