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

简介: python学习(3)--数据类型 1.python基本数据类型有五种:数字、字符串、列表、元组、字典。今天给大家介绍数字和字符串这两种。 (1)python中数字主要分为整型、浮点型、以及复数这三种。

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

1.python基本数据类型有五种:数字、字符串、列表、元组、字典。今天给大家介绍数字和字符串这两种。

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

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

[delphi] view plain copy

  1. print(type(123))
  2. print(type(123.0))
  3. 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",单引号或者双引号并没有什么不同。可以通过打印字符串来进行证明:

[python] view plain copy

  1. print(id("123"))
  2. print(id('123'))

结果如下:

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

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

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

[python] view plain copy

  1. print("let's go")
  2. print('let"s go')
  3. print("let's \"go\"")

结果如下:


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

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

[python] view plain copy

  1. str1="\"liming\"\nand\n'janny'"
  2. print(str1)

我先不打印结果,给你三秒钟猜猜结果是啥,大概没猜出来吧,嘿嘿,其实结果如下啦


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

再看一段代码:

[python] view plain copy

  1. str2=""""liming"
  2. and 
  3. 'janny'""";
  4. print(str2)

在猜猜结果是啥,其实一样啦,结果如下:

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

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

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

[python] view plain copy

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

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

(5)python字符串分片

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

[python] view plain copy

  1. a='abcde'
  2. print(a[1:4])
  3. 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中起始下标和终止下标可以忽略不写,代码如下:

[python] view plain copy

  1. a='abcde'
  2. print(a[0:])
  3. print(a[:4])
  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个字符取字符串,以此类推。代码如下:

[python] view plain copy

  1. a='abcde'
  2. print(a[::1])
  3. 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也可以从右至左取字符串,先看如下代码:

[python] view plain copy

  1. print(a[-5:-2])
  2. print(a[-2:-5])

运行结果如下:

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

[python] view plain copy

  1. a='abcde'
  2. print(a[-2:-4:-1])
  3. print(a[1:3:-1])
  4. 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'.

原文地址http://www.bieryun.com/2285.html

相关文章
|
15天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
14 1
|
10天前
|
Python
python学习3-选择结构、bool值、pass语句
python学习3-选择结构、bool值、pass语句
|
1天前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
1天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
1天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
1天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
1天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
2天前
|
存储 Python
Python的变量与数据类型详解
Python的变量与数据类型详解
11 0
|
9天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
18 0
|
9天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
49 0