python06-基本数据类型-内置方法
今日学习
数据类型的内置方法
数据类型的内置方法
数据类型(整型,列表,字典,元组,字符串)用来记录事务状态的,而事务也是不断变化的,需要不断修改,修改的话,每个数据类型都有自带的功能,可以称为内置方法.
整型(int)
int和float只做数字运算和比较的,并没有需要掌握的内置方法
#名字+ 括号的意思就是调用某个功能
1.关键字
int()
2.整型就是整数 主要用于计算 没有内置方法
3.类型转换
int(待转换的数据)
int() #调用创建int类型的功能
float() #调用创建float类型的功能
-
int类型转换
--------------字符串转换为int 内部必须为纯数字情况可以转换,不能夹杂字母,小数点符号等--------------------------------
例:
# print(type(int('123')))
# print(type(int('123a321')))
# print(type(int('123.33')))
-
int进制转换
名称 符号 二进制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
浮点型(float)
-
类型转换
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)
-
类型转换
-
str 可以将任意类型的数据转换成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'>
-
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()括号内默认移除空格
--------------------#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])) # 列中的数据都必须是字符串类型 报错!!!
-
format
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