世外桃源

非淡泊无以明志————非宁静无以致远——

3 python基础数据类型 总览

*—*—基础数据类型 总览—*—*
一、python基本数据类型
①.int ==> 整数.

②.str ==> 字符串,可以保存少量的数据.

③.bool ==> 布尔值,判断真假,用True,False表示.
一个布尔值只有 True、False 两种值,要么是 True ,要么是 False ,即为真或假,1或0,在Python中,可以直接用 True、False 表示布尔值(请注意大小写),可以用来做条件判断。

④.list ==> 列表,可以存储大量数据,用[]表示.
列表(List)可以包含不同类型的数据对象,列表中的元素是有序的,并且列表中的每一个元素都是可变的。

⑤.tuple ==> 元组,只读列表,不发生改变,用()表示.
元组(tuple)和列表(list)唯一的区别就是列表是可以修改的,元组一旦创建,便不能进行修改,其他方法与列表一样,所以又叫只读列表。

⑥dict ==> 字典(dict)是 Python 中的映射数据类型,由键(key)-值(value)对构成。

键(key)是不能重复的,而值(value)是可以重复的,字典中的键(key)是不可变的,也就是无法修改的,而值是可变的,可修改的,可以是任何对象,同时字典(dict)是无序的(3.6.x开始有序)。

⑦.set ==> 集合,保存大量数据,不可以重复

二、整数 (int)
在python中整数(int)的取值范围是为 -2**31~2**31-1 ,即 -2147483648~2147483647 。
注:在Python3中整形没有了长度限制。在python3中 所有的整数都是int类型。
整数可以进行的操作:
bit_length(). 计算整数在内存中占用的二进制码的长度

三、字符串(str)
字符串是以 ‘’ 或 “” 括起来的任意文本,再或者多行字符串是以 """""" 括起来的任意文本。
字符串是不可改变的数据类型,不管怎么操作,源字符串都不会发生改变,每次操作都会返回新的字符串.

1.切片和索引
1.1索引 索引也叫下标 下标索引 需要注意的是下标都是默认从0开始的 使用[下标]可以从左至右获取到每一个字符,还可以倒着数.
例: name = 'abcde'
print(name[0]) #运行结果:a
print(name[1]) #运行结果:b
print(name[2]) #运行结果:c

1.2切片 可以使用下标来截取某一部分字符串中的内容,就像一把刀切下去,取出来这部分我们就叫它——"切片"。字符串,列表,元祖均支持切片操作。
切片的语法:[起始索引:截止索引:步长]
先看字符串的索引对应

a b c d e f

↓ ↓ ↓ ↓ ↓ ↓

0 1 2 3 4 5

需要注意的是:切片是"顾头不顾尾"——选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
如果需要取出一部分,则可以在中括号[]中使用:
例: name = 'abcdef'
print(name[0:3]) #取下标0~2的字符
***输出结果***:
abc

name = 'abcdef'
print(name[1:]) #取 下标为1开始到最后的字符
***输出结果***:
bcdef

name = 'abcdef'
print(name[:]) #从头取到尾
***输出结果***:
abcdef

