python进阶之数字类型内置方法和字符串类型内置方法

旧城冷巷雨未停 提交于 2020-02-23 13:01:03

今天开始学习python进阶的知识点了,更加烧脑了,哈哈

一、数据类型内置方法

总结模板:

  • 作用

  • 定义方式

  • 内置方法

  • 存一个值还是多个值

  • 有序or无序(有序:也就是有索引,无序:无索引)

  • 可变or不可变(重点)

    可变:变量值变id不变

    不可变:变量值变id也变

    id不变值可变,即在原值的基础上修改,则为可变数据类型;值变id也变,即重新申请一个空间放入新值,则为不可变数据类型。

1.1 数字类型内置方法

1.1.1 整型

  • 作用:表示年龄、号码、等级等

  • 定义方式:可以使用int()方法将纯数字的字符串转为十进制的整型

    x = 10
    x = int('10')
    x = int(10.1)
    print(x)         # 10
    x = int('10.1')  # 报错,int()里10.1本来就是字符串了,不需要加引号
    print(x)
  • 内置方法:没有内置方法,只有算术运算+-*/和比较运算> < >= <=

  • 存一个值还是多个值:存一个值

  • 有序or无序:整型只有一个值,没有这个说法

  • 可变or不可变:不可变

    x=10
    print(id(x))   # id为1925279488
    x=11
    print(id(x))   # id为1925279520

    值变id也变,所以整型为不可变

1.1.2浮点型

  • 作用:用来表示薪资、身高、体重等

  • 定义方式:可以使用float()方法将纯数字的字符串转为浮点型数字

    x = float('111')
    print(x)        #  输出为111.0
    print(type(x))  #  <class 'float'>
  • 内置方法:没有内置方法,只有算术运算+-*/和比较运算> < >= <=

  • 存一个值还是多个值:一个值

  • 有序or无序:没有这一说法

  • 可变or不可变(重点):不可变

数字类型都不可变

1.2 字符串类型内置方法

  • 作用:描述性质的东西,如人的名字、单个爱好、地址、国家等

  • 定义方式:使用''、""、''''''、""""""包裹的的一串字符

    s = 'sdfklsdjfk'
    s = b'sdkfljl' # 打印出来的bytes类型,二进制类型,010101010100110100  # 有这种二进制的定义方式,其实一点用都没有
    print(s)
    
    # \n 换行
    s  = 'a\na'  # 碰到斜杠了,计算机就清楚下一个字符和\拼接在一起会有特殊的意义
    print(s)  
    
    # \t 缩进4个空格
    s = 'a\t\ta'
    print(s)   # 输出结果为a    a
    
    # \r 回退上一个打印结果,覆盖上一个打印结果
    print(r'\ra',end='')   # 让\r变得无意义
    print('\\ra',end='')  # 加一个\让后面的\变得无意义
    
    
    # s = 'a\\na'
    # print(s)
    # s = r'\ra\t\na'  # raw
    # print(s)
  • 内置方法:

s='nick handsome'
# 一、优先掌握:
# 1、按索引取值(只可取,不可改变)
print(s[1])  # 输出为i

# 2、切片(顾头不顾尾,步长)
# 索引切片
msg = 'hello nick'
#      0123456789  # 索引序号

print(f'切片3-最后: {msg[3:]}')  # 从索引3的位置切片到最后一位,输出为lo nick
print(f'切片3-8: {msg[3:8]}')    # 输出为lo ni
print(f'切片3-8,步长为2: {msg[3:8:2]}')  # 输出为l i
print(f'切片3-最后,步长为2: {msg[3::2]}')  # 输出为l ik

# 了解,步长为正从左到右;步长为负从右到左
print('\n**了解知识点**')             # **了解知识点**
print(f'切片所有: {msg[:]}')          # 切片所有: hello nick
print(f'反转所有: {msg[::-1]}')       # 反转所有: kcin olleh
print(f'切片-5--2: {msg[-5:-2:1]}')   # 切片-5--2:  ni
print(f'切片-2--5: {msg[-2:-5:-1]}')  # 切片-2--5: cin

