可变类型:存储空间保存的数据允许被修改,这种数据就是可变类型。值(堆区)改变,id不变,证明改的是原值,证明原值是可以被改变的。
常见的可变类型:
不可变类型:存储空间保存的数据不允许被修改,这种数据就是不可变类型。
值改变,id也变了,证明是产生了新的值,压根没有改变原值,证明原值是不可以被修改的。
常见的不可变类型:
注:
条件可以是比较运算符,可以是True、False,条件判断后会得到一个布尔值。
隐式布尔值:所有的值都可以当成布尔值(条件)去使用。其中0、None、空(空字符串、空列表、空字典)代表的布尔值为False,其余的都是True。
not就是把紧跟其后的那个条件结果取反,且not与紧跟其后的那个条件是一个不可分割的整体。
示例:
age = 16
print(not age > 13)
print(not age < 12)
#输出结果如下
False
True
and:逻辑与,and用来连接左右两个条件(条件1 and 条件2),两个条件同时为True,最终结果才为True。当多个and语句同时出现时,所有条件全为真,最终结果才为真。有一个条件为假,最终结果就为假。
示例:
print(True and 10 > 3)
print(True and 10 > 3 and 10)
print(0 and 10 > 3 and 10 and 1 > 3 and 4 == 4 and 3 != 3)
#输出结果如下:
True
10
0
or:逻辑或,or用来连接左右两个条件,两个条件但凡有一个为True,最终结果就为True。两个条件都为False的情况下,最终结果才为False。
示例:
print(3 > 2 or 0)
print(10 or 3 != 2 or 3 > 2 or True)
#输出结果如下
True
10
not > and > or
如果单独就只是一串and连接,或者说单独就只是一串or连接,按照从左往右的顺序依次运算即可。
如果是混用,则需要考虑优先级。
示例:
res = 3 > 4 and not 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3
#上边代码块等价于下边代码块
res = (3 > 4 and (not 4 > 3)) or (1 == 3 and 'x' == 'x') or 3 > 3
print(res)
#输出结果如下
False
括号的优先级或改变逻辑运算的,一般混用运算时,先把not的语句用括号括起来,然后把and两端连接的两个语句用括号括起来,最后进行运算即可。
成员运算符in适用于字符串,用于判断一个子字符串是否存在于一个大字符串中。
示例:
print('egon' in 'hello egon')
#输出结果如下
True
#判断元素是否存在于列表
print(111 in [111,222,333])
#输出结果如下:
True
#判断key是否存在于字典
print(111 in {
'k1':111, 'k2':222})
print('k1' in {
'k1':111, 'k2':222})
#输出结果如下
False
True
#notin
print('egon' not in 'hello egon')
print(not 'egon' in 'hello egon')
#逻辑上两者相同,但是代码块1语义更明确,推荐使用。
#输出结果如下
False
False
身份运算符用于比较两个对象的存储单元。
is是判断两个标识符是不是引用自一个对象,即值的id是否相等。
is not是判断两个标识符是不是引用自不同对象,即值的id是否不相等。
示例:
x = 10
y = 10
print(x is y)
#输出结果如下
True
if 条件:
代码1
代码2
代码3
示例:
age = 18
is_beautiful = True
star = '水瓶座'
if 16 < age < 20 and is_beautiful and star == '水瓶座':
print('yes')
print('其他代码。。。。。。。。。。')
#输出结果如下
yes
其他代码。。。。。。。。。。
if 条件:
代码1
代码2
代码3
else:
代码1
代码2
代码3
else在if条件不成立时才能运行
示例:
age = 18
is_beautiful = True
star = '水瓶座'
if 16 < age < 20 and is_beautiful and star == '水瓶座':
print('yes')
else:
print('no')
print('其他代码。。。。。。。。。。')
#输出结果如下
yes
其他代码。。。。。。。。。。
if 条件1:
代码1
代码2
代码3
elif 条件2:
代码1
代码2
代码3
elif 条件3:
代码1
代码2
代码3
elif 条件4:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
示例:
score = int(input('请输入您的成绩:'))
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >=70:
print('普通')
else:
print('很差,小垃圾')
示例:
age = 18
is_beautiful = True
star = '水瓶座'
if 16 < age < 20 and is_beautiful and star == '水瓶座':
print('yes')
is_successful = True
if is_successful:
print('success')
else:
print('no')
print('其他代码。。。。。。。。。。')
#输出结果如下
yes
success
其他代码。。。。。。。。。。