首页 > 代码库 > DAY01 - 变量、数据类型、流程控制
DAY01 - 变量、数据类型、流程控制
执行方式:
1. 交互的方式:
- 优点:即时调试程序,调试方便
- 缺点:无法永久保存代码
2. 文件的方式:
- 优点:永久保存代码
- 缺点:不能即时调试代码
执行步骤:
1. 先启动Python解释器
2. Python解释器把文件内容从硬盘读入内存
3. 读入内存后,再解释执行
变量
变量:变化的量
定义一个变量有三个特征:
id: id(x)
type: type(x)
value: x
注意:Python中的变量名没有储存值的功能,变量名与变量值只是一种绑定关系。
为变量x赋值,Python解释器开辟一段内存空间,值的引用计数加一。当值的引用计数为零,即没有任何绑定,Python解释器自动清理内存空间。手工解除绑定可以用del(x)
程序交互
输入: input(),把结果赋值给变量,类型为字符串。
注释: 井号(单行注释)、三个引号(多行注释)
数据类型
值的数据类型
数字(单值)、字符串(单值)、列表(多值)(值可以是任意类型)、字典(采用key: value的方式存储值)(多值)(每个value可以是任意类型,但key必须是不可变数据类型)、布尔类型
- 列表取值
要取得列表内的元素,需要通过下标,从0开始
1 L = [1, ‘abc‘, [2, 3]] 2 L[0]
>>> 1 3 L[1]
>>> ‘abc‘ 4 L[2]
>>> [2, 3] 5 L[2][1]
>>> 3
- 字典取值
D={‘user‘:‘PatHoo‘, ‘passwd‘:‘123‘}
通过key的方式取值
1 D={‘user1‘:[‘123‘,1],‘user2‘:[‘abc‘,3]} 2 D[‘user2‘][0]
>>> ‘abc‘
- 字符串拼接
加号、乘号
1 F="Pat" 2 L="Hoo" 3 F+L
>>> ‘PatHoo‘
4 name = "PatHoo"
5 name * 3
>>> ‘PatHooPatHooPatHoo‘
不可变数据类型(或可hash类型):值(value)变了,id跟着变化。如:数字、字符串
可变数据类型(或不可hash类型):id不变,类型(type)不变,值(value)变了。如:列表、字典
格式化输出
%s 占位符,可以用于任意类型
%d 占位符,只能接受数字类型
1 name = "PatHoo" 2 age = 30 3 print("my name is %s, my age is %d." % (name, age))
>>> my name is PatHoo, my age is 30.
逻辑运算
and:左边为False,不执行右边的判断
or:左边为True,不执行右边的判断
True or False and False
==> True
(True or False) and False
==> False
流程控制
Python用缩进(4个空格)来标识代码级别
break:跳出本层循环
1 count=1 2 while count <= 100: 3 if count == 10: 4 break #跳出本层循环 5 print(count) 6 count+=1
continue:跳过本次循环
1 count=1 2 while count <= 100: 3 if count > 3 and count <= 96: 4 count+=1 5 continue #跳过本次循环 6 print(count) 7 count+=1
tag法,控制多层嵌套循环的快速退出
1 count = 0 2 tag = True 3 while tag: 4 if count > 2: 5 print(‘too many tries‘) 6 break 7 user = input(‘user: ‘) 8 password = input(‘password: ‘) 9 if user == ‘PatHoo‘ and password == ‘123‘: 10 print(‘login successful‘) 11 while tag: 12 cmd = input(‘>>: ‘) 13 if cmd == ‘q‘: 14 tag = False 15 continue 16 print(‘exec %s‘ % cmd) 17 else: 18 print(‘login err‘) 19 count += 1
while+else:while没有被break打断时,才执行else的子代码
1 count=1 2 while count <= 5: 3 if count == 2: 4 break 5 print(count) 6 count+=1 7 else: #while没有被break打断的时候才执行else的子代码 8 print(‘=========>‘)
补充
链式赋值(a=b=c=10)
值交换(x,y=y,x)
>>> x=10 >>> y=20 >>> x, y = y, x >>> x,y (20, 10)
DAY01 - 变量、数据类型、流程控制