您的位置:首页 > 编程语言 > Python开发

python学习(3)--数据类型

2017-10-23 22:16 267 查看
 1.python基本数据类型有五种:数字、字符串、列表、元组、字典。今天给大家介绍数字和字符串这两种。

(1)python中数字主要分为整型、浮点型、以及复数这三种。

在python中为我们提供了type函数,这个函数返回的是一个数据类型,python代码如下:   

print(type(123))
print(type(123.0))
print(type(3E+2J))
打印结果为:



      通过打印可以发现123为int整型;123.0为float浮点型;3E+2J为complex复数型.在我们常见的java或C函数中,函数的参数要么整型或浮点型,从未见过一个函数既能处理整型参数,又能处理浮点型参数,而且参数只有一个,这是因为在python中无论是int还是float,python都将他们作为对象处理,可以理解为type函数接收的只是一个引用,type函数处理的是引用的内容,当获取到引用内容过后,通过内部的代码判断出引用指向内容的类型,最后返回数据的类型。这里大家只要知道,在python中无论是float还是int或者其他数据类型,python都当做对象来处理。

(2)字符串在python是一种很常见的数据类型,也非常的重要;

      一个变量若要赋值为字符串类型,只需a='123'或者a="123",单引号或者双引号并没有什么不同。可以通过打印字符串来进行证明:

print(id("123"))
print(id('123'))
结果如下:



可以看出"123"和‘123’是一样的

(3)但是会遇到一些情况,单引号和双引号要进行区分

下面举个例子,代码如下:

print("let's go")
print('let"s go')
print("let's \"go\"")
结果如下:



打印let's go必须用双引号括起来,如果字符串中只有单引号那么只能用双引号括起来,同理只有双引号,用单引号括起来,如:'let'' go';如果字符串中既有单引号,又有双引号那么需要先对其中一种引号进行转义,然后并将字符串用被转义的引号括起来,例如:"let's \"go\" "也可以写成'let\'s "go"'

下面介绍一下三重引号:先看代码:

str1="\"liming\"\nand\n'janny'"
print(str1)
我先不打印结果,给你三秒钟猜猜结果是啥,大概没猜出来吧,嘿嘿,其实结果如下啦



这里有单双引号,又有换行,程序写起来需要转义很麻烦,而且看代码的人也不一定能一下看懂。

再看一段代码:

str2=""""liming"
and
'janny'""";
print(str2)
在猜猜结果是啥,其实一样啦,结果如下:


而程序中的"""就是三重引号,你可以把自己要写的字符串粘贴进去,只要开头是"""结尾是"""(当然也可以写成'''),python就会自动识别出你要写的字符串格式,无论是单双引号还是换行都不需要进行转义,而且程序阅读起来也更加可读。

(4)python中的字符串操作起来灵活多变,与java一样也可以将它看做一个字符数组,实际上在,操作python中的字符串主要靠数组的概念来体现,以下一张图可以让你更好的理解python字符串,如图:



图中表示的是一个字符串a='abcde',0,1,2,3,4,5表示字符串的下标,在python字符串中下标也可以用负数来表示,如图所示a[-1]='e',以此类推。代码如下:

a='abcde'
print(a[0])
print(a[-1])



可以看到a[0]='a',a[-1]='e',用图中的下标可以取到字符串a中的任意字符;

(5)python字符串分片

所谓分片就相当于java取子字符串(subString),举个例子,代码如下:

a='abcde'
print(a[1:4])
print(a[0:4])
打印结果:


a[1:4]='bcd',a[0:4]='abcd',再来看这张图:

,对于a[1:4],python取到的subString是'bcd',也就是取了a[1],a[2],a[3],而a[4]是不取的;也就是说python取subString,取到的是从起始下标(包括起始下标在内)到终止下标前一个字符的subString。

在python中起始下标和终止下标可以忽略不写,代码如下:

a='abcde'
print(a[0:])
print(a[:4])
print(a[:])
结果如下:



再来看这张图

,a[0:],如果没有终止下标,那么终止下标默认是5,取到下标0-4的字符,即a[0:]='abcde';a[:4],如果没有起始下标,那么默认起始下标为0,取到的是下标为0-3的subString,即'abcd';如果起始下标和终止下标都没有,那么起始下标默认为0,终止下标默认为5,取到subString为'abcde';

再介绍下步长的概念,python中可以间隔着取字符串,步长为1,就是间隔0个字符取字符串,步长为2就是间隔1个字符取字符串,以此类推。代码如下:

a='abcde'
print(a[::1])
print(a[1:4:2])
结果如下:



a[::1],首先第一次取到的subStringa[:]='abcde',步长为1,就是间隔0个字符取a[:]的字符串,结果a[::1]='abcde';同理,a[1:4:2],先取subStringa[1:4]='bcd',步长为2,就是要间隔1个字符取字符串,即a[1:4:2]='bd'

在python也可以从右至左取字符串,先看如下代码:

print(a[-5:-2])
print(a[-2:-5])
运行结果如下:



参照此图:

,可以知道a[-5:-2]='abc',而a[-2:-5]什么也没有打印,这是因为在python中默认是从左至右来取subString的,那么要是想从右至左来取字符串怎么办呢?代码如下:

a='abcde'
print(a[-2:-4:-1])
print(a[1:3:-1])
print(a[-1:-6:-2])
运行结果如下:


再参照此图:

,a[-2:-4:-1]表示的是取起始下标-2到终止下标-4的subString,因为这里的步长-1为负数,所以python会从右至左取字符串,即a[-2:-4:-1]='dc',这里需要注意的是步长为负数表示已经告知python从右至左取字符串,下标相应的也要从右至左写,如果将a[-2:-4:-1]改为a[-4:-2:-1]取到的就是空,同理a[1:3:-1]下标为1-3,这是从左至右的下标顺序,所以没有取到字符串,改为a[3:1:-1]='dc';相应的a[-1:-6:-2],表示从右至左取-1至-6的subString,然后步长为2取字符串,即a[-1:-6:-2]='eca'.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 编程