可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的
不可变类型:值改变,id也改变,证明是产生了新的值,并没有改变原值,证明原值是不可以被修改的
验证
# int是不可变类型
x=10
print(id(x)) # 140736198662080
x=11
print(id(x)) # 140736198662112
# float是不可变类型
x=2.1
print(id(x)) # 2106767272624
x=3.2
print(id(x)) # 2106767272336
# str是不可变类型
x='abc'
print(id(x)) # 1644325942576
x='qqq'
print(id(x)) # 1644326369200
# 小结:int、float、str都被设计成了不可分割的整体,不能够被改变
# list是不可变类型
l=[11, 22, 33]
print(id(l)) # 3199870035008
l[0]='AAA'
print(id(l)) # 3199870035008
# 布尔类型是不可变类型
# 字典是不可变类型
x={'k1':111, 'k2':222}
print(id(x)) # 3199870035008
x['k1']=333
print(id(x)) # 3199870035008
'''
关于字典补充:
定义:{}内用逗号分隔多key:value,
其中value可以是任意类型
但是key必须是不可变类型
'''
显示布尔值:
可以是比较运算符
age = 18
print(age > 16) # 条件判断之后会得到一个布尔值
可以是True、False
tag = True
print(tag)
隐式布尔值:所有的值都可以当成条件去用
其中0、None、空(空字符串、空列表、空字典等)代表的布尔值为False,其余的均为True
print(bool(0)) # False
print(bool(None)) # False
print(bool('')) # False
print(bool([])) # False
print(bool({})) # False
if语法
if 条件1:
代码块1
elif 条件2:
代码块2
...
else:
代码块3
??注意:
False
,其余的均为True
if应用案例
案例1:
# 如果:女人的年龄>30岁,那么:叫阿姨
age = 60
if age > 30:
print('阿姨')
案例2:
# 如果:女人的年龄>30岁,那么:叫阿姨,否则:叫小姐
age = 60
if age > 30:
print('阿姨')
else:
print('小姐姐')
案例3:
# 如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨
age = 18
height = 163
weight = 85
beautiful = True
if age >= 18 and age < 22 and height > 170 and weight < 100 and beautiful:
print('表白')
else:
print('阿姨')
案例4:
'''
如果:成绩>=90,那么:优秀
如果成绩>=80且<90,那么:良好
如果成绩>=70且<80,那么:普通
其他情况:很差
'''
score = 100
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('普通')
else:
print('不及格')
案例5:
# if嵌套
#在表白的基础上继续:
#如果表白成功,那么:在一起
#否则:打印。。。
age = 18
height = 163
weight = 85
beautiful = True
if age >= 18 and age < 22 and height > 170 and weight < 100 and beautiful:
print('表白')
respon = True
if respon:
print('在一起')
else:
print('打印')
else:
print('阿姨')
while循环语法
while 条件:
代码1
代码2
代码3
'''
while的运行步骤:
步骤1:如果条件为真,则自上而下的执行代码1、2、3...
步骤2:执行完最后一条代码时再次判断条件,如果条件为Treu则重复步骤1,如果条件为False,则结束循环
'''
while循环以应用案例
案例1:while循环的基本使用
# 用户认证程序
# 为了避免代码的重复,所以引入while循环
案例2:while+break的使用
#
案例3:while循环嵌套+break
案例4:while循环嵌套+tag的使用
案例5:while+continue的使用
案例6:while+else的使用
while循环练习
练习1:寻找1到100之间数字7最大的倍数(结果是98)
练习2:猜年龄
for循环语法
for 变量名 in 可迭代对象(字符串、列表、字典):
代码1
代码2
...
#例1
for item in ['a','b','c']:
print(item)
# 运行结果
a
b
c
# 参照例1来介绍for循环的运行步骤
# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
# 步骤3: 重复以上过程直到列表中的值读尽
for循环应用案例
案例1:打印数字0-5
案例2:遍历字典
案例3:for循环嵌套
for循环练习
练习1:打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print('{i} * {j} = {z} '.format(i=i, j=j, z=i*j), end=' ')
print()
练习2:打印金字塔
for line in range(0, 5):
for space in range(1, 5-line):
print(' ', end='')
for star in range(0, 2*line+1):
print('*', end='')
print('')
原文:https://www.cnblogs.com/guanxiying/p/12425960.html