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+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学习笔记,如有问题,或者遗漏,希望可以指出,如果大家想要转发,请先通知本人。

你可能感兴趣的:(B站,马士兵,python,python)