数据类型的内置方法
数据类型(整型,列表,字典,元组,字符串)用来记录事务状态的,而事务也是不断变化的,需要不断修改,修改的话,每个数据类型都有自带的功能,可以称为内置方法.
int和float只做数字运算和比较的,并没有需要掌握的内置方法
#名字+ 括号的意思就是调用某个功能 1.关键字 int() 2.整型就是整数 主要用于计算 没有内置方法 3.类型转换 int(待转换的数据) int() #调用创建int类型的功能 float() #调用创建float类型的功能
--------------字符串转换为int 内部必须为纯数字情况可以转换,不能夹杂字母,小数点符号等-------------------------------- 例: # print(type(int('123'))) # print(type(int('123a321'))) # print(type(int('123.33')))
名称 | 符号 |
---|---|
二进制bin() | 0b是二进制数的标识 |
八进制oct() | 0o是八进制数的标识 |
十六进制hex() | 0x是十六进制数的标识 |
python中,数字前面没有任何标识,默认是十进制。
""" 二进制 八进制 十进制 十六进制 """ '''十进制转其他进制''' # print(bin(100)) # bin() 将十进制转二进制 0b1100100 0b是二进制数的标识 # print(oct(100)) # oct() 将十进制转八进制 0o144 0o是八进制数的标识 # print(hex(100)) # hex() 将十进制转十六进制 0x64 0x是十六进制数的标识 # 如果数字前面没有任何标识 默认就是十进制 ------------------------------'''其他进制转十进制'''------------------------------- print(int(0b1100100)) # 100 print(int(0o144)) # 100 print(int(0x64)) # 100 # 人为指定进制数 print(int('0b1100100', 2)) # 100 print(int('0o144', 8)) # 100 print(int('0x64', 16)) # 100
1.关键字 float # print(float('123')) # 123.0 # print(type(float('123'))) # float # print(float('123a123')) # print(float('123.12')) # 可以识别一个小数点 # print(float('123.123.1.2.2.2.2.2.2')) # 不可以 3.针对布尔值的特殊情况 print(float(True)) # 1.0 print(float(False)) # 0.0 print(int(True)) # 1 print(int(False)) # 0
补充说明
a = 23.00 b = 1.2 c = a * b print(c) # 27.599999999999998 ---------------------------------------------------------------------- python对数字不敏感 很容易出错 那python为什么还能做人工智能 数据分析 金融量化 是因为基于python开发的模块非常牛逼!!!(背后有势力!!!) ----------------------------------------------------------------
定义
使用单引号,双引号,三引号内包含的一串字符,称为字符串(str)
例: print(str(123), type(str(123))) print(str(123.11), type(str(123.11))) print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4]))) print(str(True), type(str(True))) print(str({'name': 'jason'}), type(str({'name': 'jason'}))) print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4)))) print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4}))) -------------------------------------输出结果------------------------------- 123 <class 'str'> 123.11 <class 'str'> [1, 2, 3, 4] <class 'str'> True <class 'str'> {'name': 'jason'} <class 'str'> (1, 2, 3, 4) <class 'str'> {1, 2, 3, 4} <class 'str'>
s1= 'hello jason!' --------------#字符串正向取值 索引取值:单个字符,支持负数------------------------- print(s1[0]) h print(s1[-1]) ! --------------字符串str来说,只能按照索引取值,不能改----------------------------- str1[1]='a' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
遵循顾头不顾尾,多个字符,支持负数,切片的顺序默认从左到右
s1= 'hello jason!' ------------------# 正向切片-------------------------------------------------- print(s1[0:3]) hel print(s1[-4:-1]) # 顾头不顾尾 son ----------------------#反向切片------------------------------------ print(s1[-1:-4]) #此时默认从左往右切,获取不到值 print(s1[-1:-4:-1]) # 此时默认从右往做切,可以获取值 !no ----------------------# 间隔(步长)/方向----------------------------------- # print(s1[:]) # 所有 # print(s1[::2]) # 针对整个字符串 隔一个取一个 # print(s1[0:5:1]) # hello 默认1可以不写 # print(s1[0:5:2]) # hlo #2是步长,每隔1个取1个
空格也算字符
print(len(s1)) 12
--------------------#strip()------------------------------------ name = ' jason ' print(len(name)) # 9 print(name.strip(), len(name.strip())) ---------------------结果---------------------------------------- jason 5 ------ strip(-) 指定移除-
方法 | 作用 |
---|---|
strip() | 移除左右两边的指定字符 |
Istrip() | 只移除左边的指定字符 |
rstrip() | 只移除右边的指定字符 |
lower() | 将英文字符全部变成小写 |
upper() | 将英文字符全部变成大写 |
startswith() | 判断字符串是否以括号内指定的字符开头,结果为布尔值True,或者False |
endswith() | 判断字符串是否以括号内指定的字符结尾,结果为布尔值True,或者False |
#快速操作例子 str3='abcde' >>> str3.strip() #默认移除首尾空格 'abcde' >>> str3.strip('a') #strip 默认移除首尾的字符,尾部没有a 'bcde' >>> str3.lstrip('e') #lstrip 上面也说了只移除左边的指定字符,左边没有,所以移除不了 'abcde' >>> str3.lstrip('a') #lstrip 成功移除'a'字符 'bcde' >>> str3.rstrip('e') #移除右边指定字符 'abcd' >>> str3.upper() #大写 'ABCDE' >>> str3.startswith('a') #判断是否以a开头 True >>> str3.startswith('b') #判断是否以b开头 False >>> str3.endswith('e') #判断是否以e结尾. True
方法 | 作用 |
---|---|
split() | split会按照从左到右的顺序对字符串进行切分,可以指定切割次数,切割得到的结果是list数据类型 |
rsplit() | rsplit与split相反,从有往左切割,也可以指定切割次数,切割得到的结果是list数据类型 |
join() | 从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串 |
replace() | 用新的字符替代旧的字符 |
isdigit | 判断字符是否为纯数字 最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景 如果要判断中文数字或罗马数字,则需要用到isnumeric。 |
count | 统计字符串出现的次数 |
# split # split会按照从左到右的顺序对字符串进行切分,可以指定切割次数 str4='a/b/c/d.txt' >>> str4.split('/',1) #以/为准,切割1次 ['a', 'b/c/d.txt'] #切割两次 >>> str4.split('/',2) ['a', 'b', 'c/d.txt'] #rsplit #rsplit 刚好与split相反,从右往左边切割,也可以指定切割次数 >>> str4.rsplit('/',2) #从右往左开始以/分割 ['a/b', 'c', 'd.txt'] >>> str4.rsplit('/',1) ['a/b/c', 'd.txt']
字符串的替换 replace() res = 'jason jason jason SB SB SB' print(res.replace('jason', 'tony')) # 从左往右全部替换 print(res.replace('jason', 'tony', 1)) # 从左往右替换指定个数
字符串的拼接join res1 = 'hello' res2 = 'world' print(res1 + res2) # 字符串支持加号拼接 print(res1 * 10) # 字符串支持乘号重复 print(''.join(['hello', 'world', 'hahaha'])) # join方法拼接 print('|'.join(['hello', 'world', 'hahaha'])) # join方法拼接 print('$'.join(['jason', 'say', 666])) # 列中的数据都必须是字符串类型 报错!!!
8.字符串的格式化输出 方式1: 等价于%s占位 没有什么优势 res1 = 'my name is {} my age is {}' print(res1.format('jason', 18)) 方式2: 支持索引取值 并且支持重复使用 res2 = 'my name is {0} my age is {1} {0} {1} {1} {1}' print(res2.format('jason', 18)) 方式3: 支持关键字取值(按k取值) 并且支持重复使用 res3 = '{name} {name} {age} my name is {name} my age is {age}' print(res3.format(name='jason', age=18)) 方式4:推荐使用(******) name = 'jason' age = 18 print(f'my name is {name} my age is {age} {name} {age}')
# 15.正文相关操作 res = 'my name is jason' print(res.title()) # My Name Is Jason print(res.capitalize()) # My name is jason
整型和浮点型不可以转换为列表,字符串转换成列表时,成单个字符,可负数。
1.关键字 list 2.类型转换 # print(type(list(123))) #不可转换 # print(type(list(123.22))) #不可转换 # print(type(list('123243jasdsad')), list('123243jasdsad')) # print(type(list({'name':"jason",'pwd':123})), list({'name':"jason",'pwd':123})) """能够被for循环的数据类型都可以转换成列表"""
练习 l1 = ['jason', 'kevin','oscar', 'tony'] print(l1[0]) #jason print(l1[-1]) #tony ---------------------------------#正向--------------------------------- print(l1[0:3]) #['jason', 'kevin', 'oscar'] --------------------------------反向切片--------------------------------------- print(l1[:]) #['jason', 'kevin', 'oscar', 'tony'] print(l1[-4:-1]) #['jason', 'kevin', 'oscar'] ------------------------------#间隔/方向------------------------------------ print(l1[::2]) #['jason', 'oscar'] ----------------------统计列表中数据值的个数------------------------------------ # print(len(l1)) # 4