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中找相应的数据类型来让计算机像自己一样去记下事物的状态。
posted @ 2020-03-04 19:42  给你加马桶唱疏通  阅读(399)  评论(0编辑  收藏  举报