小白学Python,分享下我自己的学习笔记【二】

共 3192字,需浏览 7分钟

 ·

2021-12-26 03:38

大家好,我又来啦!第二次给蚂蚁老师投稿了,上次作为初级小白整理了最基础概念部分的学习笔记,不仅找到了很好学习方法,自信心还倍增。这一个周又向前迈了一大步,学习了计算机的流程控制中关于各种结构,以及里面的几种循环,并且通过分类能够区分它们之间的相似和不同处。也整理了流程控制语句break和continue、的用法和它们之间的区别、内置函数range的使用,以及它们跟各种循环的搭配使用,嵌套等使用。

程序的组织结构(计算机的流程控制)

任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组成。程序的组织结构包含以下三种:

1.顺序结构

2.选择结构:if语句

3.循环结构:while语句、for in语句

顺序结构

程序从上到下顺序地执行代码,中间没有任何的判断和跳转,知道程序结束 例:“把大象放进冰箱一共分几步”

例:“把大象放进冰箱一共分几步”

print('1.把大象门打开')
print('2.把大象放进冰箱')
print('3.把冰箱门关上')
1.把大象门打开
2.把大象放进冰箱
3.把冰箱门关上

选择结构

程序根据判断条件的布尔值选择性地执行部分代码,明确的让计算机知道在什么条件下,该去做什么。选择结构包含以下六种:

1.单分支结构

中文语义:如果......就......

语法结构:if 条件表达式:

    条件执行式  例:
money=1000   #余额
s=int(input('请输入取款金额'))  #取款金额
请输入取款金额600
if money>= s:   #判断余额是否充足,这是条件表达式
    money=money-s  #只有条件为True,才会执行
    print('取款成功,余额为:',money)
取款成功,余额为:400
2.双分支结构

二选一执行

中文语义:如果......不满足......就......   (二选一执行)

语法结构:if条件表达式:

    条件执行体1

else:


条件执行体2 例:从键盘输入一个整数,编写程序让计算机判断是奇数还是偶数
num=int(input('请输入一个整数'))
请输入一个整数8
if num%2==0:               #条件判断,如果是偶数和2的余数为0,奇数和2的余数为1. 二选一执行。
    print(num,'是偶数')     
else:
    print(num,'是奇数')
8 是偶数
3.多分支结构

多选一执行,常用于解决连续的区间段问题

中文语义:身高在180以上吗?不是

    身高在170-180之间吗?不是

身高在160-170之间吗?不是


身高在150-160之间吗?不是

身高在150以下吗?是

语法结构:if 条件表达式1:  (条件表达式的为True,就不会往下继续执行了,条件表达式1为False,就会继续往下执行2)

      条件执行体1

elif条件表达式2:

条件执行体2

elif条件表达式N:

条件执行式N

[else:] (方括号的else是可以省略的,可写可不写)

条件执行体N+1 例:从键盘录入一个整数成绩90-100 A 80-89 B 70-79 C 60-69 D 0-59 E 小于0或大于100 为非法数据(不在范围內)
score=int(input('输入一个成绩:')) 
输入一个成绩:98
if score>=90 and score<=100:
    print('A级')
elif score>=80 and score<=89:
    print('B级')
elif score>=70 and score<=79:
    print('C级')
elif score<=60 and score<=69:
    print('D级')
elif score>=0 and score<=59:
    print('E级')
else:
    print('对不起,成绩有误,不在有限范围')
A级
4.嵌套if

语法结构:

if 条件表达式1:#外分支结构条件表达式

if 内层条件表达式1:#内分支结构条件表达式,只有外分支结构的条件表达式1为True,才能执行此行

内存条件执行体1 #内分支结构条件执行式

else:

内存条件执行体2

else:条件执行体 #外分支结构的条件执行式,当外分支结构的条件表达式为False的时候,执行此行

例:会员    >=200  8折

     >=100  9折

不打折

非会员   >=200 9折

     不打折

例1:会员

answer=input('您是会员吗?y/n')
money=float(input('请输入您的购物金额'))
您是会员吗?y/ny
请输入您的购物金额300
if answer=='y':      #是会员
    if money>=200:
        print('打8折,付款金额为:',money*0.8)
    elif mone>=100:
        print('打9折,付款金额为:',money*0.9)
else:               #非会员
    if money>=200:
        print('打9.5折,付款金额:',money*0.95)
    else:
        print('不打折,付款金额:',money)        
打8折,付款金额为:240.0

例2:非会员

answer=input('您是会员吗?y/n')
money=float(input('请输入您的购物金额'))
您是会员吗?y/nn
请输入您的购物金额300
if answer=='y':      #是会员
    if money>=200:
        print('打8折,付款金额为:',money*0.8)
    elif mone>=100:
        print('打9折,付款金额为:',money*0.9)
