-------------------------------写在开头--------------------------
最近两周会浅学一下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中一样,在此不多赘述。