03-02 python语法入门之基本数据类型
```python
1、数字类型(python没有定义数字类型,我只是把整型与浮点型做一个简单的归类)
1.1 int 整型
作用
- 用来记录人的年龄、电话号码、学生人数等相关的状态
定义
age = 18
id_card = 88888888
student_count = 66
print(type(age)) # <class 'int'>
1.2 float 浮点型
作用
用来记录人的升高,体重,薪资等小数相关状态
定义
height = 1.78
weight = 60.5
salary = 1.8
print(type(salary)) # <class 'float'>
1.3 数字类型的使用
赋值运算
game_level = 1
game_level = game_level + 1 # 等号右边的game_level通过变量名取到变量值1,加1,再绑定给game_level变量名,上面的1变量值应用计数为0,被当成垃圾回收。
print(game_level) # 2
数学运算
# 只有int类型可以和float跨类型运算
print(10 + 3.3)
比较大小
age = 18
print(age > 20) # False
2、字符串类型 str
作用
用来记录描述性质的状态,名字、家庭住址、性别等等等
定义
name = 'WangMao'
address = '江西省 鹰潭市'
sex = 'male'
用单引号、双引号和三单引号、三双引号都可以定义字符串,本质上是没有区别的,但是涉及到字符串的嵌套使用时就需要注意
# 1、单引号、双引号的嵌套配对问题
msg = "My name is '王毛'"
# 或者
msg = 'My name is "王毛"'
# 2、三单引号、三双引号表示的字符串可以写多行
info = """
每天收获小进步,积累起来就是大进步;每天收获小幸福,积攒起来便成大幸福。
"""
使用
字符串与变量名的区分
'xxx' # 代表的是值,类型是字符串类型
xxx # 代表的是变量名,语法错误,变量名需要绑定变量值才能使用
'name' = 'egon' # 语法错误,等号左边必须是变量名,变量名的命令不能有引号
字符串的相加(也叫拼接)
# 不推荐使用,因为字符串的拼接效率极低
print("My name is" + ' 王毛')
字符串的比较
# String 通过 内置函数 ord() 获得每个字符的 Unicode 编码进行大小比较
# 先比较第一个字母的Unicode值,如果相等, 就比较第二个,以此类推
print('a的unicode编码:', ord('a')) # 97
print('b的unicode编码:', ord('b')) # 98
print('c的unicode编码:', ord('c')) # 99
print('d的unicode编码:', ord('d')) # 100
print('a' > 'b') # 97 > 98,返回False
print('aa' > 'b') # 先比较第一个'a' > 'b'转换成unicode比较 97 > 98,返回False
print('abd' > 'abc') # 先比较第一个发现相同,接着比较第二个又发现相同,最后比较第三个'd' > 'c'转换成unicode比较 100 > 99,返回True
字符串的相乘(类似复制)
print('*' * 20) # ********************
print('Hello World!' * 2) # Hello World!Hello World!
3、列表 list
引入
如果我们需要用一个变量记录多个学生的姓名,用数字类型是无法实现,字符串类型确实可以记录下来,比如student_names='张三 李四 王五',但存的目的是为了取,此时若想取出第二个学生的姓名实现起来相当麻烦,所以这个时候就用到了列表类型。
作用
一般用来存放同一性质的值,按照位置记录多个值,比如:同一个人的爱好,同一个班级的学生,同一个人的12月的工资。
定义
在[]内用逗号隔开多个任意类型的值,一个值也称之为一个元素。
hobbies = ['play', 'music', 'sleep']
students = ['张三', '李四', '王二', '麻子']
salaries = [2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11, 2.12]
使用
列表是用索引对应值,索引代表的是数据的位置。正向索引从0开始,0代表列表中第一个元素。反向索引从-1开始,-1代表列表中最后一个元素。
取值
students = ['张三', '李四', '王二', '麻子']
# 正向取出'王二'这个学生
print(students[2])
# 反向取出'王二'这个学生
print(students[-2])
嵌套取值
students_info = [
['tony', 18, ['jack', ]],
['jason', 18, ['play', 'sleep']]
]
# 需求:取出第一个学生的第一个爱好
# 1、正向取
print(students_info[0]) # 第一步,结果:['tony', 18, ['jack']]
print(students_info[0][2]) # 第二步,结果:['jack']
print(students_info[0][2][0]) # 第三步,结果:jack
# 2、反向取
print(students_info[-2]) # 第一步,结果:['tony', 18, ['jack']]
print(students_info[-2][-1]) # 第二步,结果:['jack']
print(students_info[-2][-1][-1]) # 第三步,结果:jack
# 3、正反向集合取值
print(students_info[0][-1][0]) # jack
4、字典 dict
引入
如果我们需要用一个变量记录多个值,但多个值是不同属性的,比如人的姓名、年龄、身高,薪资用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义,这就用到字典类型
作用
一般用来存放不同性质的值,用key来对value进行描述,所以每个值value都有唯一一个与之对应的key,因此key通常为字符串类型。
定义
在{}内逗号分隔多个key:value对
info = {'name': '我不是王毛', 'age': 18, 'sex': 'male', 'salary': 1.3}
使用
字典类型使用可以对应值的,key可以对值具有描述性功能,通常为字符串类型。
取值
info = {'name': '我不是王毛', 'age': 18, 'sex': 'male', 'salary': 1.3}
# 需求: 取出个人信息中的他的薪资
print(info['salary'])
嵌套取值
students_info = [
{'name': 'tony', 'age': 38, 'hobbies': ['play', 'sleep']},
{'name': 'jack', 'age': 18, 'hobbies': ['read', 'sleep']},
{'name': 'rose', 'age': 58, 'hobbies': ['music', 'read', 'sleep']},
]
# 需求:取第二个学生的第二个爱好
print(students_info[1]['hobbies'][-1]) # sleep
5、布尔 bool
作用
用来记录真假这两种状态,一般用来记录只有2中状态的值。当然你也可以使用0表示假,1表示真,对于计算机来说,数字对它更加友好,执行效率更高。
定义
is_ok = True
is_ok = False
使用
通常用来充当判断条件,我们将在if判断中用到它。
总结:如何选取合适的类型来记录状态
- 1、选取的类型是否可以明确标识事务得状态
- 2、存不是目的,存的目的是为了日后取出来用,并且方便的取
- 3、把自己想象成一台计算机,如果我是计算机,我会如何以何种形式把事物的状态记到到脑子里,然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态。