Python3学习之路(第二章)

基本数据类型详解

一、str 字符串

1、capitalize 字符串首字母大写

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

1 name = 'guoshaolong'
2 new_name = name.capitalize()
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 guoshaolong
8 Guoshaolong

2、casefold 将所有大写变小写,casefold可以使任何语言的大写变小写

1 name = 'GuoShaoLong'
2 new_name = name.casefold()
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 GuoShaoLong
8 guoshaolong

3、lower 将所有大写变小写,lower只可以改变英文

1 name = 'GuoShaoLong'
2 new_name = name.lower()
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 GuoShaoLong
8 guoshaolong

4、center  文本居中

# 参数1: 表示总长度
# 参数2:空白处填充的字符(长度为1)

1 name = 'guoshaolong'
2 new_name = name.center(20,'#')
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 guoshaolong
8 ####guoshaolong#####     

5、count 统计传入值在字符串中出现的次数

# 参数1: 要查找的值(子序列)
# 参数2: 起始位置(索引)
# 参数3: 结束位置(索引)

 1 neme = 'guoshaolong'
 2 v1 = neme.count('o')
 3 v2 = neme.count('o',0,6)
 4 v3 = neme.count('o',3,9)
 5 print(neme)
 6 print(v1)
 7 print(v2)
 8 print(v3)
 9 
10 输出内容:
11 guoshaolong
12 3
13 1
14 2

6、endswith 是否以xx结尾,返回值是True或False

1 name = 'guoshaolong'
2 new_name = name.endswith('ong')
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 guoshaolong
8 True

7、startswith 是否以xx开头,返回值是True或False

1 name = 'guoshaolong'
2 new_name = name.startswith('gu')
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 guoshaolong
8 True

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

# 参数默认是8

 1 name = 'guo\tshao\tlong\nguo\tshao\tlong'
 2 new_name = name.expandtabs(10)
 3 print(name)
 4 print(new_name)
 5 
 6 输出内容:
 7 guo    shao    long
 8 guo    shao    long
 9 guo       shao      long
10 guo       shao      long

9、 找到指定子序列的索引位置

  find:存在返回索引位置,不存在返回  -1

  index:存在返回索引位置,不存在 报错

1 name = 'guoshaolong'
2 v1 = name.find('s')
3 v2 = name.index('s')
4 v3 = name.find('x')
5 # v4 = name.index('x')
6 print(v1,v2,v3)
7 
8 输出内容:
9 3 3 -1

10、字符串格式化

  % :根据百分号

1 v1 = '姓名:%s;年龄:%s;性别:%s'
2 new_v1 = v1%('郭少龙',20,'')
3 print(new_v1)
4 
5 输出内容:
6 姓名:郭少龙;年龄:20;性别:男

  format :根据下标

1 v2 = '姓名:{0};年龄:{1};性别:{2}'
2 new_v2 = v2.format('郭少龙',20,'')
3 print(new_v2)
4 
5 输出内容:
6 姓名:郭少龙;年龄:20;性别:男

  format_map :根据键值对

1 v3 = '姓名:{name};年龄:{age};性别:{gender}'
2 new_v3 = v3.format_map({'name':'郭少龙','age':20,'gender':''})
3 print(new_v3)
4 
5 输出内容:
6 姓名:郭少龙;年龄:20;性别:男

11、isalnum 判断是否是数字、字母、汉字

# 数字、字母、汉字  True

# 特殊符号 False

1 name1 = 'guoshaolong8啊'
2 name2 = 'guoshaolong8啊.'
3 v1 = name1.isalnum()
4 v2 = name2.isalnum()
5 print(v1,v2)
6 
7 输出内容:
8 True False

12、判断是否是数字

isdecimal  # '123'

isdigit   # '123','②'

isnumeric   # '123','二','②'

 1 num1 = "123"
 2 num2 = ""
 3 num3 = ""
 4 v1 = num1.isdecimal()    # '123'
 5 v2 = num2.isdigit()      # '123','②'
 6 v3 = num3.isnumeric()    # '123','二','②'
 7 print(v1,v2,v3)
 8 
 9 输出内容:
