B站|B站马士兵python入门基础版详细笔记(5)

前言:
这是这篇文章是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+1print(b)

'''计算1-100之间的偶数和''' '''sum=0 a=0 while a<=100: sum=sum+a a+=2print('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+=iprint(sum)'''sum=0for i in range(101): if not i%2: sum+=iprint(sum)

【B站|B站马士兵python入门基础版详细笔记(5)】比如:求出100-999之间所有的水仙花数
在写水仙花数的时候,一定需要注意一点,python里面的/表示除法,不是整除,不能惯用C语言的知识去写'''importdecimal for item in range(100,1000): m=itema=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+=1print('-----多层循环中,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('密码正确') breakelse: 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): ifj-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学习笔记,如有问题,或者遗漏,希望可以指出,如果大家想要转发,请先通知本人。

    推荐阅读