Python基础:第二篇基本数据类型

一、str字符串

1.字符串首字符大写

自身不变,会生成一个新的值

v = name.capitalize() # 自动找到name关联的str类,执行其中的capitalize技能

print(name)

print(v)

2. 将所有大写变小写,casefold,德语、俄语、法语等

name = 'AleX'

v = name.casefold() 

print(name)

print(v)

  

 

3. 将所有大写变小写

name = 'AleX'

v = name.lower()

  

4. 文本居中
参数1: 表示总长度
参数2:空白处填充的字符(长度为1)

name = 'alex'
v = name.center(20)
print(v)
v = name.center(20,'行')
print(v)

  

5. 表示传入之在字符串中出现的次数
参数1: 要查找的值(子序列)
参数2: 起始位置(索引)
参数3: 结束位置(索引)

name = "alexasdfdsafsdfasdfaaaaaaaa"
v = name.count('a')
print(v)
v = name.count('df')
print(v)
v = name.count('df',12)
print(v)
v = name.count('df',0,15)
print(v)

  

6. 是否以xx结尾

name = 'alex'
v1 = name.endswith('ex')
print(v1)

  

7. 是否以xx开头

name = 'alex'
v2 = name.startswith('al')
print(v2)

  

 

8.encode转换字节码

v1 = name.encode(encoding='utf-8') 字节类型
print(v1)
v2 = name.encode(encoding='gbk') 字节类型
print(v2)

  

9. 找到制表符\t,进行替换(包含前面的值)

PS: \n
name = "al\te\tx\nalex\tuu\tkkk"
v = name.expandtabs(20)
print(v)

 

10. 找到指定子序列的索引位置:不存在返回-1
name = 'alex'
v = name.find('o')
print(v)
v = name.index('o')
print(v)

11.字符串格式化

tpl = "我是:%s;年龄:%s;性别:%s"

tpl = "我是:{0};年龄:{1};性别:{2}"
v = tpl.format("李杰",19,'都行')
print(v)

tpl = "我是:{name};年龄:{age};性别:{gender}"
v = tpl.format(name='李杰',age=19,gender='随意')
print(v)

tpl = "我是:{name};年龄:{age};性别:{gender}"
v = tpl.format_map({'name':"李杰",'age':19,'gender':'中'})
print(v)

  

12. 是否是数字、汉子.

name = 'alex8汉子'
v = name.isalnum() 字,数字 判断是否数字和字母的组合
print(v) True
v2 = name.isalpha()判断是否字母 
print(v2) False

13. 判断是否是数字

num = '②'
v1 = num.isdecimal() '123'
v2 = num.isdigit() '123','②'
v3 = num.isnumeric() '123','二','②'
print(v1,v2,v3)

14. 是否是表示符

n = 'name'
v = n.isidentifier()
print(v)

  

15.是否全部是大写或者小写

name = "ALEX"
v = name.islower()是否小写
print(v)
v = name.isupper()是否是大写
print(v)

16.全部变大写或者小写,

name = 'alex'
v = name.upper() 全部变大写
lower()#全部变小写 print(v)

 

17.是否包含隐含的\t \n等这些

name = "钓鱼要钓刀鱼,\n刀鱼要到岛上钓"
v = name.isprintable()
print(v)

 

 

18.是否全部是空格

name = ' '
v = name.isspace()
print(v)

  

19.元素拼接(元素字符串) *****

name = 'alex'
v = "_".join(name) 内部循环每个元素
print(v)
name_list = ['海峰','杠娘','李杰','李泉']
v = "搞".join(name_list)
print(v)

  

20. 左右填充

center,rjust,ljust
name = 'alex'
v = name.rjust(20,'*')
print(v)

  

21. 对应关系 

将aeiou替换为12345

结果:12345

m = str.maketrans('aeiou','12345') 

name = "aeiou"
v = name.translate(m)
print(v)

  

22. 分割,保留分割的元素

content = "李泉SB刘康SB刘一"
v = content.partition('SB') partition
print(v)

  