10 True True True    

13、isidentifier 判断变量名是否合法

1 name1 = 'guoshaolong1'
2 name2 = '1guoshaolong'
3 v1 = name1.isidentifier()
4 v2 = name2.isidentifier()
5 print(v1,v2)
6 
7 输出内容:
8 True False

14、islower 判断是否全部是小写

1 name1 = 'guoshaolong'
2 name2 = 'Guoshaolong'
3 v1 = name1.islower()    #判断是否全部是小写
4 v2 = name2.islower()    #判断是否全部是小写
5 print(v1,v2)
6 
7 输出内容:
8 True False

  isupper 判断是否全部是大写

1 name3 = 'GUOSHAOLONG'
2 name4 = 'gUOsHAOlONG'
3 v3 = name3.isupper()    #判断是否全部是大写
4 v4 = name4.isupper()    #判断是否全部是大写
5 print(v3,v4)
6 
7 输出内容:
8 True False

15、upper 全部变大写

1 name = 'guoshaolong'
2 new_name = name.upper()
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 guoshaolong
8 GUOSHAOLONG

   lower 全部变小写

1 name = 'GUOSHAOLONG'
2 new_name = name.lower()
3 print(name)
4 print(new_name)
5 
6 输出内容:
7 GUOSHAOLONG
8 guoshaolong

16、isprintable 是否包含隐含的\n \t

#不包含返回True ,包含返回False

1 name1 = 'guoshaolong'
2 name2 = 'guo\nshao\nlong'
3 v1 = name1.isprintable()
4 v2 = name2.isprintable()
5 print(v1,v2)
6 
7 输出内容:
8 True False

17、isspace 是否全部是空格

1 name = '  '
2 v = name.isspace()
3 print(v)
4 
5 输出内容:
6 True

18、元素拼接(元素字符串) 重要程度五颗星*****

 1 name = 'guoshaolong'
 2 v1 = "_".join(name)
 3 print(v1)
 4 
 5 name_list = ['张三','李四','王五']
 6 v2 = "*".join(name_list)
 7 print(v2)
 8 
 9 输出内容:
10 g_u_o_s_h_a_o_l_o_n_g
11 张三*李四*王五

19、左右填充

  center  文本居中(详见第4个)

  rjust  右填充

  ljust  左填充

1 name = 'guoshaolong'
2 v1 = name.rjust(20 ,"*")    #右填充
3 v2 = name.ljust(20 ,"*")    #左填充
4 print(v1)
5 print(v2)
6 
7 输出内容:
8 *********guoshaolong
9 guoshaolong*********

20、对应关系 + 翻译

1 m = str.maketrans('aeiou','12345')
2 name = 'abcdefghijklmnopqrstuvwxyz'
3 v = name.translate(m)
4 print(v)
5 
6 输出内容:
7 1bcd2fgh3jklmn4pqrst5vwxyz

21、partition 分割,保留分割的元素

1 name = 'guo.shao.long'
2 v = name.partition('.')
3 print(v)
4 
5 输出内容:
6 ('guo', '.', 'shao.long')

22、replace 替换

1 name = 'guo.shao.long'
2 v1 = name.replace('.','*')
3 v2 = name.replace('.','*',1)
4 print(v1)
5 print(v2)
6 
7 输出内容 :
8 guo*shao*long
9 guo*shao.long

23、strip 移除空白,\n,\t

1 name = '  guoshaolong\t'
2 v = name.strip()
3 print(name)
4 print(v)
5 
6 输出内容:
7   guoshaolong    
8 guoshaolong

24、swapcase 大小写转换

1 name = 'GuoShaoLong'
2 v = name.swapcase()
3 print(name)
4 print(v)
5 
6 输出内容:
7 GuoShaoLong
8 gUOsHAOlONG

25、zfill 往前面填充0

