python机器学习之五 python的控制结构之顺序结构及分支结构

程序语言在执行时,一共有三种结构:

顺序结构:语句顺序执行

python机器学习之五 python的控制结构之顺序结构及分支结构_第1张图片

分支结构:到某个节点后,根据条件选择相应语句或语句块执行

python机器学习之五 python的控制结构之顺序结构及分支结构_第2张图片

循环结构:根据判断条件,循环执行相应语句或语句块

python机器学习之五 python的控制结构之顺序结构及分支结构_第3张图片

接下来,将开始这三种控制结构的学习。

  • 顺序结构

  顺序结构顾名思义,即是代码由上至下执行,没有分支也没有循环。

  • 分支结构

在分支结构里,将会给大家介绍:

  1. 单分支结构
  2. 二分支结构
  3. 多分枝结构
  4. 条件判断及组合
  5. 程序的异常处理

1.单分支结构

根据判断条件结果而选择不同向前路径的运行方式。

python机器学习之五 python的控制结构之顺序结构及分支结构_第4张图片

语法结构

if <条件>: 

  语句1 
  ....... 

其他语句

如:

#此段代码读取用户键盘输入的数字,如果数字等于99,打印出“猜对了”
guess = eval(input())#eval函数 去除字符串两侧的“”号
if guess == 99:
  print("猜对了")

 

2.二分支结构

根据判断条件结果而选择不同向前路径的运行方式

python机器学习之五 python的控制结构之顺序结构及分支结构_第5张图片

语法结构:

if <条件>:
    语句1
    .......
else:
    语句1
    .......
其他语句

#此段代码读取用户键盘输入的数字,如果数字等于99,打印出“猜对了”,否则打印出“猜错了”
guess = eval(input())
if guess == 99:
    print("猜对了")
else :
    print("猜错了")

二分支结构的紧凑形式

  适用于简单表达式的二分支结构

语法结构:

<表达式1> if <条件> else <表达式2>

判断条件是否为真,如果为真执行表达式1,否则执行表达式2

如上述代码的紧凑形式:

guess = eval(input())
#如果guess为99,向{}中填写“对”,否则填写“错”
print("猜{}了".format("对" if guess==99 else "错"))

3.多分支结构

根据多个判断条件的结果,选择语句执行

python机器学习之五 python的控制结构之顺序结构及分支结构_第6张图片

语法结构

if <条件1> :
    <语句1>
    .......
elif <条件2> :
    <语句2>
    ……
else :
    <语句N>
    ……

依次判断多个条件,如条件1满足,执行语句块1,执行完后跳出此次多分支结构。如条件1不满足,判断条件2,条件2满足执行语句块2,执行完后跳出此次多分支结构。如条件1、2均不满足,继续往下判断条件3、4....。若所有条件均不满足,最后执行else下的语句块(else及else下的语句块可一起省略,表示所有条件均不满足时,无相关执行语句)。

如:

#接受用户输入成绩,对用户输入的成绩进行成绩划分
# 60~70 D 70~80 C 80~90 B 90~100 A
score = eval(input())
if score >= 90 :
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
print("输入成绩属于级别{}".format(grade))

使用多分支结构时,需注意:

  注意多条件之间的包含关系

  注意变量取值范围的覆盖

  测试多个条件

如:

刚“接受用户输入成绩,对用户输入的成绩进行成绩划分”这个功能,错误代码段如下:

score = eval(input())
if score >= 60:
    grade = "D"
elif score >= 70:
    grade = "C"
elif score >= 80:
    grade = "B"
elif score >= 90:
    grade = "A"
print("输入成绩属于级别{}".format(grade))

该代码段忽略了条件之间的包含关系,只要输入大于60的任何数,100、80、90等,都会输出D。

 

4.条件判断及组合

①操作符

字符串比较:

  ==,!=,is  

  如:

  CurrencyStr[-1] is 'Y' #判断CurrencyStr字符串最后一个字符是否是Y

  **********is与==的区别**************************************************

==比较操作符和is同一性运算符区别

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:

例1.

>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> a == b
True

is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。通过对下面几个list间的比较,你就会明白is同一性运算符的工作原理:

例2.

>>> x = y = [4,5,6]

>>> z = [4,5,6]

>>> x == y

True

>>> x == z

True

>>> x is y

True

>>> x is z

False

>>> print(id(x))

3075326572

>>> print( id(y) )

3075326572

>>> print (id(z) )

3075328140
前三个例子都是True,这什么最后一个是False呢?x、y和z的值是相同的,所以前两个是True没有问题。至于最后一个为什么是False,看看三个对象的id分别是什么就会明白了。

参考:https://www.cnblogs.com/wangkun122/p/9082088.html

**********is与==的区别********************结束*****************************

数字比较:

  != , == , > , < , >= , <=

 

 

 

 

python机器学习之五 python的控制结构之顺序结构及分支结构_第7张图片

列表常用操作符:

in

  检查特定的值是否包含在列表、字符串中

  如:CurrencyStr[-1] in ['Y', '$'] #检查CurrencyStr这个字符串的字符是否是Y或者$

not in

  检查特定值是否不包含在列表中

②条件组合

通过连接词连接多个条件

python机器学习之五 python的控制结构之顺序结构及分支结构_第8张图片

 

5.程序的异常处理

num = eval(input("请输入一个整数: "))

print(num**2)

当用户没有输入整数时,会产生异常,程序终止执行。

python机器学习之五 python的控制结构之顺序结构及分支结构_第9张图片

在发生异常时,若希望不会影响程序继续执行,怎么处理?这时就需要使用try...except...语句捕捉相关异常。

语法结构:(异常类型可省略,表示捕捉所有异常)

try:
    语句1
    ......
except <异常类型>:
    语句1
    ......

在try语句块中执行语句,若发生异常,由except捕捉,捕捉后执行except块中的语句,执行结束后继续向下执行,不影响程序运行。

如:

#捕捉用户输入类型异常,当用户输入不是整数时,输出“输入不是整数”
try :
  num = eval(input("请输入一个整数: "))
  print(num**2)
except NameError:#标注异常类型,仅响应此类异常
  print("输入不是整数")

亦可,省略异常类型,响应所有异常:

#捕捉用户输入异常
try :
  num = eval(input("请输入一个整数: "))
  print(num**2)
except :#不标注异常类型,响应所有异常
  print("输入不是整数")

try....except...else

  else对应语句块3在不发生异常时执行:类似不发生异常时的奖励语句

语法结构:

try : 
 <语句块1>
except :
 <语句块2>
else :
 <语句块3>

try..catch...finally

  finally对应语句块无论是否发生异常,都一定执行。

语法结构:

try : 
 <语句块1>
except :
 <语句块2>
finally :
 <语句块3>

else与finally可以一同使用

语法结构:

try : 
 <语句块1>
except :
 <语句块2>
else :
 <语句块3>
finally :
 <语句块4>

 

你可能感兴趣的:(python学习,由浅入深掌握神经网络))