23. 替换

content = "李泉SB刘康SB刘浩SB刘一"
v = content.replace('SB','Love')
print(v)
v = content.replace('SB','Love',1)
print(v)

  

24,移除空白,\n,\t,自定义

name = 'alex\t'
v = name.strip() 空白,\n,\t
print(v)

  

25. 大小写转换

name = "Alex"
v = name.swapcase()
print(v)

  

26. 填充0

name = "alex"
v = name.zfill(20)
print(v)

  

27.字符串相加

v1 = 'alex'
v2 = 'eric'
v = v1 + v2 执行v1的__add__功能
print(v)

字符串重点功能

name = 'alex'
name.upper()#全部变大写 结果:ALEX
name.lower()#全部变小写将所以大写变为消息呢
name.split()#分割字符
name.find()#找到指定子序列的索引位置:不存在返回-1
name.strip()#移除空白,\n,\t,自定义
name.startswith()#以什么开头
name.endswith#以什么结尾
name.format()#格式话输出
name.replace()#替换
"alex".join(["aa",'bb'])#元素拼接(元素字符串)
#索引
name[0]
name[0:3]
name[0:3:2]
len(name)

二、int整数

1. 当前整数的二进制表示,最少位数

age = 4 100
print(age.bit_length())

2. 获取当前数据的字节表示

 age = 15
 v = age.to_bytes(10,byteorder='big')
 v = age.to_bytes(10,byteorder='little')
 print(v)

三、bool布尔值

v = 0 1,-1
v = ""
v = []
--> 空内容:False

四、list列表

list列表:可变类型可以嵌套

user_list = ['李泉','刘一','刘康','豆豆','小龙']  

1.追加功能

user_list = ['李泉','刘一','刘康','豆豆','小龙']  #将'刘铭'追加到最后
user_list.append('刘铭')
print(user_list)

2. 清空

user_list = ['李泉','刘一','刘康','豆豆','小龙'] 可变类型
user_list.clear()
print(user_list)

 3. 拷贝(浅拷贝)

 user_list = ['李泉','刘一','刘康','豆豆','小龙'] 
 v = user_list.copy()
 print(v)
 print(user_list)

 4. 计数

 user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] 
 v = user_list.count('李泉')
 print(v)

 

5. 扩展原列表

user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
user_list.extend(['郭少龙','郭少霞'])#添加多个
print(user_list)

  

6. 查找元素索引,没有报错

user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] 
v = user_list.index('李海')
print(v)

  

7. 删除并且获取元素 - 索引

user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] 
v = user_list.pop(1)
print(v)
print(user_list)

  

8. 删除 - 值

user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
user_list.remove('刘一')
print(user_list)

  

9. 翻转

user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] 
user_list.reverse()
print(user_list)

10. 排序: 欠参数

nums = [11,22,3,3,9,88]
print(nums)
排序,从小到大
nums.sort()
print(nums)
从大到小
nums.sort(reverse=True)
print(nums)

11.额外

#通过索引取值 

#结果['李泉', '李泉', '豆豆']
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
 user_list[0]
 user_list[0:5:2]#0-5索引2是步长
 del user_list[3]

  

#for循环列表索引在根据索引取值
 user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
 for i in user_list:
    print(i)

五、range,enumrate

1.range用法 

#需求1、请输出1-10
#3.0写法 for i in range(1,11): print(i)
#2.7写法
range(1,11)
#区别:x: 不会立即生成,只有循环迭代时,才一个一个生成

  

#需求2、输出1到10的奇数
for i in range(1,11,2): #从1开始 小于11 2步长
     print(i)

 

#需求3、输出10到1

for i in range(10,0,-1): #从10开始
     print(i)

python3.0和2.0用法差别:

- 2.7:
range()
xrange() 不会立生成,迭代之后才一个一个创建;
- 3.x
range() 不会立生成,迭代之后才一个一个创建;

#根据list下标循环输出数据
li = ['eric','alex','tony']
  range,len,li循环
 for i in range(0,len(li)):
     ele = li[i]
     print(ele)

  

