python基础(三)

今日内容概要:

一、补充

二、可变不可变类型(重点)

三、赋值运算(重点)

四、身份运算(重点)

五、流程控制之if判断(重点)

内容详解:

一、补充

1、换行符

# 
 换行
print(('abc
def'))
print('abc
def')
# 	制表符(即空格,每种语言空格不同)
print('abc	def')
# 加空格
print('abc',end = ' ')
print('def',end = ' ')
print(123)

2、原生字符串(rawstring)

print('xxx is \nb')  #xxx is 
b   表示转意
print(r'xxx is 
b')#r的作用取消掉字符串中所有符号的意义

3、列表类型

存多个任意类型值,索引对应值

4、字典类型

存多个任意类型值,key对应值

5、布尔类型 

只有True 和 False

#直接定义布尔类型的变量值
tag = True
#通过比较运算得到布尔值
10  == 10   
3 > 2
#隐式布尔值
#隐式布尔值为False的数据类型有:0,None,空
#规则:从左至右,有优先级优先,算到哪返回值到哪
print(bool(0))#False
print(1 or 3)#1
print(1 and 3)#3
print(0 or False and 1)#False

二、可变不可变类型

# 1、可变类型:list,dict
# 在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变
#
# 2、不可变类型:int、float、str
# 在值改变的情况下,id号也跟着变了,也就是说内存地址变了,证明不是在改原来内存空间中的值,
# 而是申请了新的内存空间,产生了新的值,即原值不可变
# x=10
# print(id(x)) #8791401940928
# x=11
# print(id(x)) #8791401940960



# x=10.3
# print(id(x))#35870864
# x=11.4
# print(id(x))#34042832

# x="abc"
# print(id(x)) #34646256
# x="aBc"
# print(id(x))#35783344

# l1=[111,"aaaa"]
# print(id(l1))#36181696
# l1[0]=222222
# print(l1)#[222222, 'aaaa']
# print(id(l1))#36181696

# dic={'k1':111,'k2':222}
# print(id(dic))#6439744
# dic['k1']="abc"
# print(dic)#{'k1': 'abc', 'k2': 222}
# print(id(dic))#6439744


# 字典的value可以是任意类型,但是字典的key必须是不可变类型
# dic={1111111:"abc","k2":"def",3.1:'aaa'}
# print(dic[1111111])#abc
#
#
# # # 下面写法推荐使用列表代替
# dic={0:'egon',1:"egon1",2:"egon3"}
#
# print(dic[0])#egon
# print(dic[1])#egon1
# print(dic[2])#egon3

# 了解:不可哈希类型就是可变类型,可哈希类型就是不可变类型
dic={[1,2,3]:"abc"}#报错,字典中key要是不可变类型

三、赋值运算

# 1、增量赋值
# age=18
# age += 1
# print(age)

# 2、链式赋值
# x=10
# y=x
# z=y

# z = y = x = 10
# print(x, y, z)#10 10 10
# print(id(x), id(y), id(z))#8791399778240 8791399778240 8791399778240

# 3、交叉赋值
# m = 111
# n = 222
# temp=m
# m=n
# n=temp #交叉赋值可以将三横简化成一横 m, n = n, m
# print(m, n)

# 4、解压赋值
salaries = [1.1, 2.2, 3.3, 4.4, 5.5]
# mon0 = salaries[0]
# mon1 = salaries[1]
# mon2 = salaries[2]
# mon3 = salaries[3]
# mon4 = salaries[4]#解压赋值将5横简化成一横 mon0, mon1, mon2, mon3, mon4 = salaries
# print(mon0)
# print(mon1)
# print(mon2)
# print(mon3)
# print(mon4)

# 变量名的个数必须与包含的值的个数相同,多一个不行,少一个也不行
# mon0, mon1, mon2, mon3, mon4, mon5 = salaries#报错
# mon0, mon1, mon2, mon3 = salaries#报错

# mon0, mon1, mon2, *_ = salaries
# print(mon0)#1.1
# print(mon1)#2.2
# print(mon2)#3.3
# print(_)#[4.4, 5.5]

# *_, x, y, z = salaries
# print(x)
# print(y)
# print(z)

# x, *_, z = salaries
# print(x)
# print(z)


# dic={"k1":111,"k2":222}
# del dic['k1']
# print(dic)#{'k2': 222}
# dic["kkk"]=111
# print(dic)#{'k2': 222, 'kkk': 111}

# 对于字典来说解压赋值取出来的是字典的key
dic = {"k1": 111, "k2": 222}
x, y = dic
print(x, y)#k1 k2


# 了解
a,b,c,d,e="hello"
print(a,type(a))#h <class 'str'>
print(b)
print(c)
print(d)
print(e)

四、身份运算

is与==
# ==判断的是值是否相等
x = ['a', 'b']
y = ['a', 'b']
# print(x == y)

# is判断的是id是否相等
# print(id(x))#31188992
# print(id(y))#31214272
# print(x is y)#False

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

# x=None
# y=None
# # print(x == None)
# print(x is None)#True
# print(x is y)#True

# print((10 > 3) is True)#True
# print((10 > 3) == True)#True
# x=True
# y=True
# z=True
# print(id(x))#8791406315344
# print(id(y))#8791406315344
# print(id(z))#8791406315344

# 结论:如果要判断一个变量是否等于None、True、False,推荐使用is去判断
x = 10
y = 10
print(x is y)#True
print(x == y)#True
print(x == 10)#True
print(x is 10) # 不要这么用

五、流程控制之if判断

1、什么是if判断
判断 条件1 并且 条件2:
做什么事。。。
否则:
做什么事。。。

2、为何要有if判断
为了控制计算机能够像人一样去完成判断的过程

3、如何用if判断
# 1、介绍
# print('start....')
# if 3 != 3 and 10 > 8:
#     print("条件成立1")
#     print("条件成立2")
#     print("条件成立3")
# else:
#     print("条件不成立1")
#     print("条件不成立2")
#     print("条件不成立3")
# print('end....')

# if判断完整的语法
"""
if 条件1:
    子代码块1
elif 条件2:
    子代码块2
elif 条件3:
    子代码块3
...
else:
    子代码块
"""

# 2、必须要有的是if,只有一个if是可以的
# inp_name=input('你的名字: ')
# if inp_name == "egon":
#     print('输入正确')
#
# print('其他代码')

# 3、if+elif
# inp_name=input('你的名字: ')
# if inp_name == "egon":
#     print('您的身份是超级vip')
# elif inp_name == "张三":
#     print('您的身份是钻石vip')
# elif inp_name == "李四":
#     print('您的身份是铂金vip')
#
# print('其他代码')

# 4、if+else
# inp_name = input('你的用户名: ')
# inp_pwd = input('你的密码: ')
#
# if inp_name == "egon" and inp_pwd == "123":
#     print('登录成功')
# else:
#     print("刚刚输入的用户名或密码错误")
#
# print('其他代码')

# 5、if+elif+else
"""
如果:成绩>=90,那么:优秀

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

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

其他情况:很差
"""
# score = input("请输入您的成绩: ")
# score = int(score)
# if score >= 90:
#     print("优秀")
# elif score >= 80:
#     print("良好")
# elif score >= 70:
#     print("普通")
# else:
#     print("很差")


# 补充
# age = 19
# age >= 18 and age <= 20
# print(20 >= age >= 18)
# print(18 <= age <= 20)

# if判断嵌套if
print('ok0')
if 10 > 3:
    if 1 == 1:
        print('ok1')
        print('ok2')
    print('ok3')
print('ok4')
原文地址:https://www.cnblogs.com/guojieying/p/13045011.html