Python入门基础之数字字符串与列表


Posted in Python onFebruary 01, 2021

简介

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'

总结

到此这篇关于Python入门基础之数字字符串与列表的文章就介绍到这了,更多相关Python数字字符串与列表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
Python自动化构建工具scons使用入门笔记
Mar 10 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
详解Python字典的操作
Mar 04 Python
python3实现单目标粒子群算法
Nov 14 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
Mar 08 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Python实现转换图片背景颜色代码
Apr 30 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 #Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 #Python
python实现代码审查自动回复消息
Feb 01 #Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 #Python
python 列表推导和生成器表达式的使用
Feb 01 #Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 #Python
深入理解Python变量的数据类型和存储
Feb 01 #Python
You might like
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
详解微信UnionID作用
2019/05/15 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
Python如何获取文件路径/目录
2020/09/22 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
英语道歉信范文
2014/01/09 职场文书
小学生暑假家长评语
2014/04/17 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
铁人观后感
2015/06/16 职场文书
详解python字符串驻留技术
2021/05/21 Python
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android