乐趣区

关于python:Python基础之数字字符串和列表

简介

Python 的次要利用是进行科学计算,科学计算的根底就是数字,字符串和列表。本文将会具体的给大家介绍一下这三个数据类型的应用状况。

数字

数字是任何科学计算中十分中要的类型,在 Python 中最常见的数字类型就是 int 和 float。

看几个根本的数字操作:

In [8]: 1+1
Out[8]: 2

In [9]: 3*2 + 10
Out[9]: 16

In [10]: (65 + 23) / 4
Out[10]: 22.0

下面咱们能够看到,没有小数的是 int 类型,带有小数的是 float 类型。

除法运算 (/) 永远返回浮点数类型。如果要做 floor division 失去一个整数后果(疏忽小数局部)你能够应用 // 运算符;如果要计算余数,能够应用 %

In [11]: 54 / 4
Out[11]: 13.5

In [12]: 54 // 4
Out[12]: 13

In [13]: 54 % 4
Out[13]: 2

** 能够示意乘方运算:

In [14]: 4 ** 3
Out[14]: 64

咱们能够将数字的运算赋值给特定的变量,并且能够应用该变量进行后续的运算。

In [15]: a = 12

In [16]: b = 14

In [17]: a * b
Out[17]: 168

在交互式环境中,_示意上一个输入:

In [17]: a * b
Out[17]: 168

In [18]: 100 + _
Out[18]: 268

除了 int 和 float,Python 还反对其余的数据类型,比方 Decimal 和 Fraction,甚至还反对复数。

字符串

Python 中字符串有三种示意模式,能够应用单引号,双引号和三引号来示意。

In [19]: site1 = 'www.flydean.com'

In [20]: site2= "www.flydean.com"

In [21]: site3= """www.flydean.com"""

三引号次要用于跨行输入,字符串中的回车换行会主动蕴含到字符串中,如果不想蕴含,在行尾增加一个 \ 即可。如下:

print("""\
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
""")

如果须要本义的话,能够应用反斜杠 \

In [22]: site4 = "www.\"flydean\".com"

In [23]: site4
Out[23]: 'www."flydean".com'

如果你不心愿前置了 \ 的字符本义成特殊字符,能够应用 原始字符串 形式,在引号前增加 r 即可:

In [24]: print(r"www.\"flydean\".com")
www.\"flydean\".com

字符串通过 + 来进行连贯,也能够应用 * 来进行复制:

In [25]: "www" + "flydean.com"
Out[25]: 'wwwflydean.com'

In [26]: "www.flydean.com" * 3
Out[26]: 'www.flydean.comwww.flydean.comwww.flydean.com'

相邻的两个或多个 字符串字面值(引号引起来的字符)将会主动连贯到一起.

In [27]: "www" "flydean.com"
Out[27]: 'wwwflydean.com'

留神,下面的主动连贯操作,只能对两个字面量无效,如果是变量的话则会报错。

字符串会被看做是由字符组成的数组,所以能够通过 string[index]的模式来进行拜访。

In [28]: site5 = "www.flydean.com"

In [29]: site5[3]
Out[29]: '.'

如果索引是正数的话,会从左边开始计数:

In [30]: site5[-3]
Out[30]: 'c'

因为 -0 和 0 是一样的,所以正数是从 -1 开始的。

除了索引,字符串还反对 切片 。索引能够失去单个字符,而 切片 能够获取子字符串:

In [31]: site5[1:5]
Out[31]: 'ww.f'

留神切片的开始总是被包含在后果中,而完结不被包含。这使得 s[:i] + s[i:] 总是等于 s

In [33]: site5[:4]+site5[4:]
Out[33]: 'www.flydean.com'

切片的索引有默认值,省略开始索引时默认为 0。

如果索引超出了字符串的范畴就会发送越界谬误。

In [34]: site5[100]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-34-fc1f475f725b> in <module>()
----> 1 site5[100]

IndexError: string index out of range

然而,切片中的越界索引会被主动解决:

In [36]: site5[:100]
Out[36]: 'www.flydean.com'

因为字符串是不可变的,所以咱们不能通过索引的模式来对字符串进行批改:

In [37]: site[2] = "A"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-37-9147d44bd80c> in <module>()
----> 1 site[2] = "A"

TypeError: 'str' object does not support item assignment

len 用来统计字符串的长度:

In [38]: len(site5)
Out[38]: 15

字符串对象 str

字符串的实质是字符串对象 str。

能够看下 str 的根本办法:

In [39]: site5.
           capitalize()   encode()       format()       isalpha()      islower()      istitle()      lower()        replace()      rpartition()   splitlines()   title()
           casefold()     endswith()     format_map()   isdecimal()    isnumeric()    isupper()      lstrip()       rfind()        rsplit()       startswith()   translate()
           center()       expandtabs()   index()        isdigit()      isprintable()  join()         maketrans()    rindex()       rstrip()       strip()        upper()
           count()        find()         isalnum()      isidentifier() isspace()      ljust()        partition()    rjust()        split()        swapcase()     zfill()

感兴趣的同学能够自行去钻研。

列表

列表是用方括号示意的数据的汇合。列表中的数据能够是多种数据类型,然而个别状况下,咱们在一个列表中应用同一个数据类型。

In [40]: ages = [10, 14, 18, 20 ,25]

In [41]: ages
Out[41]: [10, 14, 18, 20, 25]

和字符串一样,列表也反对索引和切片。事实上,只有是 sequence 类型的数据类型,都反对索引和切片。

In [42]: ages[3]
Out[42]: 20

In [43]: ages[:2]
Out[43]: [10, 14]

In [44]: ages[:]
Out[44]: [10, 14, 18, 20, 25]

留神,列表的切片会返回一个新的列表。然而这个新的列表是浅拷贝,意味着新列表的元素是原列表中元素的援用。

列表还反对拼接操作:

In [45]: ages + [9, 11]
Out[45]: [10, 14, 18, 20, 25, 9, 11]

和 String 的不可变性不同,列表是可变的,这就意味着咱们能够通过索引来批改列表的值:

In [46]: ages[0] = 100

In [47]: ages
Out[47]: [100, 14, 18, 20, 25]

列表的底层类型是 list,咱们能够看下 list 中的办法:

In [51]: ages.
               append()  count()   insert()  reverse()
               clear()   extend()  pop()     sort()
               copy()    index()   remove()

咱们能够应用 append 来附加 list 的值,也能够应用 count 来统计 list 的元素个数等等。

下面咱们提到了,列表的切片是原列表的援用,所以咱们能够通过给切片赋值,来批改原始列表的值:

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # replace some values
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # now remove them
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # clear the list by replacing all the elements with an empty list
>>> letters[:] = []
>>> letters
[]

列表还能够进行嵌套,构建多层的列表:

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

本文已收录于 http://www.flydean.com/03-python-number-list-string/

最艰深的解读,最粗浅的干货,最简洁的教程,泛滥你不晓得的小技巧等你来发现!

欢送关注我的公众号:「程序那些事」, 懂技术,更懂你!

退出移动版