zoukankan      html  css  js  c++  java
  • 4. Python数据类型之数字、字符串、列表

    开发过程中,我们需要处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型主要有以下几种:数字、字符串、列表、元组、字典、集合等。

    数字

    数字主要有整数、浮点数、复数3种类型。在Python中,整数(在 Python3.X 版本中 long 类型被移除,使用 int 替代)、浮点数、复数分别用int、float、complex表示。如下表格所示:

    int float complex
    10 10.1 3.14j
    -110 -10.1 4.53e-7j
    11 10.11 4.53j
    0 -32.4e100 3e+26J

    字符串(String)

    字符串(String)是 Python 中最常用的数据类型。我们可以使用单引号(' ')或双引号(" ")来创建字符串,如下代码所示:

    # 使用单引号表示字符串
    '10'  '-10'  '10.0'  '3.14j'  'test'  '我真的是字符串'  'True'  'False'
    
    # 使用双引号表示字符串
    "10"  "-10"  "10.0"  "3.14j"  "test"  "我真的是字符串"  "True"  "False"
    
    

    通过上面我们可以发现,不论是、整数、浮点数、复数还是布尔类型(True 和False 下面会讲到),用 ' ' 或" "包起来后,都表示字符串。所以10 不等同于 '10',一个表示数字,一个表示字符串,其他依此类推。

    操作字符串

    字符串是不可改变的,但是我们对字符串进行索引或拼接操作,如下代码所示:

    a = 'testDog'
    b = a + "TEST"
    print("通过索引方式访问元组第1个元素:", a[0])
    print("字符串第2个元素到第5个元素", a[1:4])
    print("字符串第2个元素到第5个元素,步长为2", a[1:4:2])
    print("字符串拼接:", b)
    
    

    打印如下内容

    通过索引方式访问元组第1个元素: t
    元组第2个元素到第5个元素 est
    元组第2个元素到第5个元素,步长为2 et
    字符串拼接: testDogTEST

    小结:索引从0开始,字符串第1个元素,索引为0。通过上面我们可以发现,我们可以使用下标索引来访问字符串的值,同样也可以使用方括号的形式截取字符串,使用方括号的形式取值原则是,取左不取右。比如a[1:4],我们取了第2个字符,但是没有取索引为4的字符。当我们使用方括号的形式截取字符串,也可以使用步长方式,如a[1:4:2],a[1:4]取到est,步长为2时,取到et。

    列表

    列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型,创建一个列表,只要用逗号分隔不同的数据项,然后使用方括号括起来即可。列表可以为一个空列表,也可以是一个嵌套列表,如下代码所示:

    list1 = []
    list2 = [1, 1.1, 2, 3]
    list3 = ['你好', 'python', ]
    list4 = [1 + 2, 2 + 3]
    list5 = [1, 'test', False, 1 + 2, [1, 2]]
    
    print("list1是一个空列表:", list1)
    print("查看list1的类型:", type(list1))
    print(list2)
    print(list3)
    print("列表中可以存放表达式", list4)
    print("list5是一个嵌套列表:", list5)
    

    上面代码将输出如下内容:

    list1是一个空列表: []
    查看list1的类型: <class 'list'>
    [1, 1.1, 2, 3]
    ['你好', 'python']
    列表中可以存放表达式 [3, 5]
    list5是一个嵌套列表: [1, 'test', False, 3, [1, 2]]

    访问列表中的值

    我们可以像操作字符串哪样使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符,如下代码所示:

    a = [1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA']]
    print("通过索引方式访问列表第1个元素:", a[0])
    print("通过索引方式访问列表第2个元素:", a[1])
    print("通过索引方式访问列表第3个元素:", a[2])
    print("通过索引方式访问列表第4个元素:", a[3])
    print("通过索引方式访问列表第5个元素:", a[4])
    print("通过索引方式访问列表第6个元素:", a[5])
    print("用负数访问方式,列表第6个元素为:", a[-1])
    print("用负数访问方式,列表第5个元素为:", a[-2])
    
    print("列表第2个元素到第6个元素,步长为2:", a[1:5:2])
    print("倒数第2个数到最后:", a[-2:])
    print("列表第6个元素是一个列表,访问嵌套列表第1个元素:", a[5][0])
    print("列表第6个元素是一个列表,访问嵌套列表第3个元素:", a[5][2])
    
    

    上面代码将输出如下内容:

    通过索引方式访问列表第1个元素: 1
    通过索引方式访问列表第2个元素: test
    通过索引方式访问列表第3个元素: 你好
    通过索引方式访问列表第4个元素: 3
    通过索引方式访问列表第5个元素: False
    通过索引方式访问列表第6个元素: [2, 3, 'CHINA']
    用负数访问方式,列表第6个元素为: [2, 3, 'CHINA']
    用负数访问方式,列表第5个元素为: False
    列表第2个元素到第6个元素,步长为2: ['test', 3]
    倒数第2个数到最后: [False, [2, 3, 'CHINA']]
    列表第6个元素是一个列表,访问嵌套列表第1个元素: 2
    列表第6个元素是一个列表,访问嵌套列表第3个元素: CHINA

    当索引超出了范围时,Python会报一个IndexError错误,运行下面代码,将会输出 IndexError: list index out of range。

    a = [1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA']]
    print(a[10])
    print(a[-10])
    
    

    小结:列表不仅可以存放数字、字符串、表达式、布尔类型等,还可以再嵌套一个列表。访问列表的方式可以通过索引或使用方括号的形式截取字符,方括号的形式还可以指定步长。

    更新列表

    列表是可变的,我们可以通过索引方式更新列表,也可以使用insert或append方法更新列表,insert指定位置插入,append会加在列表最后,如下代码所示:

    a = [1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA']]
    a[0] = 33
    a.insert(0, 'Jack')
    a.append('TestDog')
    print(a)
    

    上面代码将输出如下内容:

    ['Jack', 33, 'test', '你好', 3, False, [2, 3, 'CHINA'], 'TestDog']

    删除列表元素

    列表元素是可以删除的,我们可以使用del 或者pop方法删除列表元素,pop也可以通过索引方式删除,当不指定时,删除最后一个元素,如下代码所示:

    a = [1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA']]
    del a[0]
    print("删除第1个元素 : ", a)
    a.pop(2)
    print("删除第3个元素 : ", a)
    a.pop()
    print("删除第最后1个元素 : ", a)
    
    

    上面代码将输出如下内容:

    删除第1个元素 : ['test', '你好', 3, False, [2, 3, 'CHINA']]
    删除第3个元素 : ['test', '你好', False, [2, 3, 'CHINA']]
    删除第最后1个元素: ['test', '你好', False]

    欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

  • 相关阅读:
    UVA12125 March of the Penguins (最大流+拆点)
    UVA 1317 Concert Hall Scheduling(最小费用最大流)
    UVA10249 The Grand Dinner(最大流)
    UVA1349 Optimal Bus Route Design(KM最佳完美匹配)
    UVA1212 Duopoly(最大流最小割)
    UVA1395 Slim Span(kruskal)
    UVA1045 The Great Wall Game(二分图最佳匹配)
    UVA12168 Cat vs. Dog( 二分图最大独立集)
    hdu3488Tour(KM最佳完美匹配)
    UVA1345 Jamie's Contact Groups(最大流+二分)
  • 原文地址:https://www.cnblogs.com/suim1218/p/10364222.html
Copyright © 2011-2022 走看看