【纯新手向】Python的 if 语句 与 循环语句

-------------------------------写在开头--------------------------

        最近两周会浅学一下Python。借此机会记录一下自己的学习过程,同时也是一个上手写博客的机会。

        本人是本科计算机专业在读,所以有一定的计算机基础,但是水平有限,而且也是第一次写博客,所以肯定会有说的不对或者不好的地方,如果有人刷到这些文章,请您带着批判,指导,或者是参考的心态浏览,不要尽听尽信,保持独立思考,感谢。

        第三篇文章主要学习一下Python的 if语句循环语句

Python的if语句

        python的if语句整体格式和其他语言也没什么差别,先列一个基本格式在这:

if condition_1:  # 如果条件1为真
    statement_block_1  # 则执行语句块1
elif condition_2:  # 否则如果条件2为真
    statement_block_2  # 则执行语句块2
else:  # 否则
    statement_block_3 # 则执行语句块3

        稍微解释一下,if就是“如果”的意思,它后面的语句就是判断语句,为真(True)才能执行下面的语句(statement_block_1)。elif其实是else if,也就是“否则如果”的意思,这个关键字必须跟在 if 关键字(或者elif)之后使用,因为它是在前面条件不满足的情况下继续判断下一个条件,前提必须是“前面条件不满足”。else就是“否则”的意思,它也是必须跟在 if 或者 elif 后使用,它使用的前提也是“前面条件不满足”,它和 elif 的区别是,它不需要做任何判断,只要前面都不满足,它必定会执行它自己的结构语句(上面例子里的statement_block_3)。下面写一个小例子,加深理解:

money = int(input("我有这么多钱:"))  # input是输入函数,int是转型函数
if money >= 10000:
    print("我要出去旅游!")
elif money >= 5000:
    print("我想买一台PS5!")
elif money >= 3000:
    print("那买一台Switch吧!")
elif money >= 1000:
    print("steam上买点游戏玩玩也行。")
else:
    print("吃点好的吧。")

        当我们输入18000时,会输出“我要出去旅游!”那明明 >= 5000,>=3000,>=1000都是满足的,为什么不执行下面几个语句呢?因为我们用的是 elif 和 else ,它们必须在前面不满足的前提下才会执行,18000显然已经满足 >=10000 了,所以底下都不会执行。

        那如果我们想让它们也执行怎么办?只要把 elif 和 else 改成 if 就行了:

money = int(input("我有这么多钱:"))
if money >= 10000:
    print("我要出去旅游!")
if money >= 5000:
    print("我想买一台PS5!")
if money >= 3000:
    print("那买一台Switch吧!")
if money >= 1000:
    print("steam上买点游戏玩玩也行。")
if money < 1000:
    print("吃点好的吧。")

 

        每一个if语句其实是相互独立的,其他语句执行不执行完全不影响我自己的判断,就比如说前面都执行了,但最后一个 money < 1000 的语句不满足条件,所以就它不执行。

        elif 和 else 是可以不加的,但如果要加一定要跟在 if 或 elif 后面写,不可以单独写。

Python的while循环

        while循环的结构如下:

while condition:
    statements

        while的意思是“当”,while后面的判断条件(condition),只要为真,就可以一直执行语句(statements)。举个例子:

circle = 1
while circle <= 5:
    print("跑第", circle, "圈")
    circle += 1

         当 circle 小于等于5圈的时候,就会一直跑下去,运行看一下:

        circle = 5的时候依然满足 circle <= 5,所以会跑第五圈,跑完后 circle += 1,circle 变成了6,不再满足条件,所以跑步到此为止。

        那如果说,我根本跑不到第5圈我就吃不消了,想提前走怎么办,此时就要介绍跳出循环的语句:break。先举例子:

circle = 1
target = int(input("你觉得你能跑多少圈\n"))  # 给自己定目标
while circle <= 5:  # 当圈数小于等于5的时候
    print("跑第", circle, "圈")  # 跑一圈
    circle += 1  # 圈数加一
    if circle == target + 1:  # 如果圈数等于目标圈数加一,写成大于目标圈数也是一样的效果
        print("顶不住了,哥们儿溜了")  # 说句顶不住了
        break  # 开溜

  

        target是我们的目标,我们自己定的是3圈,那么跑到第四圈的时候我们就直接溜了,具体的解释看代码上的注释吧。

        python中没有 do-while 的循环体。不过while后面可以接一个else。如果while后面的条件语句为假(False)时,就会执行else里的语句块。但是跳出是不算语句块为假的,所以跳出并不会执行else里的语句块。继续看刚刚的例子:

circle = 1
target = int(input("你觉得你能跑多少圈\n"))
while circle <= 5:
    print("跑第", circle, "圈")
    circle += 1
    if circle == target + 1:
        print("顶不住了,哥们儿溜了")
        break
else:
    print("顺利完成跑圈")

        当我们提前跳出时我们可以发现“顺利完成跑圈”这句话没有被打印,那是因为else并没有执行,那如果我们多跑两圈,超过5圈会怎么样呢?

        很显然,这次else里的语句块成功执行了。

        既然看到了break,那么我们不妨把它的亲兄弟continue也学了吧。break 和 continue 从单词意思上看就能看出区别,break明显更暴力一点,它会直接“破坏”循环,让大家都执行不了,就像上面的例子一样,跑完第三圈不想跑了,直接break,那么第四圈第五圈都不会跑。continue则更温柔一点,它只会稍微休息一下,然后“继续循环”,比如说接着刚刚的例子:

circle = 1
target = int(input("你觉得你能跑多少圈\n"))
while circle <= 5:
    print("跑第", circle, "圈")
    circle += 1
    if circle == target + 1:
        print("顶不住了,休息一下")
        continue
else:
    print("顺利完成跑圈")

 

        可以看到把break换成continue后,只是在跑完第三圈后休息了一下,后面的圈数还是照样跑了的。可能这样并不直观,continue的作用其实是跳过continue语句之后的句子,本次循环不再参与,而break的作用是直接跳出整个大循环,也就是while直接结束了。可能说得不是很清楚,建议大家上手自己试一下,比如说把上面例子里的 circle += 1 放到continue后面,看看会发生什么。

Python的for循环

        python的 for 循环可以遍历任何可迭代对象,比如一个列表或者一个字符串,它的基本格式是这样的:

for <variable> in <sequence>:
    <statements>

         这个用语言解释起来略显麻烦,直接上例子:

for i in (1, 2, 3, 4, 5):
    print(i)

 

        简单地说,i(variable)会依次变成 (1,2,3,4,5)(sequence) 里的值,然后执行底下的print(i)(statements)语句。(1,2,3,4,5)这里的小括号(),也是可以换成[],{}的,具体的区别以后再说,现在先用起来。

        当需要遍历的元素过多时,我们也可以用range函数,如下:

for i in range(5):  # 0-4
    print(i)
for i in range(1, 6):  # 1-5 (左闭右开)
    print(i)

         这两个for循环会打印 0-4 和 1-5。当然range函数还有稍微复杂一点的用法,但暂时不需要知道那么多,要用的时候会知道的。

        另外字符串也是可以遍历的,稍微举两个例子就不多说了:

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    print(site)

word = 'runoob'
for letter in word:
    print(letter)

        和while一样,for循环后面也是可以接else语句的,同时for循环中也可以使用break和continue,效果和while中一样,在此不多赘述。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值