你打开了凯凯的第
4篇文章
现在我假设大家都已经安装了python程序和编辑器了
(没装的点
这里
)
今天说下python的数据类型
就像学英语一样,首先我们得学习26个字母才能去背单词,学习一门编程语言也要知道它最基础的数据类型才能学习其他东西
对于刚刚上完C语言的小伙伴,肯定对C语言的各种数据类型都已经掌握,像数组呀,布尔型呀,浮点型,整型呀,字符型呀,指针呀等等
其实编程语言都是挺相通的,学好了一门再去学另外一门就没那么困难了,对于python来说,它主要有下列几种数据类型
1. 数字(number)
2. 字典(dictionary)
3. 列表(list)
4. 布尔(bool)
5. 元祖(tuple)
6. 字符串(string)
下面给大家一一介绍一下这些都是啥玩意
number
数字分为整型和浮点型,像1,2,3,-1,0这种就是整型的
浮点数其实就是小数,之所以叫做浮点数是因为在科学记数法时,小数点的位置是可以变的,1.23 × 10^3和12.3 × 10^2是一样的,有时候一个浮点数太大或者太小,就可以用科学记数法表示,1.23 × 10^-6在python中就可表示成1.23e-6,e就代表10
数字就可以进行四则运算,+-*/都没问题,python也可以做到对数字进行取余(%)和乘方(**)的操作
-温馨提示:代码块可左右滑动-
bool
布尔型的数据只有两个,一个是逻辑真,即为True,一个是逻辑假,即为False,举个栗子,1 == 1 是真,1 == 2是假( = 表示赋值号, == 表示相等,以后会讲)所以我们用python的type函数查看一下这两个玩意的数据类型,发现真的是bool型
1>>>1==1
2True
3>>>1==2
4False
5>>> type(1==1)
6
7>>>type(1==2)
8
9
既然我们说了布尔型数据是逻辑型的,那么我们就可以用逻辑的"与或非"对其进行运算
python中的and、or、not分别代表了逻辑运算符"与或非"
A and B -只有当AB同时为True时,结果才为True
A or B -只要A或B为True时,结果就为True
not A -not是个单目运算符,如果A为True,则结果为False
1>>>TrueandFalse
2False
3>>>TrueorFalse
4True
5>>>notTrue
6False
7>>>1and4
84
Tips:
只要不为0的数据均是True,上题输入的1和4均为True,输出值4也为True
我们还可以结合数字表达式来更好地理解,比如 1 2 是错误表达式,所以它是False,这两个表达式的逻辑"与"也是False
1>>>1>2and1
2False
3# >
#号表示注释后面的内容
string
字符串是用''或者""括起来的任意的文本,像'xyz'和"xyz"都是字符串,两种表达都可以,但是当里面的文本含有引号时,就不能用相同的引号括起来了,比如我们想要表达I'm fine,就要用""将它括起来表示这是个字符串,如果想要表达I"m fine,就要用''括起来
1>>> a ="I'm fine"
2>>> b ='I'm fine'
3File "", line 1
4b = 'I'm fine'
5^
6SyntaxError: invalid syntax
7>>> print(a)
8I'm fine
9
第二种写法就会报语法错误
那要是字符串中的文本既有'又有"该怎么表示呢,这时要用到转义字符\,学过其他语言的应该对这个符号很熟悉了,它后面加一个符号或者字符表示改变后面一个字符的原意
\n表示换行符
\t表示制表符
\\表示\
以后还会讲到转义字符
那么这里我们如果要表示I'm "very" fine就可以像下面这样表示
1>>> a ='I\'m \"very\" fine'
2>>> print(a)
3I'm "very" fine
4
这样就可以打印出想要的字符串了
字符串也可以像数字那样进行运算,只不过不支持那么多运算符而已
+ 表示将两个字符串连接在一起,和JavaScript是一样用的
* 表示重复输出字符串
in 判断字符是否在字符串中,返回布尔值
[] 通过索引号获取字符串中的内容,就跟C语言的数组一样
1>>> a ='python'
2# 将字符串'python'赋值给变量a
3>>> a + a
4'pythonpython'
5>>> a *2
6'pythonpython'
7>>> a[4]
8'o'
9#索引号从0开始,所以a[4]对应的是python的第五个字符
python字符串有很多内置函数,如同C语言的strcmp、strlen等等,但是python提供了更多的函数,使得编程更加简单,下面介绍一下字符串常用的几个函数
lower/upper/capitalize
这一系列是关于字母的大小写的,lower函数将字符串中的字母全部变成小写后返回,upper正相反,是将字母全部变成小写,capitalize就是将字符串中的首字母大写,这一系列函数就大大便利了我们操作字符串
这些函数其实是字符串对象的一种"方法(method)",这是面向对象编程的知识。调用时就在字符串对象后面加个'.',再加上函数名,要打括号才能调用,否则他就会输出告诉你这是字符串类型的一个内建方法以及这个方法的地址
1>>> a.upper
2
3>>> a.upper()
4'PYTHON'
5>>> a.upper().lower()
6'python'
7>>> a.capitalize()
8'Python'
ord/chr
ord()函数接受一个字符参数,返回该字符的ASCII码,chr()函数与他对应,接受一个ASCII码值,返回该ASCII码所对应的字符
常用的ASCII码对应表
举个栗子
1>>> ord('b')
298
3>>> chr(98)
4'b'
encode/decode
这两个函数从字面意思来看是编码/解码,其实也就是这个意思,我们先来学习一下编码方式
那么我们最常用的两种编码方式就是ASCII码和utf-8编码,现在的网页为了不乱码都会在头文件中加上一句表示网页用utf-8编码,所以在python中,为了不乱码,一般也用的是utf-8编码方式
因此一般写程序会在程序首行加上两行内容
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
第一行是告诉Linux/Mac OS 系统这是一个python的可执行程序,在Windows上这行就是个简单的注释
第二行是声明让python程序用utf-8编码来执行代码,但是声明了不一定代表你在用这个编码,还得确保你在编辑器中的编码模式是utf-8
所以我们的可以指定一个字符串的编码方式,使其成为字节流(bytes)在网络上传输,也可以将网上读取的字节流解码,转换成字符串类型(str)
1>>>'python'.encode('utf-8')
2b'python'
3# 此时编码成为bytes字节流
4>>>b'python'.decode('utf-8')
5# 解码成为str字符串
6'python'
bytes类型的数据带前缀b
len
len就是length的缩写,返回的是一个字符串的长度,例如'python'的长度就是6,''的长度就是0
1>>> len('')
2
3>>> len('python')
46
以上就简单地介绍了python的三种数据类型及他们各自的一些性质,下一篇将介绍剩下的非常重要的列表(list)类型和字典(dictionary)类型以及元祖(tuple)类型
各位如果看得不过瘾的话,我这里还有一份当年自己做的Markdown格式易错笔记,想要的后台留言哦
-全文完-
领取专属 10元无门槛券
私享最新 技术干货