数据类型

上海真的太热了,我觉得我离烧烤只差一撮孜然了......

数据类型

好!

首先来思考一下

什么是数据类型,为什么要对数据分类。

回想一下什么是变量,变量就是用来描述世间万物的状态的,那么世间万物中的任何一个都有很多属性,举个栗子

这里有个小伙子叫nick,身高接近160,体重130,喜欢吃仙人掌和钢丝球,这里的身高和体重都是可以用数字来形容的,可是喜欢吃的东西呢?很明显不行。这时候就引出了数据类型这个概念。

不同的的数据类型

数字类型
字符串类型
列表类型
字典类型
布尔类型

数字类型

一、整型(int)

1.1作用

用来表示人的年龄、各种号码等等

2.2定义
age = 18

完事儿

print(id(age))
print(type(age))
print(age)

4530100848
<class 'int'>
18

二、浮点型(float)

2.1作用

这就是用来表示有小数点的数据,不用过多解释。

2.2定义
salary = 2.1  # salary=float(2.1)

print(id(salary))
print(type(salary))
print(salary)

4569240656
<class 'float'>
2.1

整型和浮点型都可以用来加减乘除和逻辑判断。

字符串(str)

1.1作用

就是表示那些名字啊、爱好啊之类的,如nick吃钢丝球

1.2定义

字符串嘛,就是字符连起来的串串,羊肉串就是羊肉连起来的串串,字符串可放在单引号里,也可以放在单引号里。

name1 = 'nick'
name2 = "egon"
print(id(name1))
print(type(name1))
print(name1)

4418849624
<class 'str'>
nick

不加单双引号会报错哦

1.3如何用

问题来啦问题来啦

如果,我的字符串里面有引号呢。这个时候只需要注意,字符串里有单引号,那包括字符串的就应该用双引号,反则反之。

当两种引号都存在的时候,就上大杀器那就是三引号,单双都行,这个三引号还有个很屌的功能,就是它赋予了字符串换行的功能,如下:

name3 = """nick
chan"""

print(name3)
nick
chan

来和你们讲一下字符串的拼接对内存的使用情况。

我再来举一个栗子

你和一个人被通知要住到一块儿去,你会同意让他住你家吗?他也不会让你住他家,于是,这里就有了一个新家,给你们两个住。然后你们两个的家就会被空出来啦。

自己体会。

字符串的运算:字符串只能乘数字,不可以加减。

name = 'nick '
print(name * 10)

nick nick nick nick nick nick nick nick nick nick

关于字符串大小的比较,日后再讲,我没栗子了。

列表(list)与字典(dict)

讲完了字符串,就来侃侃列表和字典吧,为什么把这两个放一起讲呢,因为我认为这俩兄弟还是比较相像的,放在一起讲会比较好区分。

列表:他可以一次性存储很多数据,这些数据可以是很多数据类型,当然也可以是列表或字典。

字典:他有着他弟弟列表不具有的优点,那就是它是通过键值的形式来存储的。

列表形式

在[]内用逗号分隔开任意类型的值。

hobby = 'read'
hobby_list = [hobby, 'run', 'girl']
print(id(hobby_list))
print(type(hobby_list))
print(hobby_list)

4558605960
<class 'list'>
['read', 'run', 'girl']

字典形式

在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。

user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
             'company_info': ['oldboy', 'shanghai', 50]}

print(id(user_info))
print(type(user_info))
print(user_info)

4396183344
<class 'dict'>

看明白两者的相同点和不同点了吗?什么!不懂?那我来给你唠唠

列表就是能存很多数据,他通过下标来取数据,第一个就是0,第二个就是1,第n个就是n-1。但是如果一个列表有一千个数据,你要怎么取到中间的数据呢?难不成你一个个点过去?所以这个时候字典就更适合了,它可以通过键值,就是对数据的描述来取值,中间的如果是个体重,你就可以通过weight这个键值来取数据,除非设计这个字典的人他是瞎几把设计的键值,嘿嘿。

这个例子感觉不太好。。。。。。

如何取出列表的数据?

hobby_list = ['read', 'run', 'girl']
# 索引序号      0       1      2
# 取出第二个爱好
print(hobby_list[1])

run

如何取出字典的数据?

# 字典套列表
user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
             'company_info': ['oldboy', 'shanghai', 50]}
print(user_info['name'])
print(user_info['company_info'][0])

nick
oldboy

#这是一个列表套字典的例子
students = [
    {'name': 'nick', 'age': 19},
    {'name': 'egon', 'age': 18}
]
print(students[0]['name'])

nick

# 字典套字典
user_info = {'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': {
    'c_name': 'oldboy', 'c_addr': 'shanghai', 'c_num_of_employee': 50}}

print(user_info['name'])
print(user_info['company_info']['c_name'])

nick
oldboy

布尔值(bool)

我一直在想为什么叫布尔值,难道发明的人叫布尔?可不是吉多发明的python吗?

直到我看到了bool....b o o l.

感受到哲学的力量了吗?

布尔值只有两个,就是True和False。对和错。

注意一下,Python中的所有数据都自带布尔值,要么True要么False,只用记住只有0、None、空、False的布尔值为False,其余全都是True。

print(bool(0))
print(bool(None))
print(bool(''))
print(bool([]))
print(bool({}))
print(bool(False))

False
False
False
False
False
False

解压缩

来来来同志们♂我们来讲一下解压缩是什么

我们在使用列表的时候要取多个值怎么做呢?

name_list = ['nick', 'egon', 'jason']
x = name_list[0]
y = name_list[1]
z = name_list[2]
print(f'x:{x}, y:{y}, z:{z}')

???这样取??有这功夫?

name_list = ['nick', 'egon', 'jason', ]
x, y, z = name_list
print(f'x:{x}, y:{y}, z:{z}')

x:nick, y:egon, z:jason

这才是标准姿势啊!

可是如果我们只想要其中部分而不是全部呢?

有请嘉宾 “ _ ” 上台!

不想要的,用下划线就行啦。

name_list = ['nick', 'egon', 'jason', 'tank']
x, y, z, a = name_list
x, _, z, _ = name_list  # _相当于告诉计算机不要了,不能以_开头和结尾

还能有一个更骚的操作,只可意会不可言传。

name_list = ['nick', 'egon', 'jason', 'tank', 'kevin', 'jerry']
x, y, _, _, _, z = name_list
x, y, *_, z = name_list

写程序不是用来装逼的,关键是创造价值。python追求的是简洁性,代码不要写的太长了。因此字典也是可以的,但是字典解压缩的是key。

info = {'name': 'nick', 'age': 18}
x, y = info
print(x, y)

name age

虽然说我们需要的只是部分,但是解压缩拿出来的数据都是全部的,其他的数据全都在下划线中,变成了列表的形式。

Python与用户交互

为什么交互我就不说了吧,难道把程序写出来让他自己玩耍吗?至少现在还是需要人机交互的,给程序输入数据。比如去银行ATM取钱,你总得输入密码吧,如果是抢劫那就另当别论了。

name = input('请输入你的姓名:')
pwd = input('请输入你的密码:')

print(type(name))
print(type(pwd))

请输入你的姓名:nick
请输入你的密码:123
<class 'str'>
<class 'str'>

input()就是让你输入的方法,作用就是用来接收你的输入值,然后赋值给变量。

注意,无论你输入的是什么类型的数据,经过该方法之后都会变为字符串类型,到时候按照需要进行强制转换就好了。

posted @ 2019-07-30 16:08  chanyuli  阅读(340)  评论(1编辑  收藏  举报