Python自学笔记2——控制结构

这部分主要介绍Python的控制结构(顺序、选择分支、循环),和一些特殊的语句(pass, try-except,assert等)

顺序结构

学过编程的应该都会吧,略

选择分支结构

Python的选择分支结构,即if-else语句。直接例子说明:

a=5
if a>10:
    print("a比10大")
elif a>5:
    print("a比5大但比10小")
elif a>0:
    print("a是小于等于5的正数")
else:
    print("a是负数")

注意是elif,不是else if!

循环结构

python的循环结构有两种,for循环和while循环;先看for循环,它的基本结构是:

for item in sequence:
    statements
#sequence可以是列表、字典等一个序列(下一个笔记会提到)
#以下面这个例子,a是一个列表,元素分别是1,3,5,7,9;for循环依次遍历所有元素,输出1,3,5,7,9;
#遍历完所有元素后,for循环结束
a=[1,3,5,7,9]
for i in a:
    print(i)  #1,3,5,7,9
#再举1个例子吧:
city=["Hangzhou","NewYork","London"]
for i in city:
    print(i)  #Hangzhou, NerYork, London
#字符串也是一个序列
a="Shanghai"
for i in a:
    print(i,"-")   #S-h-a-n-g-h-a-i

range类可以表示不可变序列的数字,通常表示for循环的具体次数。概念太抽象,直接看例子:

for i in range(5):
    print(i)    #0,1,2,3,4
for i in range(1,5):
    print(i)    #1,2,3,4
for i in range(1,10,2):
    print(i)    #1,3,5,7,9

for循环可以用break或continue退出。break表示还没结束就中途退出循环,continue表示跳过本次循环剩下的未执行步骤,直接进入下一次循环。比如:

for i in range(10):
    print(i)
    if i>3:
        break
    elif i<3:
        continue
    print("hahaha")  #输出结果:0,1,2,3,"hahaha",4

无论是for循环还是while循环,都可以在后面接一个else语句块,仅在程序正常退出时执行。

用break或return退出的,不执行else语句块内容。

#下面这段程序非正常退出,运行的输出是a,b
seq=["a","b","c"]
for i in seq:
    print(i)
    if i=="b":
        break
else:
    print("正常退出")

#下面这段程序是正常退出,运行的输出是a,d,c,"正常退出"
seq=["a","d","c"]
for i in seq:
    print(i)
    if i=="b":
        break
else:
    print("正常退出")
一些特殊的语句(其他语言似乎没有的)

1、pass语句,用于填补结构上的缺位,没有实际含义;例如

if a>5:
    print(a)
b=1
#如果觉得这么写不好看,可以改成
if a>5:
    print(a)
else:
    pass
b=1

这两种写法是一样的,但实现了if和else的贴贴。pass还可以用在其他地方:

while True:
    pass     #当必须执行while循环却没有任何语句供执行的时候
def function:
    pass     #当必须执行function这个函数,但函数体为空时
class A:
    pass     #当必须创建一个类却没有东西时

2、try-except语句

程序会先“尝试”执行try语句块的内容,如果报错则执行except的内容;程序不会退出。比如:

#假设把某文件中存储的一串数字读到列表a,并转换为float类型
#比如a=["1.2", "1.3", "2.7"]
for i in range(len(a)):
    a[i]=float(a[i])

#但是如果某次文件出错了,列表a的值变成了:["1.2","1.m","2.7"]
#这时上面程序执行a[1]=float("1.m")时会报错,程序退出
#我不希望程序退出,我希望程序能够接着处理剩下的数字,就可以写成:
for i in range(len(a)):
    try:
        a[i]=float(a[i])
    except:
        pass
#这时a=[1.2, "1.m", 2.7]

3、assert语句:断言

格式为:assert 条件,表达式;当条件不满足时返回AssertionError。

例如下面的例子,我断言a应该大于5;如果执行中发现a≤5,程序自动退出并报错"AssertionError: a should be greater than 5"。

assert a>5, "a should be greater than 5"

再举个例子吧,以前我一直觉得所有豌豆都是圆的,并和原皮们愉快的原着。但有一天我发现了一个皱皮豌豆。那我还能继续愉快的原吗?当然不能,我必须高呼一声“有皱皮?!?”

结语

到这里python的所有控制结构和一些特殊的语句就都介绍完了。有些可能没那么常用,比如assert,pass,循环后的else语句块;但作为基本的了解仍有必要。

真的完了吗?有没有觉得少了什么?——python目前仍不支持do-while循环,switch-case分支和goto跳转语句(但可以安装第三方库来使之支持goto)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值