python学习笔记02-数据类型

2017-12-30 12:20:34来源:segmentfault作者:红石居士_Ls人点击

分享


0. 基本数据类型

基本数据类型比较简单,通过以下例子演示:


print(type(1))
print(type(1.0))
print(type(True))
print(type(False))
print(type(-1 + 2j))

运行结果如下:


<class 'int'>
<class 'float'>
<class 'bool'>
<class 'bool'>
<class 'complex'>
1.通用序列操作
1.1 索引-indexing

通过索引获取序列的单个元素,也可以使用负数索引。从左向右索引从0开始,从右向左索引从-1开始。


greeting = 'HelloWrold'
print(greeting[0])# H
print(greeting[-1]) # d
1.2 分片-sliceing

分片操作用于提取序列的一部分。相当于[)半开区间提取。


L = [1,2,3,4,5,6,7,8,9,10]
print(L[0:1]) # [1]
print(L[-3:-1]) # [8,9]
print(L[3:]) # [8,9,10]
print(L[:3]) # [1,2,3]
print(L[:]) # [1,2,3,4,5,6,7,8,9,10]

设置参数步长,负数步长表示从右侧开始提取元素。


print(L[::4]) # [1,5,9]每4个元素取第一个
print(L[::-2]) # [10,8,6,4,2]每2个元素取第一个,反向提取
print(L[10:0:-2]) # [10,8,6,4,2]每2个元素取第一个,反向提取
print(L[0:10:-2]) # []
print(L[8:3:-1]) # [9,8,7,6,5]
print(L[5::-2]) # [6,4,2]
print(L[:5:-2]) # [10,8]
1.3 加-adding

通过使用+号进行序列的连接操作。


注意:相同类型的序列才可以进行连接操作。
[1,2,3] + [4,5,6] # [1,2,3,4,5,6]
'hello' + 'world' # 'helloworld'
1.4 乘-multiplying

序列可以通过乘以数字,来生成新的序列。


'py' * 5 # 'pypypypypy'
[1,2,3] * 2 # [1,2,3,1,2,3]
1.5 长度,最小值和最大值
len([1,2,3]) # 3
min([1,2,3]) # 1
max([1,2,3]) # 3
2. 列表
列表是可变的(mutable)-可以改变列表的元素。
2.1 创建列表

可以通过list函数创建列表。


# 通过字符串创建列表
l = list('Hello') # ['H','e','l','l','o']
# 将字符列表转换为字符串
s = ''.join(l) # Hello
2.2 修改列表
# 1.元素赋值
l = [1,2,3]
l[1] = 5
print(l) # [1,5,3]# 2.删除元素
del l[1] # [1,3]# 3.分片赋值
name = list('peter')
name[1:] = list('ython')
print(name) # ['p','y','t','h','o','n']num = [1,5]
num[1:1] = [2,3,4] # 插入元素
print(num)# [1,2,3,4,5]num[1:4] = [] # 删除元素
print(num) # [1,5]
2.3 列表方法







































方法描述
append()在列表末尾追加元素
count()统计某个元素在列表中出现的次数
extend()用新列表扩展旧列表
index()获取元素在列表中第一个匹配项的位置
insert()将元素插入列表
pop()从列表移除元素,默认最后一个
remove()移除列表中第一个匹配项
reverse()列表元素反向
sort()排序

3. 元组

元组是一种不能修改的序列。它的操作和方法与列表类似。


3.1 创建
(1,)
() #空元组
tuple([1,2,3]) # (1,2,3)
tuple('abc')#('a','b','c')
3.2 元组方法











方法描述
count()统计某个元素在列表中出现的次数
index()返回指定元素的索引

4. 字典

字典的常用操作


