Python基础语法知识7

     非常抱歉这么久一直没有更新文章,距离上次的分享已经有了一个多月了(博主还健在),这段时间发生了很多事情(跌跌宕宕,增长了社会经验,具体也不阐述了)
     好啦,废话也不多说,今天我们来分享字符串第二部分的内容吧!字符串第一部分内容如有忘记可以前去复习下Python入门基础语法知识6

字符串(2)

字符串的判断

  • isidentifier()
    判断指定的字符串是不是合法的标识符,符合返回值为True,反之为False;
    合法的标识符:只能包括字母、数字、下划线、汉字;不能以数字开头;纯数字不能作为标识符;不能包含非法字符、运算符、空格;)示例代码如下:
a='a1_语法'
b='1a_语法'
c='a&b'
print(a.isidentifier())
print(b.isidentifier())
print(c.isidentifier())

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
True
False
False

Process finished with exit code 0
  • isspace()
    判断指定的字符串是否全部由字符串由空白字符组成;
    空白字符包括:回车(\r)、换行(\n)、水平制表符(\t)、空格
    代码示意如下:
a1='   \r\n\t'
print(a1.isspace())

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
True

Process finished with exit code 0

下面几个的使用方法和上面类似,为了避免内容过于冗余,顾不做过多赘述;

  • isalpha()
    判断指定的字符串是否全部由字母组成;(包括中英文
  • isdecima()
    判断指定的字符串是否全部由十进制数字组成;(阿拉伯数字
  • isnumeric()
    判断指定的字符串是否全部由数字组成;(==阿拉伯数字、罗马数字、汉字的数字)
  • isalum()
    判断指定的字符串是否全部由字母和数字组成;

字符串的常用操作

字符串的替换

a、字符串的替换:replace()

  • 字符串的替换就类似与Word中的查找替换
  • 语法格式为:str.replace(‘待替换内容’,‘替换内容’,最大替换次数)
  • 其中最大替换次数可以省略,就是相当于如果有相同的待替换内容替换几次,默认的是全部替换;
    示例代码如下:
text='我最喜欢的城市是上海,上海很繁华,有很多高楼大厦,上海有很多的美食'
text2=text.replace('上海','长沙',1)  # 替换次数为1
text3=text.replace('上海','长沙')    # 默认全部替换
print(text2)
print(text3)

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
我最喜欢的城市是长沙,上海很繁华,有很多高楼大厦,上海有很多的美食
我最喜欢的城市是长沙,长沙很繁华,有很多高楼大厦,长沙有很多的美食

Process finished with exit code 0

字符串的合并

b、字符串的合并:join()

  • 可将列表或者元组中的字符串连成一串(合并为一个字符串)
  • ‘连接符’.join(列表名/元组名)
  • ‘连接符’.join(‘字符串’) ——>这是讲字符串作为字符串序列进行连接;
  • 其中连接符可以为任意字符,也可以空;

示例代码如下:

a=['python','is','powerful']
b=('pratice','is','king')
a1=' '.join(a)
b1='*'.join(b)
ab=' '.join(a+list(',')+list(b))
print(a1)
print(b1)
print(ab)
c='*'.join('thoughtful')
print(c)

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
python is powerful
pratice*is*king
python is powerful , pratice is king
t*h*o*u*g*h*t*f*u*l

Process finished with exit code 0

字符串的比较操作

  • 比较运算符:> ; < ; = ; <= ; >= ; !=
  • 比较规则:从第一个字符开始比较,直至不相等作出判断,不相等直接结束判断;(现在是先了解有这个功能,后面遇到具体的情况,再去了解
  • 比较原理:两个字符串比较,比较的是原始值(ordinary value),可以使用内置函数ord()获取原始值,使用chr()来获取原始值得对应字符;
    示例代码如下:
print('python'>'java')
print(ord('p'),ord('j'))   # p的原始值是112,j的原始值为106,顾python>java
print(ord('a'))
print(ord('黄'))
print(chr(97))
print(chr(40644))

运行结果如下:

True
112 106
97
40644
a
黄

Process finished with exit code 0

字符串的切片操作

  • 字符串是不可变类型:不具备增删改等操作、切片操作将产生新的对象;
  • 语法格式:str[start:stop:step];
    示例代码及操作如下:
a = 'python*is*powerful'
print(len(a))
a1 = a[:6]  # 开始不写默认从0开始切,步长不写默认为1,切片位置不包阔序列7
a2 = a[7:9:]  # 从序列7开始切,到10结束,步长默认为1
a3 = a[::2]  # 开始位置不写默认从0开始,结束位置不写默认到结尾,步长为2,相当于空一个截一个
a4 = a[:-9:-1]  # 步长为负数相当于倒着截,开始位置不写默认从最后一个开始,一直到序列为-9的位置,但不包括-9
print(a1)
print(a2)
print(a3)
print(a4)
# 其他的和上面的类似,可以自行推导练习

运行结果如下所示:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
18
python
is
pto*spwru
lufrewop

Process finished with exit code 0

格式化字符串

%作占位符

a、字符串:%s;
b、整数:%i 或%d ;
c、浮点数:%f ;
代码示意如下:

C_M='TOSHIBA'
Year=2012
version=3.8
text='我的电脑品牌是%s,是%d买的,现在用的python版本是%.1f'%(C_M,Year,version)    # .1f 中的.1表示保留一位小数,因为f默认保留五位小数
print(text)

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
我的电脑品牌是TOSHIBA,2012买的,现在用的python版本是3.8

Process finished with exit code 0

{}做占位符

.foromat()格式化,直接用代码示意,更加能够理解:

P_M='OPPO'
Year=2019
memory=128
text='我的手机品牌是{1},是{0}买的,内存是{2}g'.format(Year,P_M,memory)    # {}中的数就是序列号,是后面.format()中的序列号
print(text)

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
我的手机品牌是OPPO,是2019买的,内存是128g

Process finished with exit code 0

注意:前后的参数数量需要一致,否则会报错

f格式化

f格式化也直接用代码展示,见如下示例代码:

Love_city='成都'
Study_city='南昌'
text=f'{Love_city}是一个很舒适的城市,是一直想去游玩的城市,我学习的城市是{Study_city},\n,慢慢的也习惯了他的节奏和格局,每一座城市都有它独特的美'
print(text)

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
成都是一个很舒适的城市,是一直想去游玩的城市,我学习的城市是南昌,
,慢慢的也习惯了他的节奏和格局,每一座城市都有它独特的美


Process finished with exit code 0

宽度和精度的表示

  • 宽度的表示:
    %10s           表示宽度为10
    ‘{0:10}’.format(xxx)         表示宽度为10
    示例代码如下:
# 宽度的表示
a='hello'
b=1234
print(a+a)
print('%10s'%(a))    # 宽度为10  宽度比字符长前面空格补位
print('{0:10}'.format(a))   # 宽度为10  使用.format()格式化字符串时,宽度比字符串长后面空格补位
print('{0:10}'.format(b))   # 宽度为10  使用.format()格式化字符串时,宽度比int、float长前面补空格

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
hellohello
     hello
hello     
      1234

Process finished with exit code 0
  • 精度的表示:
    %.3f    表示保留三位小数
    ‘{0:.3}’.format(xxx) 表示保留三位数字
    ‘{0:.3f}’.format(xxx) 表示保留三位小数
    示例代码如下:
# 精度的表示
a=3.1415926
print('%.3f'%(a))   # 保留3位小数
print('{0:.3}'.format(a))   # 保留三位数
print('{0:.3f}'.format(a))  # 保留三位小数

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
3.142
3.14
3.142

Process finished with exit code 0
  • 宽度和精度的同时表示:
    %10.3f                             表示宽度为10,保留3位小数
    ‘{0:10.3}’.format(xxx)       表示宽度为10,保留3位数字
    ‘{0:10.3f}’.format(xxx)       表示宽度为10,保留3位小数
    示例代码如下:
# 宽度和精度的同时表示
a=3.1415926
b='hello'
print('helloworld')
print('%10.3f'%(a))   # 宽度为10,保留三位小数
print('{0:10.3}'.format(a))  # 宽度为10,保留三位数
print('{0:10.3f}'.format(a))  # 宽度为10,保留三位小数

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
helloworld
     3.142
      3.14
     3.142

Process finished with exit code 0

字符串的编码和解码

  • 字符串的编码和解码主要用在爬虫对于网页数据的分析
  • 字符串的编码:
    .encode(encoding=‘GBK’)
    .encode(encoding=‘UTF-8’)
  • 字符串的解码:
    .decode(encoding=‘GBK’)
    .decode(encoding=‘UTF-8’)
    注意:在解码时要确定bytes的类型,使用正确的代码;即编码格式和解码格式要对应
    示例代码如下:
name='呀嘿哟'
name1=name.encode(encoding='GBk')
name2=name.encode(encoding='UTF-8')
name3=name1.decode(encoding='GBK')
name4=name2.decode(encoding='UTF-8')
print(name1)
print(name2)
print(name3)
print(name4)

运行结果如下:

"C:\Program Files\Python38\python.exe" F:/pycharm项目/py/CSDN博客/语法7.py
b'\xd7\xd4\xd4\xda\xb6\xc0\xd0\xd0'
b'\xe8\x87\xaa\xe5\x9c\xa8\xe7\x8b\xac\xe8\xa1\x8c'
自在独行
自在独行

Process finished with exit code 0

   字符串剩下的内容到此就结束了,感觉脖子不属于了自己(#.#),觉得还不错的可以收藏点赞,如发现任何纰漏或者有任何建议希望各位不利赐教,万分感谢各位对我的支持和鼓励!
最后,这段时间的经历也让我也想明白了一件事情,在这里分享给大家,希望和大家共勉:既然事情都已经发生,那就坦然面对,奋力补救,眼光放长远一点,不要局限于眼前的苟且,加油吧