1 name = 'guoshaolong'
2 v = name.zfill(20)
3 print(v)
4 
5 输出内容:
6 000000000guoshaolong

26、encode 转换成字节

1 name = '郭少龙'
2 v1 = name.encode(encoding='utf-8')
3 v2 = name.encode(encoding='gbk')
4 print(v1)
5 print(v2)
6 
7 输出内容:
8 b'\xe9\x83\xad\xe5\xb0\x91\xe9\xbe\x99'
9 b'\xb9\xf9\xc9\xd9\xc1\xfa'

二、int 整数

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

 1 age1 = 1
 2 age2 = 10
 3 age3 = 100
 4 print(age1.bit_length())
 5 print(age2.bit_length())
 6 print(age3.bit_length())
 7 
 8 输出内容:
 9 1
10 4
11 7

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

1 age = 20
2 v1 = age.to_bytes(10,byteorder='big')
3 v2 = age.to_bytes(10,byteorder='little')
4 print(v1)
5 print(v2)
6 
7 输出内容:
8 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'
9 b'\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00'

三、bool 布尔值

1、只有True或False

 1 v1 = 0
 2 v2 = 1
 3 v3 = -1
 4 v4 = ''
 5 v5 = []
 6 print(bool(v1))
 7 print(bool(v2))
 8 print(bool(v3))
 9 print(bool(v4))
10 print(bool(v5))
11 
12 输出内容:
13 False
14 True
15 True
16 False
17 False

四、list 列表

1、append 追加

1 user_list = ['老大','老二','老三','老四']
2 user_list.append('老五')
3 print(user_list)
4 
5 输出内容:
6 ['老大', '老二', '老三', '老四', '老五']

2、clear 清空

1 user_list = ['老大','老二','老三','老四']
2 user_list.clear()
3 print(user_list)
4 
5 输出内容:
6 []

3、copy 拷贝(浅拷贝)

1 user_list = ['老大','老二','老三','老四']
2 v = user_list.copy()
3 print(user_list)
4 print(v)
5 
6 输出内容:
7 ['老大', '老二', '老三', '老四']
8 ['老大', '老二', '老三', '老四']

4、count 计数

1 user_list = ['老大','老二','老三','老四','老三']
2 v = user_list.count('老三')
3 print(user_list)
4 print(v)
5 
6 输出内容:
7 ['老大', '老二', '老三', '老四', '老三']
8 2

5、extend 扩展原列表

1 user_list = ['老大','老二','老三','老四']
2 user_list.extend(['郭少龙','少龙'])
3 print(user_list)
4 
5 输出内容:
6 ['老大', '老二', '老三', '老四', '郭少龙', '少龙']

6、index 查找元素索引,不存在则报错

1 user_list = ['老大','老二','老三','老四']
2 v = user_list.index('老大')
3 print(v)
4 
5 输出内容:
6 0

7、pop 删除并且获取元素 - 根据索引删除

1 user_list = ['老大','老二','老三','老四']
2 v = user_list.pop(1)
3 print(v)
4 print(user_list)
5 
6 输出内容:
7 老二
8 ['老大', '老三', '老四']

8、remove 删除 - 根据值删除

1 user_list = ['老大','老二','老三','老四']
2 user_list.remove('老二')
3 print(user_list)
4 
5 输出内容:
6 ['老大', '老三', '老四']

9、reverse 翻转

1 user_list = ['老大','老二','老三','老四']
2 user_list.reverse()
3 print(user_list)
4 
5 输出内容:
6 ['老四', '老三', '老二', '老大']

10、sort  排序

 1 正序:
 2 nums = [5,4,3,2,6,10,7]
 3 nums.sort()
 4 print(nums)
 5 
 6 输出内容:
 7 [2, 3, 4, 5, 6, 7, 10]
 8 
 9 
10 倒序:
11 nums = [5,4,3,2,6,10,7]
12 nums.sort(reverse=True)
13 print(nums)
14 
15 输出内容:
16 [10, 7, 6, 5, 4, 3, 2]