name = 'abcdef'
print(name[1:-1] #取 下标1开始到倒数第2个字符
***输出结果***:
bcde
按步长切片:
步长默认为1
步长为2的话隔1个取1个
反向取值,从后面开始取的话,步长为-1
例: name = 'abcde'
print(name[::2])
***输出结果***:
ace

name = 'abcde'
print(name[::-2]
***输出结果***:
eca

示例图:



切片是一个新的变量,在内存中,原字符串和切片后的字符串是2个不同的变量
name = name[:] 它们的结果虽然是一样的,但是确是两个不同的变量,具体可以使用is来判断
所以我们可以总结:对字符串的操作,都会产生新的变量,除了赋值以外。

2.字符串的相关操作(方法)
以下操作方法用*的多少表示使用程度
*一般
**常用
***经常

*** capitalize() —— 首字母大写,其他字母小写
例: d = 'python S'
print(d.capitalize)
***输出结果***:Python s
print(d) #原字符串不变
***输出结果***:
python S

*** upper() —— 所有字母大写
*** lower() —— 所有字母小写
例: d = 'tiancai'
d1 = d.upper()
d2 = d1.lower()
print(d1)
print(d2)
***输出结果***:
TIANCAI
tiancai

** swapcase() —— 大小写翻转
例: d = 'TiAnCaI'
print(d.swapcase())
***输出结果***:
tIaNcAi

** title() —— 每个词的首字母大写,其他字母小写
例: d = 'wO shI tiaN caI'
print(d.title())
***输出结果***:
Wo Shi Tian Cai

* center() —— 居中,默认使用空格填充 ()中输入输出字符个数,不足的默认用空格填充,可自定制填充元素。
例: d = 'tiancai'
print(d.center(11))
print(d.center(11,'*')
***输出结果***:
tiancai
**tiancai**

*** startswith() —— 判断以什么开头
*** endswith —— 判断以什么结尾
例: d = 'yigetiancai'
d1 = d.startswith('a')
d2 = d.endswith('i')
d3 = d.startswith('t',1,5) #切片,取索引访问下标1~4,再判断是否以t开头
d4 = d.startswith('r',3) #切片,取索引访问下标3~结束,结束位置参数未给,默认取到尾
print(d1)
print(d2)
print(d3)
print(d4)
***输出结果***:
False
True
True
True

*** strip() —— 默认去除首尾的空格,换行符(\n),tab键(\t)
d = ' tiancai\t '
print(d.strip())
***输出结果***:
tiancai

* lstrip() —— 去除左边的空格,换行符,tab键
* rstrip() —— 去除右边的空格,换行符,tab键
*** len() —— 公共方法 输出字符串长度 列表个数 字典键的个数......
例: d = 'tiancai'
print(len(d))
***输出结果***:
7

*** find() —— 通过元素找索引,找不到不报错,返回-1
*** index() —— 找索引,找不到即报错
*** repalce() —— 替换 repalce(旧元素,新元素,替换次数) 不输入替换次数默认全部替换
例: d = '我是天才,天才不需要学习'
d1 = d.replace('天才','蠢材') #默认替换所有
d2 = d.replace('天才','蠢材',1) #替换1次
print(d1)
print(d2)
***输出结果***:
我是蠢材,蠢材不用学习
我是蠢材,天才不用学习

*** count() —— 寻找元素出现的次数,可切片
c = 'sdvgdsvgaefq'
c1 = c.count('g')
c2 = c.count('g',4)
print(c1)
print(c2)
***输出结果***:
2
1

*** split() —— 以(自定义)分割,将字符串转换成列表,最终形成一个列表不含有这个分割的元素。
例: s = '你真的是个人人都喜欢的人'
s1 = s.split('人')
print(s1)
***输出结果***:
['你真的是个', '', '都喜欢的', '']

*** format() —— 格式化输出 有三种用法,如下
第1种:
s = '我的名字是{},年龄{},喜欢{}'.format('大神',18,'学习')
print(s)
***输出结果***:
我的名字是大神,年龄18,喜欢学习

第2种:
s1 = '我的名字是{0},年龄{},喜欢{}'.format('大神',18,'学习')
print(s1)
***输出结果***:
我的名字是大神,年龄18,喜欢学习

第3种:
s2 = '我的名字是{name},年龄{age},喜欢{like}'.format(name='大神',age=18,like='学习')
print(s2)
***输出结果***:
我的名字是大神,年龄18,喜欢学习

* isalnum() —— 字符串由字母或数字组成 温馨提示:中文字符串也会被归类进去
* isalpha() —— 字符串只由字母组成 温馨提示:中文字符串也会被归类进去
*** isdigit —— 字符串只由数字组成
例: name = 'python123'
name1 = name.isalnum()
name2 = name.isalpha()
name3 = name.isdigit()
name4 = name[-3:].isdigit() #判断name切片——最后三个字符是否全由数字组成
print(name1)
print(name2)
print(name3)
print(name4)
***输出结果***:
True
False
False
True

二、for循环
为了方便比较我们先使用while循环,打印每一个字符
d = '12345'
count = 0
while count < len(d):
print(d[count])
count += 1
***输出结果***:
1
2
3
4
5

使用for循环完成以上功能
d = '12345'
for i in d:
print(d)
***输出结果***:
1
2
3
4
5

区别:for循环是有限循环,while循环是无限循环
某些情况,在不需要终止条件的情况下,使用for循环。
有终止条件的,使用while循环。
for循环会自动停止

posted on 2018-08-21 15:11  蛛丝_马迹  阅读(289)  评论(0编辑  收藏  举报

导航