前言时刻

又是很水的一上午,不过也学习到了一些新知识,比如st.isnum、st.isalpha等等

来来总结一波:

今天讲的有:进制转换、str字符串函数的用法:切片、replace、split、isalpha、strip、count、join。

差不多就这些了,学就完事了,总结那是必须的。

1、进制转换

常用的就是10进制、2进制(binary)、8进制(octonary)、16进制(hexadecimal),他们之前的转换是需要掌握的。

1.1、10进制向2、8、16进制转换

主要就是这三个内置函数:bin、oct、hex,其分别是2进制、8进制、16进制的英文缩写,具体可看上面。

  1. # 1、进制转换
  2. tmp = 5
  3. # 10进制转2进制
  4. print(bin(tmp)) # 0b101
  5. # 10进制转8进制
  6. print(oct(tmp)) # 0o5
  7. # 10进制转16进制
  8. print(hex(tmp)) # 0x5
  9. # 返回数的二进制有效位数
  10. print(tmp.bit_length()) # 3 对应二进制:0b101正好是3位

1.2、2/8/16进制向10进制转换

主要用到 int(str, num) 函数进行互转,具体用法见下方。

  1. # 2/8/16进制向10进制转换
  2. # 1、2进制转10进制
  3. print(int("0b101", 2)) # 5
  4. # 2、8进制转10进制
  5. print(int("0o17", 8)) # 15
  6. # 3、16进制转10进制
  7. print(int("0x14", 16)) # 20
  8. # 4、8进制转2进制
  9. print(bin(int("0o17", 8))) # 0b1111
  10. # 其他的也同理,使用int作为中间量,进行互转。

下面介绍的都是字符串的种种操作方法,记住即可。

2、字符串切片

直接看例子吧,三种用法都有。

  1. st = "thepathofpython"
  2. # 1、一般切片
  3. print(st[0:3]) # the 区间包前不包后
  4. # 2、带步长的切片 **
  5. print(st[0:8:3]) # tph 最后面的一个参数是步长
  6. # 3、从后往前扫描 切片
  7. print(st[-6:]) # python 右区间若无值,则默认包括末尾 到底
  8. # 3.1、从后往前扫描 + 步长
  9. print(st[-6::-2]) # potph 步长为负数 表示从右到左扫
  10. print(st[-6::2]) # pto 步长为正数 表示从左到右扫
  11. # 4、重点 面试题常考 翻转字符串 ***
  12. print(st[::-1]) # nohtypfohtapeht 左区间若无值,则默认从首位开始

3、字符串字母大小写

将字符串中的所有字母转成大写或者小写,upper和lower函数

  1. tmp = "xiYuanGongZi"
  2. # 字符串字母全部变成大写
  3. print(tmp.upper()) # XIYUANGONGZI
  4. # 字符串中字母全部变成小写
  5. print(tmp.lower()) # xiyuangongzi

4、startswith和endswith

判断字符串开头和尾端是否等于某一字符串。

  1. tmp = "thepathofpython"
  2. print(tmp.startswith('the')) # True
  3. print(tmp.startswith('zhe')) # False
  4. print(tmp.endswith("python")) # True

5、Replace函数

tmp.replace(old, new, count)

替换一些特定的字符串,少量推荐。若有大量的字符要替换,推荐使用re正则,后面会有介绍。

replace函数用法例子:

  1. tmp = "thepathofthepython"
  2. # tmp.replace(old, new, count)
  3. # 1、简单替换
  4. print(tmp.replace("the", "study")) # studypathofstudypython
  5. # 2、限制替换次数
  6. print(tmp.replace("the", "study", 1)) # studypathofthepython 第三个count 限制替换的old的次数

6、strip函数

  1. # 左右两端
  2. st.strip()
  3. st.strip("name")
  4. # 单独去除一端空白/自定义字符
  5. st.lstrip()
  6. st.rstrip()

默认去除字符串两端的空白字符如:空格、制表符\t、换行符\n。当然你也可以设置自定义的字符。

strip例子:

  1. tmp = "\n \tthepathof\tpython\n\t"
  2. # 1、默认两端去除空白字符
  3. # 两端从头扫描 去除空白字符,一旦碰到非空表字符,就停止扫描。所以of和python的\t没有被移除
  4. print(tmp.strip()) # thepathof python
  5. tmp2 = "tthepathof\tpython"
  6. # 2、设置特定字符
  7. # 重点 strip中的字符串参数 ,每一个字符都作为要消除的,并不是整体。两端扫描,遇到参数字符串中的任意字符就消除,若没遇到就停止扫描。
  8. print(tmp2.strip("thpen")) # athof pytho
  9. # 3、单端扫描
  10. print(tmp2.lstrip("thpen")) # athof python 从首端扫描
  11. print(tmp2.rstrip("thpen")) # tthepathof pytho 从未端扫描
  12. # 总结:这点有点绕,与replace不同是,strip是从两端扫描,只要遇到非消除字符就停止扫描,结束。

7、split函数

st.split(char, count) ,split函数用于分割字符串 ,变成列表.

split用法例子:

  1. tmp = "*the*path*of*python"
  2. # 1、普通分割
  3. print(tmp.split("*")) # ['', 'the', 'path', 'of', 'python']
  4. # 2、限制分割数量
  5. print(tmp.split("*", 3)) # ['', 'the', 'path', 'of*python'] 第二个参数count,限制分割的数量å
  6. # 没啥难点,注意分割会产生n+1的字符串(n是要分割的字符串在原字符串中的数量)

8、join函数

join函数语法:

  1. str.join(sequence)
  2. # sequence -- 要连接的元素序列。

这个函数简直就是split函数的cp,一个分割,一个合并。

join函数例子:

  1. tmp = ['', 'the', 'path', 'of', 'python']
  2. print("*".join(tmp)) # *the*path*of*python

9、is系列

和C++中的用法差不多,连函数名称都一样,果然同宗生😂。

  1. str.isalpha() # 字符串的所有字符是否都是字母
  2. str.isalnum() # 字符串的所有字符是否都是字母或数字
  3. str.isdecimal() # 字符串的所有字符是否都是十进制数字

例子:

  1. tmp = "zan66"
  2. tmp2 = "zan"
  3. tmp3 = "666"
  4. print(tmp.isalnum()) # True 字符串的所有字符是否都是字母或数字
  5. print(tmp2.isalpha()) # True 字符串的所有字符是否都是字母
  6. print(tmp3.isdecimal()) # True 字符串的所有字符是否都是十进制数字

10、count函数

主要与统计某个字符在字符串中出现的次数。

count函数例子:

  1. tmp = "thepathofpython"
  2. print(tmp.count("t")) # 3
  3. print(tmp.count("z")) # 0

11、in/not in用法

一般用于列表中,判断某成员是否在列表中。

例子:

  1. tmp = ['the', 'path', 'of', 'python']
  2. print('python' in tmp) # True
  3. print('love' not in tmp) # True

总结:

肝的我背疼,歇歇,总算是写完了。本来不想写的,但是必须的坚持,每天必定要完成计划。跟着计划走才会有有进步。

全程手敲,对知识的理解又加深了,明天继续加油。

参考链接:

https://www.runoob.com/python/att-string-join.html

https://www.zwjjiaozhu.top