python开发学习day04 (布尔型; 可变与不可变类型; 赋值操作; 身份运算is 和==; if判断)

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=18
age += 1      #age = age + 1     
print(age) 

3.2  链式赋值

x = 10
y = x
z = y
以上三行代码可以用链式赋值写成一行代码:
# z = y = x = 10
print(x, y, z)    # x,y,z的值都是10

3.3  交叉赋值

m = 1
n = 2
# 当需要将m和n的值交换时: temp=m m=n n=temp print(m, n)
# 使用交叉赋值的方式,交换过程可以写成一行代码:
m = 1
n = 2
m, 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 = dic
print(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判断嵌套使用

if True:
    if True:
        print("hello")
else:
    print("sorry")
原文地址:https://www.cnblogs.com/cui-cheng/p/13045917.html