Python 数据类型详解与使用指南

(最近接触了米筐、同花顺 MindGo 等量化投资平台,打算学习一下 python 相关的知识,MindGo 量化平台上也正在产出一些 python 教材,个人觉得还不错,给大家分享一下,有兴趣的同学可以学习一波~) 1.字符串(str)

字符串是 Python 中最常用的数据类型,使用引号来创建字符串,注:单引号或者双引号都行!

[示例] 创建字符串

first='hello world !' #简单的字符串 print(first) second='key 5628' #简单的字符串 print(second) third="5q9rt" #简单的字符串 print(third) hello world ! key 5628 5q9rt

[示例] str()转化成字符串,print 输出

a=123;b=321 first=str(a+b) print('a 加 b 等于'+first) a 加 b 等于 444 如果不用 str()转化,则会报错,原因为:'a 加 b 等于'是字符串,first 是值,两者不统一。需要转化成字符串,统一格式才能用 print 输出。 a=123;b=321 first=a+b print('a 加 b 等于'+first)

TypeError Traceback (most recent call last) <ipython-input-2-0cf5c4cc69a3> in <module>() 1 a=123;b=321 2 first=a+b ----> 3 print('a 加 b 等于'+first) TypeError: Can't convert 'int' object to str implicitly

1.1.访问字符串中的值

字符串内的值可以通过方括号访问。Python 语言中,所有序列都是从 0 开始标注,0 代表第一个值。如果从末尾开始数,-1 代表末尾开始第一个,-2 以此类推。

方括号内有多种访问方法,[:]代表全访问,[x]代表访问特定的位置的值,[x:]代表从 x 号位到末尾,[:y]从首位到 y 位置,但不包括 y 位置,[x:y]代表访问 x 到 y 位置的值,其中包括 x 位置,但不包括 y 位置。

字符串内空键也占一个位置。

字符串和数字一样都是不可变数据类型,不能进行修改操作。要想修改或是删除原有字符串数据,最好的方法是重新创建一个字符串。

[示例] 访问字符串中每一个值

first='python' #python 对应 012345 号位 x=first[0] print(x) y=first[5] print(y) z=first[:] print(z) a=first[-1] #-1 代表是末尾开始数第一个,-2,-3,-4....以此类推。 print(a) b=first[2:4] #包括 2,不包括 4。 print(b) second='hello world !' a=second[4:7] #注意输出结果为:'o w' 因为字符串内空键也占一个位置。 print(a) p n python n th o w

1.2.字符串运算符

字符串运算符表 x='pyt',y='hon' 运算符 介绍 示例

  • 字符串连接 x+y 返回'Python'
  • 重复输出字符串 (x+y)*2 返回'pythonpython' [] 通过索引获取字符串中字符 x[1]返回'y' [ : ] 截取字符串中的一部分 x[:]返回'pyt' in 成员运算符-如果字符串中包含给定的字符返回 True 'h' in a 返回 False not in 成员运算符 -如果字符串中不包含给定的字符返回 True 'm' not in a 返回 True % 字符串格式化 请看下一章节

[示例] 字符串运算符案例

x='000300.SH 是' y='沪深 300 指数' print(x+y) print(y*4) print(x[-1]) print(x[2:5]) print('沪深' in x) print('300' not in y) 000300.SH 是沪深 300 指数 沪深 300 指数沪深 300 指数沪深 300 指数沪深 300 指数 是 030 False False

1.3.字符串格式化

Python 支持格式化字符串的输出,最基本的用法是将值插入到字符串中。    在简单的双均线策略中就运用了字符串格式化:log.info("买入%s" % (account.security))

[示例] 字符串格式化案例

x='小明今年%s 岁'%20 print(x) y='小明今年%s 岁,而小刚今年%s 岁'%(20,21) print(y) z='小明今年%s 岁,小刚今年%s 岁,而小刘今年%s 岁'%(20,21,25) print(z) 小明今年 20 岁 小明今年 20 岁,而小刚今年 21 岁 小明今年 20 岁,小刚今年 21 岁,而小刘今年 25 岁

[案例解读]    1.所谓的字符串格式化,其实就是在字符串中插入字符串格式符'%s',随后再字符串外使用 '%+值'即可完成插入。    2.字符串格式化的一般格式即可:'字符串+%s' + % + 一系列值 。    3.同一个字符串中可以同时插入多个值,案例中第三条使用了三个字符串格式符,随后分别插入三个值,一一对应。


Python 数据类型详解与使用指南

6 回复

%格式化有些弊端。
比如 ‘ this is %s ’ % (1,2,3) 会出问题, 只能‘ this is %s ’ % ((1,2,3),),但是用 format 可以直接避免,f’…’(3.6+)也可以
我个人在 Python 习惯 format


Python 数据类型详解与使用指南

Python的数据类型是编程基础,主要分为可变和不可变两大类。

不可变类型:创建后不能修改,包括:

  • 数字类型int(整数)、float(浮点数)、complex(复数)
  • 布尔型boolTrueFalse
  • 字符串str,用单引号或双引号包裹
  • 元组tuple,用圆括号定义,如 (1, 2, 3)

可变类型:创建后可以修改,包括:

  • 列表list,用方括号定义,如 [1, 2, 3]
  • 字典dict,键值对集合,如 {'a': 1, 'b': 2}
  • 集合set,无序不重复元素集,如 {1, 2, 3}

使用要点

  1. 类型转换:用 int(), str(), list() 等函数转换。
  2. 类型检查:用 type()isinstance() 函数。
  3. 可变性影响:可变对象在函数中修改会影响原对象,不可变对象则不会。

一句话建议:选对类型能让代码更高效清晰。

谢谢指点~

建议看一下 format,%都过期了

我觉得这个还不算什么,‘this is %s’ % str((1,2,3)) 多包一下也就是了。有两个经常用需求只能用 str.format 方便。
一个是多次引用,
>>> ‘{0}-{1}-{0}’.format(0, 1)
'0-1-0’
另一个是嵌套引用
>>> ‘{value:0>{width}}’.format(value=‘1’, width=10)
‘0000000001’

"?a=123;b=321 first=str(a+b) print(‘a 加 b 等于’+first) a 加 b 等于 444 如果不用 str()转化,则会报错,原因为:'a 加 b 等于’是字符串,first 是值,两者不统一。需要转化成字符串,统一格式才能用 print 输出。a=123;b=321 first=a+b print(‘a 加 b 等于’+first)“

一般来说,如果全是 str,我就用加号”+“连接各项.
不然的话,可以用逗号”,"啊
print(‘a 加 b 等于’, first) 不就行了么

回到顶部