# 3、for循环
s = 'nick handsome'
for i in s:
    print(i)  # 逐行打印s中的每个字符
   
# 4、strip()  移除空白
s1 = '      nick handsome         '
print(s1.strip())  # 去两端的空白

s2 = '***!!!!!nick handsome----***'
print(s2.strip('-*!'))  # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
print(s2.strip('nick'))  # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
# s2.strip('*-!')  # 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有停止去掉

# 5、split() 切割
s2 = '***!!!!!nick handsome----***'
print(s2.split())  # 默认以空格切割字符串
print(s2.split('!'))  # 以!切割
print(s2.split('!', 2))  # 以!切割,最大切割次数为2,也就是从找到第一个!开始切割,找到第二个!切割后就结束切割

# 6、in 或 not in  返回结果就是True或False
s2 = '***!!!!!nick handsome----***'
print('*' in s2)  # True
print('$' not in s2)  # True

# 7. 长度len
s2 = 'nick handsome'
print(len(s2))  # 求字符串的长度


# 二、需要掌握:
# 1. lstrip() 和 rstrip()  左移除和右移除
s2 = '***!!!!!nick handsome----***'
print(s2.lstrip('*'))  # !!!!!nick handsome----***
print(s2.rstrip('*'))  # ***!!!!!nick handsome----

# 2. rsplit() 从右开始切割
info = 'nick:male:19'
print(f"info.rsplit(':', 1): {info.rsplit(':', 1)}")  # 从右开始切割,1表示只切割一次,输出为info.rsplit(':', 1): ['nick:male', '19']

# lower&upper   把大写变小写和把小写变大写
s3 = 'aaabbJ'
print(s3.lower())  # 把字符串中所有大写变成小写,aaabbj
print(s3.upper())  # 把字符串中所有小写变成大写,AAABBJ

# startswith&endswith  以什么开头和以什么结尾,返回结果为True或False
s3 = 'aaabbJ'
print(s3.startswith('b'))  # False
print(s3.endswith('J'))    # True


# join(用的比较多)一般和split联用
s3 = ' '
print(s3.join(['234', '234', '234']))  # 以s3也就是以空格为间隔符,拼接列表里的每一个元素,输出为234 234 234

s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
s1 = s.split('/')  # 先把s以/切分
print(s1)   #  ['辣条', '薯片', '汽水', '泡面', '火腿肠', '枸杞', '当归', '鹿茸']
print('*'.join(s1))  # 再把切分后的每一个元素间用*连接
# 输出结果为:辣条*薯片*汽水*泡面*火腿肠*枸杞*当归*鹿茸


# replace  替换
s2 = 'yongjiu handsome'
print(s2.replace('yongjiu', 'gebilaowang')) # 用gebilaowang替换掉yongjiu


## isdigit(纯数字)/isalpha(纯字母)  返回结果为True或False
s2 = '12312'
print(s2.isdigit())   # True

s3 = 'aaac1c'
print(s3.isalpha())  # False


# 3、做了解即可
# find|rfind|index|rindex|count    一般常用find
s2 = '**23423***ni234234ck $$ hand223423some******'
print(s2.find('$'))  # 从左找,找到第一个停止,找不到返回-1
print(s2.rfind('$'))  # 从右找,找到就停止,找不到返回-1

print(s2.index('$'))  # 找不到报错
print(s2.rindex('$'))  # 找不到报错

# 2、center()居中、ljust()左对齐、rjust()右对齐、zfill()
# 3、expandtabs()扩充标签
# 4、captalize()段落首字母大写、swapcase()大小写互换、title()每个首字母大写
# 5、is系列(真正的只需要了解)

  • 存一个值还是多个值:一个值
  • 有序or无序:有序,只要是有索引的,都是有序的,因此字符串是有序的
  • 可变or不可变(重点):不可变

字符串的内置方法得多记多用,多打代码练习,才能熟练使用

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!