简介

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)

in ()

----> 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)

in ()

----> 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数字列表in_Python入门基础之数字字符串与列表相关推荐

  1. python数据结构教程_python入门基础教程随笔1-python数据结构-列表

    # encoding: utf-8 import sys #导入标准包 from test.test_compare import Cmp a = 3 b = 4 c = 5.66 d = 8.0 e ...

  2. python 提取列表中长度大于3的字符串,列表中什么元素都有

    # 提取列表中长度大于3的字符串,列表中什么元素都有lt = ["asd",123,"as","ffgg"]ln = list(filter ...

  3. Python入门基础篇(一)列表,详细实用,简单易懂!!!!

    请仔细阅读哦!!! 文章目录 前言 一.Python列表的创建与删除 1.赋值运算符直接创建列表 2.创建空列表 3.创建数值列表 4.删除列表 二.访问列表中的元素 三.遍历列表中的元素 1.直接使 ...

  4. Python学习笔记之入门基础

    课程链接:Python入门教程--基础阶段_哔哩哔哩_bilibili Python学习笔记 注释 单行注释: * 多行注释: 1.多行前面加# 2."""注释信息&qu ...

  5. Python基础学习笔记--字符串、列表

    @[字符串.列表.元组.字典(上) 字符串 python中的字符串可以用单引号.双引号.三引号括起来,使用反斜杠\转义特殊字符 默认UTF-8编码,所有字符串都是unicode字符串 支持字符串拼接. ...

  6. Python编程基础——序列:字符串、列表和元组

    一.简介 Python序列指:它们的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员.包括:字符串(普通字符串和unicode字符串).列表.和元组类型.        因为这些类型 ...

  7. python 元组和列表区别_Python 基础(六):列表与元组

    1 列表 1.1 简介 Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同:列表是序列结构,可以进行序列结构的基本操作:索引 ...

  8. Python序列 数据类型 创建方式 Tuple元组 Str字符串 List列表 dict字典 Set集合 range,zip,map,enumerate

    Python 序列分类 数据类型 详细介绍 Python 主要数据类型: 元组Tuple, 字符串Str,列表List,字典Dict,集合Set 对比 元组Tuple 字符串Str 列表List 字典 ...

  9. python计算整数各位数字之和_Python入门篇之数字 python分享整数各位数字之和

    Python中输入一段数字,分享这段数字中奇数字之和如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑,如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣,你的容颜在小编心中如莲花的开落,残阳徽墨,细 ...

最新文章

  1. lvs的十种调度算法概念
  2. suse linux ssh connerc failed
  3. 每天定时备份mysql数据库任务
  4. socketmq 设置队列大小_C++编程实例:面向对象的整形队列实现
  5. DNS域名解析服务配置会不会?
  6. 最短路径(Dijkstra、Bellman-Ford和SPFA算法)
  7. Linux 0.00 代码解析(一)
  8. 全程回顾|罗永浩直播带货首秀
  9. <<游戏设计艺术>>笔记
  10. Mac source环境变量配置
  11. c的花体字_[转载]花体字~~漂亮~
  12. MySQL理解索引、添加索引的原则
  13. 什么是云计算,云计算运营方式和部署方式介绍
  14. MobaXterm 复制粘贴快捷键
  15. QPS,TPS,RPS你知道多少?
  16. Win10 如何修改C:\Users\下的用户名
  17. 前端工程化——脚手架及自动化构建
  18. 1200PLC和Modbus485主站DCS系统通讯
  19. 关于华为交换机bpdu enable. ntdp enable. ndp enable解析
  20. JavaScript大作业(华为手机购物网站设计与实现)

热门文章

  1. 现在c++链接oracle,C++ 连接Oracle
  2. 流媒体传输协议---RTP--基础
  3. jq点击按钮打开和关闭弹出层,点击除了当前按钮以外的地方关闭弹出层
  4. SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题
  5. 【Flask】SelectedField 同步数据库
  6. 我是如何在webpack中使用postcss-px2rem的
  7. Java Selenium起步
  8. powerdesigner反向MySQL5.1数据库 生成ER图
  9. JQuery中隐式迭代和each的区别(通过反选功能解析)
  10. 解决 IPS forbidden 的问题