6、可变不可变类型和运算符以及流程控制之if判断

一、可变不可变类型

1.1、什么是可变不可变类型

  可变类型:在id不可变的情况下,变量值可以改变,说明原值是可以改变的。例如列表、字典。

  不可变类型:变量值变了,id也变了,证明是产生了新的值,没有改变原值。例如整型、浮点型、字符串。

1.2、验证

1.2.1、整型int是不可变类型

  a=1

  print(id(a))

  a=2

  print(id(a))

1.2.2、浮点型float是不可变类型

  a=1.3

  print(id(a))

  a=1.4

  print(id(a))

1.2.3、字符串是不可变类型

  a='123'

  print(id(a))

  a='345'

  print(id(a))

总结:整型int、浮点型float、字符串str都被设计成一个整体,不可变类型。

1.2.4、列表list是可变类型

  a=['1','2','3']

  print(id(a))

  a[0]='4'

  print(id(a))

1.2.5、字典dict是可变类型

  a={'b':1,'c':2}

  print(id(a))

  a['b']=3

  print(id(a))

总结:列表list和字典dict是可变类型,字典的key必须是不可变类型通常为字符串,value可以为任意类型。

1.2.6、布尔类型为不可变类型

二、条件

2.1、什么是条件

  条件是两个事物发生联系时必须发生的性质。

2.2、为什么要有条件

  希望计算机能够相认一样通过条件,关联出结果。

2.3、怎么使用条件

  计算机中通常使用比较运算符来关联事物。例如:age=18。

三、运算符

3.1、逻辑运算

  逻辑运算符用于连接多个条件,并进行判断,会返回Ture或者False

3.1.1、not

  逻辑非,是将下一个条件的结果进行取反,与紧跟在后面的那个条件是不可分割的。

3.1.2、and

  逻辑与,是将左右两个条件进行连接,两个条件都是Ture,结果才是Ture。

3.1.3、or

  逻辑或,试讲左右两个条件进行连接,连个条件只要有一个是真的,结果就是真的。

3.1.4、优先级

  在单独一种运算符时,从做到右依次运算;

  在不同运算符号时,按照not>and>or的顺序进行运算。

3.1.5、偷懒原则:and的左右两边只要有一个为False,另一个不用判断,输出结果直接为false,如果两个都是Ture,输出结果是第二个数值。

        or的两边只要有一个Ture,另一个结果就不用判断,输出结果为第一个数值,两个结果都是Flase,输出False。

3.1.6、举例

  res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3

    Flase       False               False      True           False

3.2、成员运算符 in

  print( 'a' in 'hallo world' )

  print('a' in {'a':1,'b':2})

  判断一个字符是否在一个字符串中,也可以判断key是否在字典中。也可以用not in 代表不存在。  

3.3、身份运算符

  is 用来判断id是否相等。

四、流程控制之if判断

  流程控制就是控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前使用的从上到下依次运行就是顺序结构)、分支结构(使用if进行判断)、以及循环结构(使用while或者for)

4.1、什么是分支结构

  根据条件的不同走向去执行不同的选择。

4.2、为什么要有分支结构

  让计算机能够根据条件,去执行设定不同的结果,像人一样去判断。

4.3、怎么使用if分支结构

  if 条件一:

    代码一

    代码二

    。。。

  elif 条件一:

    代码一

    代码二

    。。。

  else :

    代码一

    代码二

4.4、示范

如果:成绩>=90,那么:优秀

      如果:成绩>=80且<90,那么:良好

           如果:成绩>=70且<80,那么:普通

      如果:成绩>=60且<70,那么:及格

           其他情况,不合格。

score =input('请输入你的成绩:')

score=int(score)

if score>=90:

  print('优秀')

elif score>=80:

  print('良好')

elif score>=70:

  print('普通')

elif score >=60:

  print('及格')

else:

  print('不及格')

 

posted @ 2020-03-06 22:06  疏星淡月  阅读(163)  评论(0编辑  收藏  举报