- 内置函数range()
- 用于生成一个整数序列
- 创建range对象的三种方式
#第一种创建方式:只有一个参数(小括号中只有一个数)
r=range(10)#[0,1,2,3,4,5,6,7,8,9],默认从零开始,默认相差一为步长
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。
r=range(1,10,2)
print(10 in r)#False
print(9 in r)#True
print(10 not in r)#True
- range类型的优点:不管range对象表示的整数序列有多长,所有range对象占用的空间是一样的,因为仅仅需要存储start,stop,step,只有当用到range对象时,才会去计算序列中的相关元素。
- 循环结构(while和for- in语句)
- while条件表达式:
条件执行体(循环体)
while a<10:#判断条件表达式
print(a)#执行条件执行体
a+=1#结果为1,2,3,4,5,6,7,8,9
但是换成if
if a<10:
print(a)
a+=1#结果为1
由此看出两者区别 :1,if是判断一次,条件为True执行一行。
2,while是判断N+1次,条件为True执行N次 。
while语句执行流程:初始化变量——条件判断——条件执行体——改变变量
接下来做一道题练练手
#计算1到100之间偶数的和
a=1#初始化变量
sum=0
while a<=100:#条件判断
if a%2==0:#条件执行体,也可改为if not bool(a%2)
sum=sum+a
a=a+1
print(sum)
- for- in循环
1.in表达从(字符串,序列等)中依次取值,又称为遍历。
2.for-in遍历的对象必须是可迭代对象
for-in的语法结构:for 自定义的对象 in 可迭代对象:
循环体
for item in 'Python':#第一次取出来的是P,将P赋值到item,将item的值输出
print(item)#P y t h o n成列展开
#range()产生一个整数序列,也是一个可迭代对象
for i in range(10):
print(i)
#如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_”
for _ in range(5):
print('我喜欢你')#‘我喜欢你 ’会循环5次
如果用for- in循环计算1到100之间的偶数怎么做呢?
sum=0
for item in range(1,101):
if item%2==0:
sum=sum+item
print(sum)
再练一道题
#输出100到999之间的水仙花数
for item in range(100,1000):
ge=item%10
shi=item//10%10
bai=item//100
if ge**3+shi**3+bai**3==item:
print(item)
- break语句:用于结束循环结构,通常与分支结构if一起使用
#从键盘录入密码,最多录入三次,如果正确就结束循环
for item in range(3):
pwd=input('请输入密码:')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确')
- continue语句:用于结束当前循环,开始下一循环,通常与分支结构的if一起使用。
#要求输入1到50之间5的倍数
for item in range(1,51):
if item%5!=0:
continue
print(item)
5.else语句
与else语句配合使用的三种情况
- 嵌套循环
#输出三行四列的矩形
for i in range(1,4):#行数
for j in range(1,5):#列数
print('*',end='\t')#强制不换行
print()#换行,j到4时会换行
for i in range(1,10):
for j in range(1,i+1):
print('*',end='\t')
print()