06Python基础-字符串

本文我们主要来介绍下字符串。

字符串主要有三种表示方式:普通字符串、原始字符串和长字符串。

1.普通字符串

用单引号 ' 或双引号 " 括起来的字符串

'Hello' 或 "Hello"

>>> 'Hello'
'Hello'
>>> "Hello"
'Hello'
>>> ss='\u0048\u0065\u006c\u006c\u006f'
>>> ss
'Hello'
>>> "Hello'world"
"Hello'world"
>>> 'Hello"world'
'Hello"world'

常用的转义字符

字符表示

Unicode编码

说明

\t

\u0009

水平制表符

\n

\u000a

换行

\r

\u000d

回车

\"

\u0022

双引号

\'

\u0027

单引号

\\

\u005c

反斜线

>>> s = 'Hello\n world'
>>> print(s)
Hello
world
>>> s = 'Hello\u000a World'
>>> print(s)
Hello
World
>>> s = 'Hello\t world'
>>> print(s)
Hello world
>>> s = 'Hello\" world'
>>> print(s)
Hello" world
>>> s = 'Hello\' world'
>>> print(s)
Hello' world
>>> s = 'Hello\\ world'
>>> print(s)
Hello\ world

2.原始字符串

在实际的开发中,普通字符串中可能有很多转义符比较麻烦,可以使用原始字符串来表示,就是在普通字符串前面增加r即可。

>>> s = 'Hello\" world'
>>> print(s)
Hello" world
>>> s = r'Hello\t world'
>>> print(s)
Hello\t world

3.长字符串

如果要使用字符串表示一篇文章,其中包含换行、缩减等排版字符,可以使用长字符串进行表示。用三个 ''' 或者三个 """ 括起来

>>> ss = """
... 大家好
... 今天是星期五
... 今天贴天气晴朗,温度30度
... 明天天气阴天,温度26度
... """

>>> print(ss)

大家好
今天是星期五
今天贴天气晴朗,温度30度
明天天气阴天,温度26度

4.字符串与数字的相互转换

编程的过程中经常会遇到字符串与数字进行互相转换

a.字符串转换成数字

可以使用int()和float()实现,如果成功则返回数字,否则引发异常。

>>> int("80")
80
>>> int("80.0")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '80.0'
>>> float("90.0")
90.0
>>> int("AB")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'AB'
>>> int("AB",16)
171

默认情况int()函数文字字符串参数当作十进制数字进行转换所以int('AB')失败

b.数字转换字符串可以str()函数str()函数可以类型数据转换字符串

>>> str(123)
'123'
>>> money = 521.552
>>> type(money)
<class 'float'>
>>> str(money)
'521.552'
>>> str(True)
'True'

5.格式化字符串

使用format()方法不仅可以实现字符串拼接还可以格式化字符串比如计算金额需要保留小数点四位数字需要右对齐可以方法

a.表达式计算结构插入字符串需要占位符对于占位符我们{}表示

>>> i = 32
>>> s = 'i * i = ' + str(i * i)
>>> s
'i * i = 1024'
>>> s = 'i * i = {}'.format(i * i)
>>> s
'i * i = 1024'
# 占位符可以有参数序号,序号从0开始,0被format()方法种的第1个参数替换;序号1被第2个参数替换
>>> s = '{0} * {0} = {1}'.format(i, i * i)
>>> s
'32 * 32 = 1024'
# 占位符中可以没有参数名,p1和p2是在format()方法种设置的参数名,可以根据参数名替换占位符
>>> s = '{p1} * {p1} = {p2}'.format(p1=i, p2=i * i)
>>> s
'32 * 32 = 1024'

b.格式化控制符

格式化控制符位于占位符索引或占位符名字的后面,之间用冒号分隔,

语法:{参数序号:格式控制符}或{参数名:格式控制符}。

格式控制符

说明

s

字符串

d

十进制整数

fF

十进制浮点数

gG

十进制整数或者浮点数

eE

科学计数法表示浮点数

o

八进制整数小写字符o

xX

十六进制整数小写字母x大写字母X

>>> money = 7532.2551
>>> name = 'Tony'
>>> '{0:s}年龄{1:d}, 工资是{2:f}元。'.format(name, 20, money)
'Tony年龄20, 工资是7532.255100元。'

>>> '{0}年龄{1}, 工资是{2:0.2f}元。'.format(name, 20, money)
'Tony年龄20, 工资是7532.26元。'

>>> "{0}今天收入是{1:G}元。".format(name, money)
'Tony今天收入是7532.26元。'

>>> "{0}今天收入是{1:e}元。".format(name, money)
'Tony今天收入是7.532255e+03元。'

>>> "{0}今天收入是{1:E}元。".format(name, money)
'Tony今天收入是7.532255E+03元。'

>>> '十进制数{0:d}的八进制表示为{0:o}'.format(19)
'十进制数19的八进制表示为23'

>>> '十进制数{0:d}的十六进制表示为{0:x}'.format(19)
'十进制数19的十六进制表示为13'

6.操作字符串

a.字符串find()方法用于查找字符串

语法str.find(sub[,start[,end]]),表示索引startend之间查找子字符串sub如果找到则返回左端位置索引如果找到返回-1

>>> s_str = 'Hello world'
>>> s_str.find('e')
1

>>> s_str.find('l')
2

>>> s_str.find('l',4)
9

>>> s_str.find('l',4,6)
-1

b.字符串替换

replace()

str.replace(old,new[,count]),表示new字符串替换old字符串count指定替换old字符串个数如果count省略替换所有old字符串

>>> text = 'AB CD EF GH IJ'
>>> text.replace(' ','|',2)
'AB|CD|EF GH IJ'
>>> text.replace(' ','|')
'AB|CD|EF|GH|IJ'
>>> text.replace(' ','|',1)
'AB|CD EF GH IJ'

c.字符串

split()

str.split(sep=None,maxsplit=-1),表示使用sep子字符串分隔字符串strmaxsplit最大分割次数如果maxsplit省略表示不限制分割次数

>>> text = 'AB CD EF GH IJ'
>>> text.split(' ')
['AB', 'CD', 'EF', 'GH', 'IJ']
>>> text.split(' ',maxsplit=0)
['AB CD EF GH IJ']
>>> text.split(' ',maxsplit=1)
['AB', 'CD EF GH IJ']
>>> text.split(' ',maxsplit=2)
['AB', 'CD', 'EF GH IJ']

本节示例

统计文章单词出现频率

# -*- coding: utf-8 -*-
"""
@Time: 2024/5/27 10:09
@File: tongji.py
@IDE: PyCharm
"""
# 一篇文章
wordstring = """
    It was the best of times it was the worst of times.
    it was the age of wisdom it was the age of foolishness.
"""

# 标点符号替换
wordstring = wordstring.replace('.', '')

# 分割单词
wordlist = wordstring.split()

wordfreq = []

for w in wordlist:
    # 统计单词出现个数
    wordfreq.append(wordlist.count(w))

d = dict(zip(wordlist, wordfreq))
print(d)

# 最终结果
{'It': 1, 'was': 4, 'the': 4, 'best': 1, 'of': 4, 'times': 2, 'it': 3, 'worst': 1, 'age': 2, 'wisdom': 1, 'foolishness': 1}

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫哥运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值