Python基础之数据类型

Python的数据类型主 要分为 整型(数字类型) 字符串 列表  元组  字典   集合   布尔类型

按照有序无序分为:字符串 列表 元组(有序,可以通过下标访问)     数字 字典 集合(无序)

按照可变不可变分为: 列表 字典 集合(可变数据)         数字  字符串 元组(不可变数据)

 

使用内置函数type()可以查看数据的类型

 

一、整型

1、强制类型转换

  可以将字符串类型转换为整型 a = int(input('请输入用户名:')); 整型不可进行for循环 所以不能通过list()方法强制转化为列表

 

 

2、整型可以用到的方法

  bit_length() 统计当前数字的二进制位数  例如:3 11 的二进制位数都为2

 

 

二、 字符串

字符串是用的最多的数据类型之一 ,它有很多的内置方法可以使用:使用成员运算符 "." 即可查看该字符串变量的所有方法

 

判断属性方法

istitle() 判断是否是标题(每个单词的首字母大写)

isaplha()     判断是否是字母

isdigit() isnumeric()      判断是否是数字

isdecimal()      判断是否是十进制数(用的比较多)
isidentifer()     判断是否是标识符

string = " 黄小德123abc12@ "
print(string.capitalize())  #首字母大写
print(string.startswith(" "))  #以什么开头可以指明 起始位置,结束位置
print(string.endswith("c"))    #以什么结尾 可以指明 起始位置,结束位置
print(string.find("a"))     #寻找子序列 并返回开始的位置 默认从前往后找 可以指定寻找的范围
print(string.count("1"))   #从字符串中去寻找指定的字符出现的次数,可以指明 起始位置,结束位置 有范围的一般都是包前不包后
print(string.index("b"))  #返回索引

 

 join()是字符串中的每一个元素按照指定的分隔符进行拼接

string = " 黄小德123abc12@ "
string1 = '+'.join(string)
print(string1)

 

 格式控制方法

format()       格式化 将字符串中的占位符替换为指定的值 有两种方式isalnum() 判断是否只是数字或者字母 返回布尔类型

center(20, '*')     整个字符的长度改为20 将内容居中 用指定的参数填充空白

ljust(20,'*')右边补充*
rjust(20, '*') 左边补充*
zfill(20) 默认填充0

expandtabs(20) 20个字符断句

 

 大小写转换方法

lower() 转换为小写
upper()转换为大写

swapcase() 大小写转换
issupper() 是否全部大写

casefold() lower()     都可以变小写 但是casefold()的功能更加强大 它可以将很多未知的对应变小写

 

去除内容方法

lstrip() 去除左边的空格而且可以移除换行和制表
lstrip('x') 去除指定的内容
rstrip()
stip() 去除所有的空格

 

maketrans() 和 translate() 做对应关系的替换

 

v = 'sdfsadfgsdsdfg'
m = str.maketrans('aeiou', '12345')
new_v = v.translate(m)
print(new_v)

 

分割字符串方法

partitions() 分割成三部分
split() 分割
spilt('x',2) 分割的参数和次数
rsplit()

 

 

替换

replace('a', 'b') 用后面的替换前面的

 

字符串的索引、切片以及求长度函数


索引

string="hxd123"
for  i  in  range(len(string)): 
    print(i)

 

切片

string="hxd456"
print(string[0:3])     #从前往后切片
print(string[2:-1])  #从后往前切片

 

求长度

string="45789"
print(len(string))

 

三、列表

列表的常用操作方法:

append([1,2]) 追加 把[1,2]当做一个整体追加到列表的末尾
clear() 清空
extend([1,2]) 扩展原来的列表 把[1,2]里面的每个元素遍历添加到列表的末尾 里面的参数必须是可迭代的对象
index(123) 返回123首次出现的位置
insert(5,123) 在第六位插入值123

ls = [1, 5, 8, "hxd", 'a', ['x', 'y', 's']]
ls.append("t")
ls.extend([99, 10])
ls.insert(2, "aa")
print(ls.index(1))
for i in ls:
    print(i)

 

 

列表的删除方法


pop() 默认移除列表的最后一个元素 并且返回移除的元素
del a_list[1] 删除第二个元素
remove(123) 删除指定的元素
reverse() 反转
sort() 排序 sort(reverse=True) 倒序排列

 

四、元组

创建元祖的时候建议多加一个逗号;元组元素不能被修改 不能被增加或者删除;可以被for循环 可以迭代

 

列表和元组之可以转换 列表和字符串  字符串和元组之间都可以通过强制类型转换方法进行相互转换

列表 元组 字符串都是可迭代对象 可以通过for 循环访问

元祖的一级元素不可修改但是 元组里面元组的值可以进行修改

 

tu = (1,"hxd",'a',[1,5], )

 

 

五、字典

字典里面可以是任何类型的数值    字典里面的key 不能是字典 列表

 

info = {
    'k1':18,
    'k2': True,
    'k3': [
        11, [], (11,33), 22,{'k1':123,}
    ],
    'k4': (212, '123')
}

v = info['k3'][2][0]
print(v)

 

字典常用的方法:

字典的键、值、键值对的获取

info.keys()      #获取字典的键

info.values()      #获取字典的值

info.get("name")    #获取指定键的值

info.items()      #获取键值对

 

info = {
    "name": "hxd",
    "sex": "male",
    "age": 23,
    "address": "郑州",
    "hobby": ["听歌", "看电影", "旅游", "羽毛球"]
}
for i in info.keys():
    print(i)

for i in info.values():
    print(i)
    
for i in info.items():
    print(i)
    
print(info.get("name"))
info.setdefault("salary", 10000)
info.popitem()

info2 = {
    "age": 24
}
info.update(info2)

 

 

 

字典的删除

可以使用 del info[key]

pop() 指定删除的键值对并返回所删除的键值对
popitem() 随机删除键值对

 

字典设置默认值以及更新


setdefault('name', 'zhangsan') 设置值 如果已经存在不设置 获取当期key对应的值
如果不存在 设置新的值 获取当前key对应的值

update() 更新 如果已经存在就覆盖掉 如果不存在不就添加

fromkeys(['k1'],123) 根据序列创建字典 并指定统一的值

 

六、集合


集合:由不同元素组成 集合里面的元素无序只能存放数字字符串和元组(不可变得数据类型) 无序 元素可哈希
集合拥有自动去重的功能

 

集合的常用方法:

集合本身是可变的  如果定义为frozenset 则集合是不可变集合;    使用set() 函数可以把其他类型的数据变成集合类型 set方法可以自动去掉重复的数据

add() 添加元素
update() 更新元素可以将两个集合合并 不会去重 可以传可迭代的多个值(元组 列表)
pop() 随机删除一个元素
remove() 删除指定元素 如果不存在会报错
clear() 清空集合
disgard() 如果不存在不会报错
issubset() 判断子集
isspuerset() 判断父集

 

集合的并交差

并集 union    |
交集 intersection   &
差集 differ   -
交叉补集 先做并集然后减去交集 symmetric_difference

 

s1 = {"hxd", 123, 'a', 666, '#'}
s2 = {"123", 123, 'b', "#"}
print(s1.union(s2))      #求两个集合的并集
print(s1.intersection(s2))   #求两个集合的交集
print(s1.difference(s2))   #求两个集合的差集

 

posted @ 2018-12-17 14:34  hxd-python  阅读(263)  评论(0)    收藏  举报