else:               #非会员
    if money>=200:
        print('打9.5折,付款金额:',money*0.95)
    else:
        print('不打折,付款金额:',money)  
打9.5折,付款金额: 285.0
5.条件表达式

条件表达式是 :if......else的简写

语法结构:X if 判断条件 else Y

运算法则:如果判断条件的布尔值为True,条件表达式的返回值为X,否则条件表示的返回值为False

例:从键盘录入两个整数,比较两个整数的大小

num_a=int(input('请输入一个整数'))
num_b=int(input('请输入一个整数'))
请输入一个整数10
请输入一个整数20
if num_a>=num_b:
    print(num_a,'大于等于',num_b)
else:
    print(num_a,'小于',num_b)
10 小于 20

条件表达式的写法(简化代码),也就是if......else的简写写法如下:

print(str(num_a)+'大于等于'+str(num_b)  if num_a>=num_b else  str(num_a)+'小于'+str(num_b))

10小于20
6.pass语句

语句什么都不做,只是一个占位符,用在语法上需要语句的地方

什么时候使用:先搭建语法结构,还没想好代码怎么写的时候

哪些语句一起使用:

if语句的条件执行体

for-in语句的循环体

定义函数时的函数体
answer=input('您是会员吗?y/n')    #判断是否是会员
if answer=='y':
    pass        #没想好是会员的时候代码怎么写,先用pass搭建语法结构,这样语法不会报错  
else:
    pass       #没想好是会员的时候代码怎么写,先用pass搭建语法结构,这样语法不会报错 
您是会员吗?y/ny

循环结构

反复做同一件事情的情况,称为循环

循环结构的流程图

循环的分类:while

    for-in

while循环语法机构:

 while 条件表达式:

条件执行式(循环体)

选择机构的if与循环结构while的区别:if是判断一次,条件为True执行一行 while是判断N+1次,条件为True执行N次

#例:while 循环
a=1
#判断条件表达式
while a<10:       
    #执行条件执行体
    print(a)
    a+=1
1
2
3
4
5
6
7
8
9

while循环的执行流程

四部循环法:

初始化变量

条件判断

条件执行体(循环体)

改变变量 (初始化变量与条件判断的变量与改变的变量为同一个)

while循环的执行流程

例:计算0到4之间的累加和

sum=0                 #用于存储累加和
a=0                   #1.初始化标量
while a<5:           #2.条件判断
    sum+=a           #3.条件执行体(循环体)
    a+=1             #4.改变变量
print('和为',sum)    
和为 10

例:计算0-100之间的偶数和

sum=0
a=1
while a<=100:
    if a%2==0:        #替代代码  偶、奇数 if bool(a%2)==0:     if not bool (a%2): 
        sum+=a
    a+=1
print('1-100之间的偶数和',sum)
1-100之间的偶数和 2550

for-in 循环

in表达从(字符串、序列等)中依次取值,又称为遍历

for-in遍历的对象必须是可迭代对象

for-in 语法结构

for 自定义变量  in 可迭代对象:

循环体

for-in的执行图

循环体内不需要访问自定义变量,可以将自定义变量替代为下_线
for item in 'Python':
    print(item)
P
y
t
h
o
n
for i in range(10):
    print(i)
0
1
2
3
4
5
6
7
8
9

如果在循环中不需要使用自定义变量,可将自定义变量写为“_”

for _ in range(5):    
    print('我爱学习')
我爱学习
我爱学习
我爱学习
我爱学习
我爱学习

例:使用for循环计算1-100之间的偶数和

sum=0   #用于储存偶数和
for a in range(1,101):
    if a%2==0:
        sum+=a
print('1-100之间偶数和:',sum)
1-100之间偶数和: 2550

流程控制语句break

用于结束循环结构,通常与分支结构if一起使用

for ...in ... :

......                

if ... :

break

while(条件):

......                

if ... :

break

例:从键盘录入密码,最多录入3次,如果正确就结束循环

例1.(for ... in...)输入三次不正确就结束循环