11、补充内容:range 

  1、输出1-10

 1 for i in range(1,11):
 2     print(i)
 3 
 4 输出内容:
 5 1
 6 2
 7 3
 8 4
 9 5
10 6
11 7
12 8
13 9
14 10

  2、输出1-10 奇数

1 for i in range(1,11,2):
2     print(i)
3 
4 输出内容:
5 1
6 3
7 5
8 7
9 9

  3、倒序输出10-1

 1 for i in range(10,0,-1):
 2     print(i)
 3 
 4 输出内容:
 5 10
 6 9
 7 8
 8 7
 9 6
10 5
11 4
12 3
13 2
14 1

  4、输出列表内容+序号

1 name = ['张三','李四','王五']
2 for i in range(0,len(name)):
3     print(i+1,name[i])
4 
5 输出内容:
6 1 张三
7 2 李四
8 3 王五

12、补充内容:enumerate 额外生成一列有序的数字

1 name = ['张三','李四','王五']
2 for i,ele in enumerate(name,1):
3     print(i,ele)
4 
5 输出内容:
6 1 张三
7 2 李四
8 3 王五

五、tuple:元组(不可被修改的列表;不可变类型)

# 元组如果只有一个值,需要在最后加逗号

1、count 获取个数

1 user_tuple = ('张三','李四','王五','张三',)
2 v = user_tuple.count('张三')
3 print(v)
4 
5 输出内容:
6 2

2、index 获取值的第一个索引位置

1 user_tuple = ('张三','李四','王五','张三',)
2 v = user_tuple.index('张三')
3 print(v)
4 
5 输出内容:
6 0

六、dict:字典

1、clear 清空

1 dic = {'k1':'v1','k2':'v2'}
2 dic.clear()
3 print(dic)
4 
5 输出内容:
6 {}

2、copy 浅拷贝

1 dic = {'k1':'v1','k2':'v2'}
2 v = dic.copy()
3 print(dic)
4 print(v)
5 
6 输出内容:
7 {'k2': 'v2', 'k1': 'v1'}
8 {'k2': 'v2', 'k1': 'v1'}

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

1 dic = {'k1':'v1','k2':'v2'}
2 v1 = dic.get('k111','111')
3 print(v1)
4 
5 输出内容:
6 111

4、pop 删除并获取对应的value值

1 dic = {'k1':'v1','k2':'v2'}
2 v1 = dic.pop('k1')
3 print(v1)
4 
5 输出内容:
6 v1

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

1 dic = {'k1':'v1','k2':'v2'}
2 v = dic.popitem()
3 print(v)
4 print(dic)
5 
6 输出内容:
7 ('k2', 'v2')
8 {'k1': 'v1'}

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

1 dic = {'k1':'v1','k2':'v2'}
2 dic.setdefault('k3','v3')
3 print(dic)
4 
5 输出内容:
6 {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}

7、update 批量增加或修改

1 dic = {'k1':'v1','k2':'v2'}
2 dic.update({'k3':'v3','k1':'v33333'})
3 print(dic)
4 
5 输出内容:
6 {'k2': 'v2', 'k1': 'v33333', 'k3': 'v3'}

七、set,集合(不可重复的列表;可变类型)

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

 1 s1 = {"a",'b','c','d','e'}
 2 s2 = {"a",'b','c','d'}
 3 v = s1.difference(s2)
 4 print(v)
 5 #### s1中存在,s2中不存在,然后对s1清空,然后在重新复制
 6 s1.difference_update(s2)
 7 print(s1)
 8 
 9 输出内容:
10 {'e'}
11 {'e'}

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

1 s1 = {"a",'b','d','e'}
2 s2 = {"a",'b','c','d'}
3 v = s2.difference(s1)
4 print(v)
5 
6 输出内容:
7 {'c'}

3、

 

posted @ 2017-05-09 19:11  郭少龙  阅读(207)  评论(0编辑  收藏  举报