社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

蚂蚁学Python • 4 年前 • 470 次点击  

大家好,我又来啦!第二次给蚂蚁老师投稿了,上次作为初级小白整理了最基础概念部分的学习笔记,不仅找到了很好学习方法,自信心还倍增。这一个周又向前迈了一大步,学习了计算机的流程控制中关于各种结构,以及里面的几种循环,并且通过分类能够区分它们之间的相似和不同处。也整理了流程控制语句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》的系列课程:



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/124834