for item in range(3):
    pwd=input('请输入密码:'
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')    
请输入密码:999
密码不正确
请输入密码:777
密码不正确
请输入密码:666
密码不正确
2.(for ... in...)输入正确就结束循环
for item in range(3):
    pwd=input('请输入密码:'
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')
请输入密码:888
密码正确

例3.用(while)输入三次不正确就结束循环

a=0                            #自定义变量
while a<3:                    #条件判断
    pwd=input('请输入密码:')  #条件执行体(循环体)
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')
    a+=1                      #改变变量
请输入密码:777
密码不正确
请输入密码:999
密码不正确
请输入密码:666
密码不正确

例4.用(while)输入正确就结束循环

a=0                            #自定义变量        
while a<3:                    #条件判断
    pwd=input('请输入密码:')  #条件执行体(循环体)
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')
    a+=1                     #改变变量
请输入密码:888
密码正确

流程控制语句continue

用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用

for ... in ...:

......

if ... :

continue

...

while(条件):

......

if ... :

continue

...

例:要求输出1到50之间所有5的倍数,5,10,15,20.....

for item in range(1,51):
    if item%5!=0:
        continue
    print(item)
5
10
15
20
25
30
35
40
45
50

else语句

与else语句配合使用的三种情况( if  ,else  ,while )

if......:

.....

else:

......

if条件表达式不成立时执行else

while......:

......

else:

......

for......:

......

else:

......

与while,for搭配使用,没有碰到break时执行else

例1:与for搭配使用时,遇到break

for item in range(3):
    pwd=input('请输入密码:'
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')
else:                                #这里的else是和for搭配使用的
    print('对不起,三次密码均错误')
请输入密码:888
密码正确
for item in range(3):
    pwd=input('请输入密码:'
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')
else:                                #这里的else是和for搭配使用的
    print('对不起,三次密码均错误')
请输入密码:777
密码不正确
请输入密码:666
密码不正确
请输入密码:999
密码不正确
对不起,三次密码均错误

例2.与while搭配使用时,遇到break

a=0
while a<3:
    pwd=input('请输入密码')
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')
    a+=1
else:
    print('对不起,三次密码均错误')
请输入密码888
密码正确
a=0
while a<3:
    pwd=input('请输入密码')
    if pwd=='888':
        print('密码正确')
        break
    else:
        print('密码不正确')
    a+=1
else:
    print('对不起,三次密码均错误')
请输入密码777
密码不正确
请输入密码999
密码不正确
请输入密码666
密码不正确
对不起,三次密码均错误

嵌套循环

循环结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环体执行

例:输出一个三行四咧的矩形

for i in range(1,4):           #行数,执行三次,一次是一行
    for i in range(1,5):       #列数,一行中执行4次输出
        print('*',end='\t')     #输出的是*,不换行输出
    print()

*	*	*	*	
* * * *
* * * *
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
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

二重循环中的break和continue

二重循环中的break和contiue用于控制本层循环

流程控制语句break与continue在二重循环中的使用

例:

for i in range(5):          #代表外层循环中要执行5次
    for j in range(1,10):   
        if j%2==0:
            break
        print(j)
1
1
1
1
1
for i in range(5):
    for j in range(1,10):
        if j%2==0:
            continue
        print(j,end='\t')
    print()
1	3	5	7	9	
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9

内置函数range()

内置函数:不需要加任何前缀,可以直接使用的函数(print,input都属于内置函数)

range()函数

用于生成一个整数序列

创建range对象的三种方式:

1.range(stop):创建一个[0,stop)之间的整数序列,步长为1
2.range(start,stop):创建一个[start,stop)之间的整数序列,步长为1
3.range(start,stop,step):创建一个[start,stop)之间的整数序列,步长为step

返回值是一个迭代器对象

range类型的特点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素

in与not in 判断整数序列中是否存在(不存在)指定的整数

1.第一种创建方式:只有一个参数(小括号中只给了一个数)

a=range(10)
print(a)     
range(0, 10)
print(list(a))    #用于查看range对象中的整数序列,默认从0开始,默认相差1称为步长,list是列表的意思
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2.第二种创建方式:给了两个参数(小括号中给了两个数)

a=range(1,10)     #指定了起始值,从1开始,到10结束(不包括10),默认步长1
print(list(a))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

3.第三种创建方式:给了三个参数(小括号中给了三个数)

a=range(1,10,2)
print(list(a))   #指定了起始值,从1开始,到10结束(不包括10),指定了步长2
[1, 3, 5, 7, 9]

判断指定的整数,在序列中是否存在   in与not in

print(10 in a)
False
print(9 in a)
True
print(10 not in a)
True
print(9 not in a)
False

对象的布尔值

python一切皆对象,所有的对象都有一个布尔值

获取对象的布尔值,使用内置函数bool()

测试对象的布尔值,以下对象的布尔值为False,其它对象的布尔值均为True

print(bool(False))
False
print(bool(0))   #数字0
False
print(bool(0.0))  
False
print(bool(None))  
False
print(bool(''))   #长度为零的空字符串
False
print(bool(""))   #长度为零的空字符串
False
print(bool([]))    #空列表
False
print(bool(list()))  #空列表
False
print(bool())     #空元组
False
print(bool(tuple()))   #空元组
False
print(bool({}))  #空字典
False
print(bool(dict()))  #空字典
False

对象的布尔值对执行的影响,例:

age=int(input('请输入您的年龄:'))  #输入的0的布尔值为False
请输入您的年龄:0
if age:
    print(age)
else:
    print('年龄为:',age)        #因为布尔值是False,所以执行了else
年龄为: 0


 最后,依然是推荐蚂蚁老师的《零基础学Python》的系列课程:



浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报