d = {'a': 1, 'b': 2, 1: 'one', 2: 'two', 3: [1, 2, 3]}
print(type(dict))
print(type(d))
print(d)# 访问元素
print(d['a'])
print(d[1])
print(d[3])# 判断key是否存在
print('two' in d)
print(3 in d)
del(d[3]) # del(dict[key])print(len(d)) #键值对的个数d[3] = [1, 2, 3, 4]
d[3] = '1234'print(d.keys()) #返回一个包含字典所有KEY的列表
print(d.values()) #返回一个包含字典所有value的列表
print(d.items()) #返回一个包含所有(键,值)元祖的列表# 判断
#dict.has_key(key)如果key在字典中,返回True,否则返回False
print(d.has_key('a')# 遍历
for key in d:
print(d[key])
print('...')
for k, v in d.items():
print(k, v)
print('...')
keys = d.keys()
print(type(keys))
print(keys)
4.1 字典方法




































方法描述
items()将字典转换为键,值作为元组的列表
keys()键列表
values()值列表
clear()清除所有元素
copy()深复制
update()在原字典上合并字典,键相同的会被覆盖
get()取得某个键对应的值
popitem()随机弹出键值对pop()随机弹出某个键值对

5. 集合

集合常见操作


s1 = set([1,2,2,3,3,4,5,6,7])
s2 = set([4,5,6,7,8,9])# 判断元素是否存在
print(5 in s1)
print(10 in s2)# 并集
print(s1 | s2)
print(s1.union(s2))
# 交集
print(s1 & s2)
print(s1.intersection(s2))# 差集 A - (A&B)
print(s1 - s2)
print(s1.difference(s2))# 对称差 (A | B) - (A & B)
print(s1 ^ s2)
print(s1.symmetric_difference(s2))# 修改元素
s1.add('x')
s1.update([4,5,10,11])
print(s1)
s1.remove(11)
print(s1)print(len(s1))

结果


True
False
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{4, 5, 6, 7}
{4, 5, 6, 7}
{1, 2, 3}
{1, 2, 3}
{1, 2, 3, 8, 9}
{1, 2, 3, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 10, 11, 'x'}
{1, 2, 3, 4, 5, 6, 7, 10, 'x'}
9
5.1 集合方法















方法描述
add()添加元素
pop()弹出元素
update()合并集合

6. 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:


var1 = 'Hello World!'
var2 = "Python Runoob"
6.1 原始字符串

原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。


>>> r'hello/n'
hello/n
6.2 Unicode字符串

Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:


>>> u'Hello World !'
u'Hello World !'

引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:


>>> u'Hello/u0020World !'
u'Hello World !'

被替换的 u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。


6.3 字符串常用操作
import string
# 去除空格
s = 'hello python'
print(s.strip())# 删除两边的空格
print(s.lstrip()) # 删除左边的空格
print(s.rstrip()) # 删除右边的空格
print(s)# 连接字符串
s1 = 'hello'
s2 = 'python'
print(s1 + ' ' + s2)# 大小写
str_1 = 'HeLloWorlD'
print(str_1.upper())
print(str_1.lower())
print(str_1.capitalize()) # 首字母大写# 位置和比较
str1 = 'abcdefg'
str2 = 'abdefgh'
print(str1.index('c'))
print(str1.index('de'))
try:
print(str1.index('dd'))
except ValueError:
print('ValueError:substring not found')# 比较
print(str1 == str2)
print(str1 > str2)
print(str1 < str2)
# 分割和连接
s = 'I,Love,Python'
print(s.split(','))
num = '123/n456/n789'
nums = num.splitlines() # 按行分割
print(nums)
print('-'.join(nums))
print(' '.join(s.split(',')))# 字符串长度
print(len('abcd'))# 数字转字符串
print(str(10))
print(str(10.0))
print(str(-10))
print(int('123'))# 格式化字符串
print('Hello %s!' %'python')
print('%d %.2f %s' %(10,1.2,'python'))# 常用判断
s_1 = 'abcdefg'
print(s_1.startswith('abc')) # 是否以'abc'开头
print(s_1.endswith('efg')) # 是否以'efg'结尾
print('abc123'.isalnum()) # 是否正常字母和数字
print('/tabc123'.isalnum()) # 有转义字符
print('abc'.isalpha()) # 是否字母
print('123'.isdigit()) # 是否数字
print(' '.isspace()) # 是否空格
print('abc'.islower()) # 是否小写
print('ABC'.isupper()) # 是否大写
print('Hello World!'.istitle()) # 是否标题(检测字符串中是否所有单词首字母大写,且其他字母小写)

结果如下:


hello python
hello python
hello python
hello python
hello python
HELLOWORLD
helloworld
Helloworld
2
3
ValueError:substring not found
False
False
True
['I', 'Love', 'Python']
['123', '456', '789']
123-456-789
I Love Python
4
10
10.0
-10
123
Hello python!
10 1.20 python
True
True
True
False
True
True
True
True
True
True
End

以上主要介绍了常用数据类型的简单使用,具体用法还需多多实践。

微信扫一扫

第七城市微信公众平台