赞
踩
目录
内置函数range()可创建一个整数列表,一般用在for循环中。range()的三种创建方式:
- r = range(10) #默认从0开始,默认相差1为步长
- print(r) #range(0,10)
- print(list(r)) #用于查看range对象中的整数数列 ---->list是列表的意思
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- r = range(1,10) #指定初始值为1,到10结束不包括10,默认步长为1
- print(r) #[1,2,3,4,5,6,7,8,9]
range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
- r = range(1,10,2) #指定从1开始,到10结束,步长(间隔)为2
- print(list(r)) #[1,3,5,7,9]
[1, 3, 5, 7, 9]
多用在循环或者数列列表中
- '''1-100之间的偶数和'''
- print(sum(range(1,101,2)))
补充:
in与not in 在列表中的操作
- r = range(1,10)
- print(3 in r) #True
- print(10 not in r) #True
range()函数的优点在于不论存储的数据多长,它所占有的存储空间都是相同的,因为它只存储三个值 start,stop,step。
- print(range(1,10,1))
- print(range(1,1000,1))
- 这两个range中一个存储的1-10的整数个数,另一个存储1-1000的整数个数,但是他们的存储空间相同
当不满足循环表达式条件时退出循环,执行n次,判断n+1次
初始化变量值
while 判断条件 :
执行语句
改变变量
使用while循环时注意它的格式
- '''计算0-4之间的总和'''
- a = 0
- s = 0 #定义初始化变量
- while a <= 4 : #条件判断
- s+=a #循环条件执行体
- a+=1 #改变变量 python中的a++
- print(s) #当print进行缩进,会依次打印出每一次循环的值
- '''1-100之间的偶数和'''
- i = 1
- sum = 0
- while i<=100 :
- if i%2 == 0 :
- i += 1
- print(sum)
- '''1-100之间的奇数和'''
- i = 1
- n = 0
- while i<=100 :
- if i%2 :
- n += i
- i += 1
- print(n)
-
对于求奇数和,由于0的布尔值为False,当i%2==0时结果为False,不会执行下一条语句; 当i%2==1时结果为True继续执行求和运算,因此求偶数和可以有另一种表达方式: not bool(i%2) 对i%2的布尔型进行取反操作。
for循环可以遍历任何序列的项目,如一个列表或者一个字符串,in表达从(字符串,序列)中依次取值,又称为遍历,要注意for-in循环的操作对象必须是可迭代对象
for 变量 in 可迭代对象:
代码块
- for item in 'python':
- print(item)
- #注意是依次取值, 定义一个变量item依次从字符串‘python’中取出每一个字母给item进行输出
- #for-in循环,先从‘python’中取出p赋给item,在进行打印输出,再进行下一次取值输出
p
y
t
h
o
n
在for-in循环中经常使用range()产生一个整数序列,也是一个可迭代对象
- for i in range(10): #依次打印了0-9
- print(i)
不使用变量可以用 下划线'_'代替控制循环
- for _ in range(5):
- print('人生苦短,我用python') #打印五次
- print('-----------使用for循环计算1-100之间的偶数和--------------')
- sum = 0
- for i_1 in range(1,101):
- if not bool(i_1%2):
- sum+=i_1
- print(sum)
注意:python中具有严格的格式缩进,对于上述例题,如果将print与if语句对其,则print语句就会进入循环,就会依次打印每一次的值
- i = 1
- sum = 0
- while i<=100 :
- if i%2 == 0 :
- sum += i
- i += 1
- print(sum) #print缩进,会进入循环
0
2
2
6
6
12.......
2450
2550 从0开始依次相加输出结果
python语言允许在一个循环体里嵌入另一个循环
- for i in range(1,4): #外面表示行数,执行三次,一次一行
- for j in range(1,5): #里面表示一行打印的个数
- print('*',end='\t')
- print() #一行四个*都打印完跳出循环,即换行输出
* * * *
* * * *
* * * *
end=''表示当打印完*号后不换行输出, 在使用 \t 后则在*号后增加一个制表位。
- for i in range(1,10):
- for j in range(i):
- print('*',end='\t')
- print()
思路:第一个for表示打印的行数,第二个for循环的range以i为参数,实现第一行打印一个,第二行打印两个...
- 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......
第三行print中的逗号可以使用+号代替,但要注意+号的对象是字符串类型,因此必须使用str()强制转换
print( str(i)+'*'+str(j)+'='+str(i*j),end='\t')
- i = 1
- while i<=9 :
- j = 1
- while j<=i:
- print(str(i)+'*'+str(j)+'='+str(i*j),end='\t')
- j+=1
- print()
- i += 1
使用while循环要注意 每一行打印的数量总是小于等于该行数 因此j<=i
- for i in range(5):
- for j in range(1,10):
- if j%2 == 0:
- break #break终止循环
- #continue #continue能打印出与条件相反的结果
- print(j,end='\t')
- print()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。