构造字符串可以使用三种形式的引号,如果字符串的内容不包含任何引号,那么单引号、双引号和三引号都可以使用;展示如下实例:
# 单引号构造字符串
string1 = '"commentTime":"2018-01-26 08:59:30","content":"包装良心!馅料新鲜!还会回购"'
# 双引号构造字符串
string2 = "ymd:'2017-01-01',bWendu:'5℃',yWendu:'-3℃',tianqi:'霾~晴',fengxiang:'南风',aqiInfo:'严重污染'"
# 三引号构造字符串
string3 = ''''nickName':"美美",'content':"环境不错,服务态度超好,就是有点小贵",'createTimestring':"2017-09-30"'''
string4 = '''据了解,持续降雪造成安徽部分地区农房倒损、种植养殖业大棚损毁,
其中合肥、马鞍山、铜陵3市倒塌农房8间、紧急转移安置8人。'''
print(string1)
print(string2)
print(string3)
print(string4)
如果字符串的内容只包含双引号,类似变量string1的形式,那么只能使用单引号或双引号构造字符串;如果字符串内容仅包含单引号,类似变量string2的形式,只能用双引号或三引号完成字符串的创建;如果字符串内容包括单引号和双引号,那么只能使用三引号构建字符串。所以,三引号是适用情况最多的字符串构造方法,而且三引号允许长字符串的换行,这是其他两种引号无法实现的,如变量string4所示。
字符串的常用方法
string[start:end:step] #字符串的切片
string.split #字符串的分割
string.strip #删除首尾空白
string.rstrip #删除字符串右边空白
string.lstrip #删除字符串左边空白
string.index #返回子串首次出现的位置
string.find #返回子串首次出现的位置(找不到返回-1)
string.startswith #字符串是否以什么开头
string.endswith #字符串是否以什么结尾
string.format #字符串的格式化处理
string.replace #字符串的替换
sep.join #将可迭代对象按sep分割符拼接为字符串
string.count #对字符串的子串计数
下面通过一个小例子学习以上代码:
# 获取身份证号码中的出生日期
print('123456198901017890'[6:14])
# 将手机号中的中间四位替换为四颗星
tel = '13612345678'
print(tel.replace(tel[3:7],'****'))
# 将邮箱按@符分隔开
print('12345@qq.com'.split('@'))
# 将Python的每个字母用减号连接
print('-'.join('Python'))
# 删除" 今天星期日 "的首尾空白
print(" 今天星期日 ".strip())
# 删除" 今天星期日 "的左边空白
print(" 今天星期日 ".lstrip())
# 删除" 今天星期日 "的右边空白
print(" 今天星期日 ".rstrip())
# 计算子串“中国”在字符串中的个数
string5 = '中国方案引领世界前行,展现了中国应势而为、勇于担当的大国引领作用!'
print(string5.count('中国'))
# 查询"Python"单词所在的位置
string6 = '我是一名Python用户,Python给我的工作带来了很多便捷。'
print(string6.index('Python'))
print(string6.find('Python'))
# 字符串是否以“2018年”开头
string7 = '2017年匆匆走过,迎来崭新的2018年'
print(string7.startswith('2018年'))
# 字符串是否以“2018年”年结尾
print(string7.endswith('2018年'))
# 字符串的格式化处理
print('尊敬的{}先生,您的话费余额为{:.2f},请及时充值,以免影响正常通话!'.format('刘',8.669))
{:.2f} #保存小数后两位
需要说明的是,字符串的index和find方法都是只能返回首次发现子串的位置,如果子串在原字符串中没有找到,对于index方法来说,则返回报错信息,但find方法返回值-1,并不报错。