前言:
这是这篇文章是B站学习python入门基础班的视频的第五章内容,主要讲述的是循环结构,主要包括while语句和for in语句。
一、 range函数
这个函数生成的是一个整数序列,他的返回值是一个迭代器对象,所以直接print它是没有用的,输出不了里面的值
所以要看它里面的值的话,得把他列表化,然后print才可以打印出来
range函数一般有三种书写方式:
1.如果只写一个参数,那么就默认这个参数是终止值,他的起始值默认是0,他的步长默认是1,就会产生一个以0开始,到终止值-1且步长为1的列表序列
a=range(20)
print(a) #输出range(0, 20)
print(list(a)) #输出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2.如果只写两个参数,那么这两个参数的第一个默认为起始值,第二个数默认为终止值,步长还是默认为1,会产生以第一个数为起始值,第二个数为终止值的步长为1的列表序列
a=range(10,20)
print(list(a)) #输出[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
3.如果写三个参数,那么这三个参数中第一个参数默认为起始值,第二个参数默认为终止值,第三个参数默认为步长,他就会产生以第一个数为起始值,第二个数为终止值,第三个数为步长的列表序列
a=range(10,20,3)
print(list(a)) #输出[10, 13, 16, 19]
4.一般用in 或者not in来判断在range生成的序列里面有没有这个数
print(10 in list(a)) #输出为True
print(15 in list(a)) #输出为False
print(10 in a) #输出为True,相当于使用了这个函数,所以就会计算这个函数,所以才会使True
print(1 in a) #输出为True
二、while循环
while的具体用法和C一样,无出其右罢了,下面只有几个代码示例
'''计算0到4的和'''
b=0
a=0
while a<=4:
b=b+a
a=a+1
print(b)
'''计算1-100之间的偶数和'''
'''sum=0
a=0
while a<=100:
sum=sum+a
a+=2
print('1-00之间的偶数和为:',sum)'''
sum=0
a=0
while a<=100:
if not bool(a%2): #bool将得到的对象强制转换成布尔类型True或者False
sum = sum + a
a+= 1
print('1-00之间的偶数和为:',sum)
三、 for item in 迭代对象
运行顺序如下:
首先它会将迭代对象的值赋值给item,然后执行次数就是迭代对象的迭代次数,目前迭代对象只包括range函数和字符串,列表(由于目前我只学到这些,就先写这些)
如果你不需要使用item,可以将其替换成_,这样,你就相当于只是使用了迭代次数.
'''sum=0
for i in range(0,101,2):
sum+=i
print(sum)'''
sum=0
for i in range(101):
if not i%2:
sum+=i
print(sum)
比如:求出100-999之间所有的水仙花数
在写水仙花数的时候,一定需要注意一点,python里面的/表示除法,不是整除,不能惯用C语言的知识去写
'''import decimal
for item in range(100,1000):
m=item
a=decimal.Decimal(item)%decimal.Decimal(10)
item=decimal.Decimal(item)//decimal.Decimal(10)
b=decimal.Decimal(item)%decimal.Decimal(10)
c=decimal.Decimal(item)//decimal.Decimal(10)
if a**3+b**3+c**3==m:
print(m)'''
print('--------------其实没有必要写decimal的类型')
for item in range(100, 1000):
m = item
a = item %10
item = item//10
b = item % 10
c = item // 10
if a ** 3 + b ** 3 + c ** 3 == m:
print(m)
四、break
是用来结束循环的一个语句,一般只用在循环结构中,分支和选择结构中,不用break
他只负责控制自己所在的循环,如果在多重循环中,他只负责结束自己循环的部分,不结束外层循环
'''输入密码,输入正确立即退出,输入错误,可以尝试三次'''
print('------------for_in---------------')
for item in range(3):
pwd=input('请输入你的密码:')
if pwd =='8888':
print('密码正确')
break
else:
print('密码错误,请重新输入,你还可剩余输入密码次数:',2-item)
print('-----------while-------------------------')
a=0
while a<3:
pwd = input('请输入你的密码:')
if pwd == '8888':
print('密码正确')
break
else:
print('密码错误,请重新输入,你还可剩余输入密码次数:', 2 - a)
a+=1
print('-----多层循环中,breake值结束自己循环的当前循环------------------------------------------')
for i in range(3):
for j in range(5):
if not j%2: #0%2的值为0,not之后变成了1,然后打印出了0
print(j,end='\t') #输出三行0
break
print()
五、continue
它的作用是立即跳出当前循环,进入下一循环
他只负责控制自己所在的循环,如果在多重循环中,他只负责结束自己循环的部分,不结束外层循环
""""输出1-50之间所有5的倍数"""
for item in range(1,51):
if not item%5:
print(item)
print('--------使用continue表示-----------------------')
for item in range(1,51):
if item%5:
continue
print(item)
print('-----多层循环中,continue值结束自己循环的当前循环------------------------------------------')
for i in range(3):
for j in range(5):
if not j%2:
print(j,end='\t')
continue
print()
六、else语句:
有三种搭配方式
1.和if搭配:和if搭配的时候,if语句或者else语句只执行其一即可
2.和while搭配:如果while语句执行完的时候,没有出现break,则执行else,如果出现break,则不执行else
3.和for搭配:和while搭配同理
for item in range(3):
pwd=input('请输入密码:')
if pwd=='8888':
print('密码正确')
break
else:
print('密码错误.')
else:
print('已经输入密码错误三次,请过90S之后再次尝试')
print('-------和while搭配-------------------')
a=0
while a<3:
pwd = input('请输入密码:')
if pwd == '8888':
print('密码正确')
break
else:
print('密码错误.')
a+=1
else:
print('已经输入密码错误三次,请过90S之后再次尝试')
七、循环嵌套
这个模块有三个实例
'''输出一个三行四列的矩形'''
#在print函数里面,end参数表示的是输出完成之后该做什么,默认情况下,end='\n',如果要求不换行的话,可以设置end=''或者end='\t'
for item in range(3):
for item1 in range(4):
print('*',end='\t')
print('')
'''输出一个直角三角形,最后一行是9个*'''
for i in range(9):
for j in range(1,10):
if j-i<=1:
print('*', end='')
print('')
for i in range(1,10):
for j in range(0,i):
print('*', end='')
print('')
'''输出一个9*9乘法表'''
for i in range(1,10):
for j in range(1,10):
if i>=j:
print(i, '*', j, '=', i * j, end='\t')
print('')
for i in range(1,10):
for j in range(0,i):
print(i, '*', j+1, '=', i * (j+1), end='\t')
print('')
后言:这只是个人做的python学习笔记,如有问题,或者遗漏,希望可以指出,如果大家想要转发,请先通知本人。