派森老师今天心情略微烦闷:
一是,好不容易捱过暑假,本想着可以见到朝思暮想,日夜渴求的被称为最美丽的漂娥琪漂老师,不曾想撞见佳人已入他人怀,恨得手上缺把刀;
二是,新学期到了,一大波小学生还有30秒达到战场,此刻,他的办公桌上堆积起着每位学生的个人资料,看着头都大了。
不过,鉴于上半年派森老师的绩效一举超过了贾瓦老师,他还是很有干劲的。
于是,派森老师拿起一位学生的资料,略了前几行:
姓名:王儿起麻子
年龄:7岁
入学成绩:59.99
是否住校:否
父亲:王没起麻子
然后开始繁忙而又辛苦的录入工作……
言归正传。
今天要和大家介绍python中基础的基础——数据类型。在前沿故事里,我大致道出了今天要讲的几种数据类型。
在大多数语言教程中,不管是python、java、php或者其他,第一个要讲的都是数据类型。
有的学习者一点就通;有的学习者却绕了进去,花大把的时间研究数据类型的使用方法和细节,诸如分类、切片等,而忽略了使用它们的目的。
就像那句话老说的:我们总是在不停地前进,却遗漏了路边的风景。
对于编程语言,不同数据类型有什么用?
你不妨问一下自己,从小学的1、2、3、4和汉语、英语有什么用?
无非是语言沟通、看懂文字、会做算数。
编程语言也一样,用一种人类和计算机(当然会有处理,如编译)都能看懂的表示方式,将人和计算机的交流联系起来,选择性代替人类的计算和思维。
so,我们以python的角度来看看学生的资料,也就简单了。
字符串(姓名)
姓名:王儿起麻子
如姓名这样,要用文字描述的,是字符串,在python中,可写为:
student_name = 'pock wang'
student_name = "pock wang"
单引号和双引号有区别吗?
一般情况,没区别,不过……
如果王儿起麻子并没有麻子(pock),只是一个外号,而外号需要加引号('pock')的情况下,就有区别了。
student_name = '\'pock\' wang' # 单引号内的字符串如果有引号,需要加入反斜杠\进行转义
student_name = "'pock' wang" # 双引号内则不需要,直接可以使用
如果使用单引号不加转义符,则会语法报错。
整型(年龄)
一般情况,我们说年龄,都是7岁,8岁,30岁等等,说的都是整数。
整数,即整型。
不过,你要说,老子虚六岁,老娘正是豆蔻年华、金钗之岁。
嗯,我这里有个叫巴掌的东西,要不要领略下?
在python中,整型通常写为:
age = 7 # 注意,是不加引号
如果加了引号会是什么?
就回了上一个知识点——字符串。
int是什么意思? 整型
str是什么意思?字符串类型
当然,要是派森老师的父亲,老派森尼克老师,他会这样去判断:
age是整型吗?是
age_2呢?不是
这下你明白了吧,不加引号,他仍旧是一个整型,加了引号,他就变成了字符串啦!
这是python语言的特点之一:语言干练,易于阅读。
如果是漂漂老师录入学生信息,她可能会这样去做:
$age = 7;
贾老师呢?
int age = 7
浮点型(入学成绩)
成绩这个东西啊,王儿起麻子越在意,越是吃不好,玩不开心,还得被妈老汉打!好比绩效,虽是没人打你,但你越在意,也只讨得不开心!
不过,给59.99,阅卷老师,你出来,我想打你!
在python中,带小数点的一样,只需写为:
score = 59.99 # 注意,也是不加引号滴
来,我们一起看看。
float是什么意思?浮点数类型
这儿留一个问题给大家实验:
3除以3的结果是整型还是浮点型。
强烈建议尝试一下,可能在不久的将来,你所从事的工作会因这儿的误判而出现bug!
布尔型(是否住校)
记起n年前,初中第一次离家住校,那是哭得我稀里哗啦,更别提一个小学生了。
有家人的陪伴和没有,对孩子的性格养成影响极大!
所以,我太同情王儿起麻子了。
对于是否住校,这儿加上了一个判断,是or否,也就是我们常说的布尔值。
换在编程语言中,就是True or False,相信在整型那儿,你已经见识过了,用isinstance判断数值的类型,得到的结果就是布尔值。
说简单点,在python中:
脑经急转弯:1加1在什么情况下大于2?
答:在算错的情况下!
但python很诚实,它不会算错,因此,判断为False
试试下面的判断行不行·,并找出原因:
print((1 + 1) = 2)
变量与常量
前面我们说了整型年龄,我们知道年龄是会随着年份的变化而变化的。
在python中,数值会变化的,我们叫做变量,顾名思义,会变化嘛!
比如:
age = 7 # 2018年
age = age + 1 # 2019年
age = age + 1 # 2020年,十三五规划的成果来啦!
print(age)
>>>
9 # print的结果,王儿起麻子,9岁啦!
这就是变量,变量我们习惯用小写单词加下划线表示(请养成这个习惯!)
如:
age
wang_age
pock_wang_age
命名是尽量简洁,不要觉得英文不好,就这样来写:
wang_nianling
wangerqimazi_de_nianling
WTF?
而王儿起麻子的父亲的姓名,王不起麻子,除非极特殊的情况,是不会改变的!
大人的名字,公安机关一般不予更改,即便更改了,也麻烦不断。
所以,类似这种不会更改或者极低得可能性更改的,我们叫做常量。
比如:
FATHER_NAME = 'non-pock wang'
常量我们习惯用大写单词加下划线表示(请养成这个习惯!)
正因为常量不会修改,我们往往把他统一保存在一个地方,即便要修改,也是很容易的事情,不会牵一发而动全身。但这一点涉及到类和包的概念,后面我再详谈。
好了,第一个学生的录入完成!
派森老师很开心,但是后面还有一连串的学生,每个人的姓名、年龄、成绩等等都不一样,他又该如何处理?
今日到此,就这么回事。