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
posted @ 2022-07-04 18:52  名字长的像一只老山羊  阅读(26)  评论(0编辑  收藏  举报