2020-06-04

目录:

一、布尔型

1.1  显式的布尔值

1.2  隐式的布尔值

二、可变、不可变类型

2.1  可变类型:list,dict

2.2  不可变类型:int、float、str

三、赋值运算符补充

3.1  增量赋值

3.2  链式赋值

3.3  交叉赋值

3.4  解压赋值

四、身份运算

五、流程控制之if判断

5.1  什么是if判断

5.2  为什么要用if判断

5.3  怎么用if判断

5.3.1  只有一个if

5.3.2  if + elif

5.3.3  if + else

5.3.4  if+elif+else

5.3.5  if判断嵌套使用

一、布尔型

1.1  显式的布尔值

① 直接定义布尔类型的变量值tag=True

② 通过比较运算得到布尔值

10 == 10

3 > 2

1.2  隐式的布尔值

隐式的布尔值为False的数据类型有:0,None,空

除了隐式的三个数据外,其余所有的数据类型都为真

二、可变、不可变类型

2.1  可变类型: list,dic

在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变

2.2  不可变类型:int、float、str

在值改变的情况下,id号也跟着变,也就是说内存地址变了,证明不是在改原来内存空间中的值,而是申请了新的内存空间,产生了新的值,即原值不可变

其中,字典中的value可以是任意类型,但是字典的key必须是不可变类型,也就是说list和dict类型不能用作字典的key

dic={'k1':111,'k2':222}print(id(dic))

dic['k1']="abc"

print(dic)print(id(dic)) #dic的id不变

了解:不可哈希类型就是可变类型,可哈希类型就是不可变类型

三、赋值运算符补充

为使代码变得简洁又不失可读性,可以使用如下赋值方式:

3.1  增量赋值

age=18age+= 1 #age = age + 1

print(age)

3.2  链式赋值

x = 10y=x

z=y

以上三行代码可以用链式赋值写成一行代码:#z = y = x = 10

print(x, y, z)    # x,y,z的值都是10

3.3  交叉赋值

m = 1n= 2

# 当需要将m和n的值交换时:

temp=m

m=n

n=tempprint(m, n)

# 使用交叉赋值的方式,交换过程可以写成一行代码:

m = 1

n = 2m, n = n, m # 交叉复制操作print(m, n)

3.4  解压赋值

m = [1, 2, 3, 4, 5]a, b, c, d, e = m # 将列表的五个数据按顺序赋值给a、b、c、d、e

print(a)       #a = 1

print(b)       #b = 2

print(c)       #c = 3

print(d)        #d = 4

print(e)       #e = 5

a, b, c, *_ = m # 将列表的第一、二、三个数据按顺序赋值给a、b、c

print(a)       #a = 1

print(b)       #b = 2

print(c)       #c = 3

*_, a, b, c = m    # 将列表的第三、四、五个数据按顺序赋值给a、b、c

print(a)       #a = 3

print(b)       #b = 4

print(c)       #c = 5

a, *_, b, c = m   # 将列表的第一、四、五个数据按顺序赋值给a、b、c

print(a)       #a = 1

print(b)       #b = 4

print(c)       #c = 5

对于字典来说解压赋值取出来的是字典的key

dic= {"k1": 111, "k2": 222}

x, y=dicprint(x, y)    #输出 x = k1, y = k2

四、身份运算

is 比较的是id是否相同,== 比较的是值是否相同

#如果is判断的结果为True,那么二者的id一样,即二者内存地址一样,即二者就是一个东西,即值一定相等#如果==判断的结果为True,那么二者的值一样,但是二者的内存地址可能不一样

如果要判断一个变量的是否等于None、True、False,建议使用is去判断

五、流程控制之if判断

5.1  什么是if判断

判断 条件1 (并且 条件2):

做什么事。。。

否则:

做什么事。。。

5.2  为什么要用if判断

人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞

所以程序中必须有相应的机制来控制计算机具备人的这种判断能力

5.3  怎么用if判断

if是必须要有的

5.3.1 只有一个if

inp_name = input("你的名字:")if inp_name == "jsaon":print("输入正确")

...    # 下面的代码继续运行

5.3.2 if + elif

inp_name=input("你的名字: ")if inp_name == "Jason":print("您的身份是超级vip")

elif inp_name == "张三":

print("您的身份是钻石vip")

elif inp_name == "李四":

print("您的身份是铂金vip")

...    # 下面的代码继续运行

5.3.3  if + else

如简易的ATM程序:

inp_name = input('你的用户名:')

inp_pwd= input('你的密码:')if inp_name == "jason" and inp_pwd == "123":print('登录成功')else:print("用户名或密码错误")

5.3.4  if+elif+else

inp_score = input("请输入您的成绩:")

inp_score=int(inp_score)if inp_score >= 90:print("优秀")elif inp_score >= 80: #因为是否大于90已经在上一行判断过了,所以这一行省略了 and inp_score < 90

print("良好")elif inp_score >= 70: #同上

print("普通")else:print("很差")

5.3.5  if判断嵌套使用

ifTrue:ifTrue:print("hello")else:print("sorry")