刻意练习Python基础 ——day 02:条件与循环

17天 —— Python基础刻意练习

Day 01——Task01:变量、运算符与数据类型
Day 02——Task02:条件与循环
Day 03——Task03:列表与元组(上)
Day 04——Task03:列表与元组(下)
Day 05——Task04:字符串与序列
Day 06——Task05:函数与Lambda表达式(上)
Day 07——Task05:函数与Lambda表达式(下)
Day 08——Task06:字典与集合
Day 09——Task07:文件与文件系统(上)
Day 10——Task07:文件与文件系统(下)
Day 11——Task08:异常处理
Day 12——Task09:else 与 with 语句
Day 13——Task10:类与对象(上)
Day 14——Task10:类与对象(下)
Day 15——Task11:魔法方法(上)
Day 16——Task11:魔法方法(下)
Day 17——Task12:模块
    



条件与循环
@[toc]





1.条件语句

刻意练习Python基础 ——day 02:条件与循环_第1张图片
  在Python中,条件语句(也称为条件分支语句)与类C语言中的条件语句使用方法大相径庭,区别在于将大括号包含分支部分改为缩进分支部分



 1.1.if语句

if 判断语句1:
    执行语句1
elif 判断语句2:
    执行语句2
else:
    执行语句3
  1. 如果 bool(判断语句1)True 将执行 “执行语句1” 块语句
  2. 如果 bool(判断语句1)False,将判断 “判断语句2”
  3. 如果 bool(判断语句2)True 将执行 “执行语句2” 块语句
  4. 如果 bool(判断语句2)False,将执行"执行语句3"块语句

注意:

  1. 每个判断语句后面要接上冒号 : ,以表示接下来是满足条件后要执行的语句块。
  2. Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif –elif –…–elif – else
  3. Python 使用缩进来区分分支部分,因此要特别注意 elifelse 的悬挂问题。

刻意练习Python基础 ——day 02:条件与循环_第2张图片



  1.1.1if语句的简单语句组

如果你的if语句的分支部分只有一条语句,你可以将该语句与if语句写在同一行中, 如下所示:

if(100 / 10 == 10): print("Uh...right!")
# Uh...right!


 1.2.assert断言

assert(断言) 用于判断一个表达式,在表达式条件为 False 的时候抛出异常。

assert True			# 条件为 true 正常执行
#

assert False		# 条件为 false 触发异常
# AssertionError

其等价于

if not expression:
    raise AssertionError

常用与程序检测时置入的检查点,只有条件为 True 才能让程序正常工作。

a = 5
assert a == 5		# 条件为 true 正常执行
#
assert a == 3		# 条件为 false 触发异常
# AssertionError






2.循环语句

不同于类C语言中有3种循环语句,Python只有for语句和whlie语句这2种循环语句,且与类C语言中的循环存在些许差异。


 2.1.while循环语句

while 判断语句:
    循环语句
其他语句

当判断语句为True时执行循环语句,执行结束后继续进行判断语句,若为True则执行循环语句,直至判断语句为False时才可执行接下来的其他语句。
刻意练习Python基础 ——day 02:条件与循环_第3张图片

  2.1.1while循环的无限循环

我们可以令判断语句恒为 True 来实现无限循环,唯有达成某种条件时break强制跳出循环或者** Ctrl+C **终止程序。无限循环常见于生活中,例如曾经的小游戏“跳一跳”就是基于此的。

ans = 51
while True:
	str = input("输入一个数字:")
	a = int(str)
	if(a == ans):
		print("猜对了")
		break
	elif(a > ans):
		print("太大了哦~")
	else:
		print("太小了哦~")
print("游戏结束~!")


  2.1.2while循环的else语句

在 while … else 在判断语句为 False 时执行 else 的语句块。

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")
   
# 0  小于 5
# 1  小于 5
# 2  小于 5
# 3  小于 5
# 4  小于 5
# 5  大于或等于 5


  2.1.3while循环的简单语句组

如果while中循环语句只有一条语句,你可以将该语句与while写在同一行中, 如下所示:

while(True): print("Uh...right!")
# Uh...right!
# Uh...right!
# Uh...right!
# Uh...right!
# Uh...right!
# Uh...right!
......

此时需要使用 Ctrl+C 来终止程序。



  2.1.4while循环的pass语句

Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,如下实例

while True:
	pass

此时程序将卡住,无法执行接下来操作,只能使用 Ctrl+C 来终止程序。

for i in ["C", "C++", "Perl", "Python"] : 
   if i == "Python":
      pass
      print ('pass')
   print ( i)
print ("Good bye!")

# C
# C++
# Perl
# pass
# Python
# Good bye!





 2.2.for循环语句

在Python中, for循环语句与其他类C语言有着很大的差别。

  2.2.1for循环语句与in语句

in语句与for循环语句结合,可以做到遍历in后面所跟的任何序列的项目,如一个列表或者一个字符串。

for i in [1,3,2,4,9,6]:
    print(i)
# 1
# 3
# 2
# 4
# 9
# 6


languages = ["C", "C++", "Perl", "Python"] 
for i in languages:
	print (i)
# C
# C++
# Perl
# Python



  2.2.2for循环语句的else语句

同while一样,在 for … else 在判断语句为 False 时执行 else 的语句块。

for i in [1, 2, 3, 4, 5]:
    if(i < 5):
    	print (i, " 小于 5")
else:
    print (i, " 大于或等于 5")
   
# 0  小于 5
# 1  小于 5
# 2  小于 5
# 3  小于 5
# 4  小于 5
# 5  大于或等于 5

:当在for循环语句中存在执行break语句时,跳出循环,且不执行else里面的语句块。

Language = ["C", "C++", "Python", "Perl"]
for i in Language:
    if i == "Python":
        print("I got you.")
        break
    print("Language " + i)
else:
    print("Not Language")
print("Done!")

# Language C
# Language C++
# I got you.
# Done!



  2.2.3for循环语句的简单语句组

同while一样,如果for中循环语句只有一条语句,你可以将该语句与for写在同一行中, 如下所示:

languages = ["C", "C++", "Perl", "Python"] 
for i in languages:print (i)
# C
# C++
# Perl
# Python

因为for中判断语句遍历了languages列表,使用的是类似于next指针的机制,当指向languages列表的最后一个元素时,next返回值为null,在for判断语句中为false,故终止循环。



  2.2.4 for循环语句与range()函数

如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:

for i in range(0,30,3):
    if(i % 2 == 0):
        print(i)
    else:
        i += 2
        print(i)

# 0
# 5
# 6
# 11
# 12
# 17
# 18
# 23
# 24
# 29

range(a,b,c)为生成数列[a, a+c, a+2c, … , a+nc],其中a+n*c循环体内变量i的改变对循环语句中变量i没有影响(可理解为两个为不同的变量)。





3.总结

  今天的内容较多,同时其内容也是语言中的精髓所在
  俗话说的好

     ~ 没有条件分支与循环的语言,就仿佛失去灵魂的咸鱼 ~

  所以今天的内容要熟记于心才可以哒~

你可能感兴趣的:(刻意练习Python基础 ——day 02:条件与循环)