基本数据类型扩展,及字符串的操做(切片,记忆希望字符串的基本操作) ⼀.python基本数据类型 整数(int) 布尔值(bool) 字符串(str)

1. int ==> 整数. 主要⽤来进⾏数学运算

2. str ==> 字符串, 可以保存少量数据并进⾏相应的操作

3. bool==>判断真假, True, False

4. list==> 存储⼤量数据.⽤[ ]表⽰

5. tuple=> 元组, 不可以发⽣改变 ⽤( )表⽰

6. dict==> 字典, 保存键值对, ⼀样可以保存⼤量数据

7. set==> 集合, 保存⼤量数据. 不可以重复. 其实就是不保存value的dict

整数(int)

在python3中所有的整数都是int类型. 但在python2中如果数据量比较⼤. 会使⽤long类型.

在python3中不存在long类型

整数可以进⾏的操作:

bit_length(). 计算整数在内存中占⽤的⼆进制码的⻓度

s1 = 15
print(s1.bit_length())

布尔值(bool)

取值只有True, False. bool值没有操作.

转换问题:

str => int int(str)

int => str str(int)

int => bool bool(int). 0是False 非0是True

bool=>int int(bool) True是1, False是0

str => bool bool(str) 空字符串是False, 不空是True

bool => str str(bool) 把bool值转换成相应的"值"

字符串(str)

把字符连成串. 在python中⽤', ", ''', """引起来的内容被称为字符串

1.1 字符串操作(切片,索引)

索引. 索引就是下标. 切记, 下标从0开始

s2 = "python is good code"
print(s2[2])
print(s2[-1]) #代表倒数第一个

  

1.2 切片,可以使用下标来截取部分字符串的内容

语法:str[start:end]

规则: 顾头不顾尾,从start开始截取,截取到end位置,但不包括end。

s3 = "python is good code"
print(s3[0:3])   #截取一段
print(s3[0:])     #从头到尾
print(s3[:])       #原样输出
print(s3[-1:-5])  # 从-1 获取到 -5 这样是获取不到任何结果的从-1向右数. 你怎么数也数不到-5
print(s3[-5:-1])  #取到数据了

print(s3[:-1]) #取到倒数第二个

  

跳着截取(步长)

# 跳着取, 步⻓
print(s2[1:5:2]) # 从第⼀个开始取, 取到第5个,每2个取1个, 结果: yh, 分析: 1:5=>
ytho => yh
print(s2[:5:2]) # 从头开始到第五个. 每两个取⼀个
print(s2[4::2]) # 从4开始取到最后. 每两个取⼀个
print(s2[-5::2]) # 从-5取到最后.每两个取⼀个
print(s2[-1:-5]) # -1:-5什么都没有. 因为是从左往右获取的.
print(s2[-1:-5:-1]) # 步⻓是-1. 这时就从右往左取值了
print(s2[-5::-3]) # 从倒数第5个开始. 到最开始. 每3个取⼀个, 结果oy

  

步⻓: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1

切片语法:

str[start:end:step]

start: 起始位置

end: 结束位置

step:步⻓

1.3 字符串的相关操作

切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的

s1 = "pYtUon"
print(s1.capitalize())  #首字母大写
print(s1.lower())       #全部字母小写
print(s1.upper())      #全部字母大写
print(s1.swapcase()) #大小写转换
print(s1.casefold())   #和lower得功能是一样得,不过casefold 对所有字母都有效,譬如一些东欧的字母
s2= "*python_is_good_code "
print(s2.title()) # 特殊字符后等候字母大写


切来切去
s5 = "周杰伦"
print(s5.center(11,"*")) #拉长成11个占位,吧周杰伦放居中,其余用*补全 居中

s3 = " _alxe_is haha "
print(s3.strip()) #去空格两边得 l 是左 r 是右

# 字符串替换

s8 = "sylar_alex_taibai_wusir_eggon"

ret = s8.replace('alex', '⾦⻆⼤王') # 把alex替换成⾦⻆⼤王

ret = s8.replace('i', 'SB', 2) # 把i替换成SB, 替换2个