li = ['eric','alex','tony']
 for i in li:
     print(i)

  

for i in range(0,len(li)):
     print(i+1,li[i])

2. enumerate

 li = ['eric','alex','tony']

 for i,ele in enumerate(li,1):#列表内容和序号

     print(i,ele)

六、元组

tuple:元组,不可被修改的列表;不可变类型 

#获取个数
user_tuple = ('alex','eric','seven','alex')
 v = user_tuple.count('alex')

#获取值的第一个索引位置
 v = user_tuple.index('alex')
 print(v)

#循环
user_tuple = ('alex','eric','seven','alex')
 for i in user_tuple:
     print(i)

#根据索引查找
 v = user_tuple[0]

 v = user_tuple[0:2]

#嵌套
 user_tuple = ('alex','eric','seven',['陈涛','刘浩','赵芬芬'],'alex')
 user_tuple[0] = 123   x
 user_tuple[3] = [11,22,33] x
 user_tuple[3][1] = '刘一'
 print(user_tuple)

元组最后,加逗号 

七、字典

1. 清空、

dic = {'k1':'v1','k2':'v2'}
dic.clear()
print(dic)  

2. 浅拷贝

dic = {'k1':'v1','k2':'v2'}
v = dic.copy()
print(v)

3. 根据key获取指定的value;不存在不报错

dic = {'k1':'v1','k2':'v2'}
v = dic.get('k1111',1111)
print(v)
v = dic['k1111']
print(v)

4. 删除并获取对应的value值

dic = {'k1':'v1','k2':'v2'}
v = dic.pop('k1')
print(dic)
print(v)

5. 随机删除键值对,并获取到删除的键值

dic = {'k1':'v1','k2':'v2'}
v = dic.popitem()
print(dic)
print(v)
k,v = dic.popitem() ('k2', 'v2')
print(dic)
print(k,v)

6. 增加,如果存在则不做操作

dic = {'k1':'v1','k2':'v2'}
dic.setdefault('k3','v3')
print(dic)
dic.setdefault('k1','1111111')
print(dic)

 

7. 批量增加或修改

dic = {'k1':'v1','k2':'v2'}
dic.update({'k3':'v3','k1':'v24'})#字典中没有增加有修改
print(dic)


dic = dict.fromkeys(['k1','k2','k3'],123)#结果{'k1': 123, 'k2': 123, 'k3': 123}
print(dic)

dic = dict.fromkeys(['k1','k2','k3'],123)#结果{'k1': 'asdfjasldkf', 'k2': 123, 'k3': 123}
dic['k1'] = 'asdfjasldkf'
print(dic)

#字典嵌套

dic = {
'k1': 'v1',
'k2': [1,2,3,],
(1,2): 'lllll',
1: 'fffffffff',
111: 'asdf',
}

  

八、set集合

集合,不可重复的列表;可变类型

1.s1中存在,s2中不存在

s1 = {"alex",'eric','tony','李泉','李泉11'}
s2 = {"alex",'eric','tony','刘一'}

v = s1.difference(s2)

print(v)

s1.difference_update(s2)
print(s1)

2.s2中存在,s1中不存在

v = s2.difference(s1)
print(v)

3.s2中存在,s1中不存在

s1中存在,s2中不存在
v = s1.symmetric_difference(s2)
print(v)

4. 交集

v = s1.intersection(s2)

5. 并集

v = s1.union(s2)
print(v)

6. 移除

s1 = {"alex",'eric','tony','李泉','李泉11'}
s1.discard('alex')
print(s1)


s1.update({'alex','123123','fff'})
print(s1)

7.遍历 

s1 = {"alex",'eric','tony','李泉','李泉11'}
 for i in s1:
     print(i)

s1 = {"alex",'eric','tony','李泉','李泉11',(11,22,33)}
 for i in s1:
     print(i)

  

  

  

 

 

 

posted @ 2017-05-16 11:41  hanjialong  阅读(248)  评论(0编辑  收藏  举报