字符串详解与格式化输出
7.1.1 字符串 str
str1 = "10" str2 = "12345上山打老虎"
7.1.2 字符串的通用操作
--相加:字符串+字符串(拼接) --相乘:字符串*整数 重复打印拼接 --获取字符串的长度:len() --索引切片步长取值
7.1.3 字符串的修改
replace()
-
指定一个新变量接收原来字符串的改变值,因为字符串和元组是不可改变的
-
指定的不存在不会报错
-
指定次数进行修改(从左往右开始换)
-
默认是修改全部存在的指定字符
字符串.replace('指定字符','替换值')
字符串.replace('指定字符','替换值',指定替换次数)
str = '基础就是比较枯燥,后面有趣的还恰恰需要基础'
res = str.replace(',','-')
res = str.replace('基础','核心')
res = str.replace('基础','核心',2) #指定-1什么的也是修改全部
print(res)
7.1.4 字符串的删除
(1)删除字符串的指定字符
split()
-
指定字符进行切割,把字符分段放在列表里面
-
如果切割的字符串在开头或结尾出现就会自动填充空字符
-
切割的次数跟逗号数量一样,可以指定切割次数
-
一次只能处理一个连续的字符串
格式:字符串.split('指定字符')
(2)删除字符串开头结尾的空格
strip() lstrip() rstrip()
str = ' 嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿 ' print(str.strip())-->删除字符串开头和结尾的空格 print(str.lstrip())-->删除左边的空格 print(str.rstrip())-->删除右边的空格
(3)删除字符串中间的空格
m=str.replace(' ','')
就是把空格替换成无字符就可以了
7.1.5 字符串的改
upper()
-
让字符串中的英文字母大写
str1 = 'pycharm' print(str1.upper())
lower()
-
把字符串中的英文字母全部小写
str1 = 'HeiHei' print(str1.lower())
title()
-
对字符串中每个单词的首字母进行大写,注意单词和单词之间只要不是字母就可以进行分隔来判断是否是一个单词
str1 = 'my name is HeiHei'
str2 = 'MY NAME IS HEIHEI'
print(str1.title())
print(str2.title())
# 给单词首字母大写
# 一串连续的字母字符串为一个单词
#str1和str2都会变成 My Name Is Heihei
7.1.6 字符串的查
count
-
统计某个字符出现的次数
str1 = 'helloworld'
print(str1.count('l'))
print(str1.count('c'))
#第一个输出3
#第二个输出0
find()
-
查询字符对应的下标
-
指定的字符不存在会返回-1
-
指定区间左闭右开
-
可以省略开头和结尾
格式:字符串.find('指定字符')
find和index都可以作用于有序序列,find指定的元素不存在返回-1,index指定的不存在会报错
endswith()
-
判断字符串末尾的字符是否与我们指定的字符一致,返回的是bool值
-
从结尾开始比对
str1 = 'hello world' print(str1.endswith('l'))--》False print(str1.endswith('d'))--》Ture print(str1.endswith('ld'))--》Ture print(str1.endswith('fld'))--》False print(str1.endswith('helloworld'))--》False print(str1.endswith('hello world'))--Ture
startswith()
-
判断字符串开头的字符是否与我们指定的字符一致,返回bool
-
从开头开始比对
-
和endswith刚好相反
str1 = 'hello world' print(str1.startswith('h')) print(str1.startswith('d')) print(str1.startswith('ll')) print(str1.startswith('he')) print(str1.startswith('hello'))
isdigit()
-
判断字符串是否为纯数字,返回bool值
-
纯数字返回Ture
str1 = 'hello world' str2 = '666666666' str3 = '嘿嘿123' str4 = '你工资一个月100' print(str1.isdigit()) print(str2.isdigit()) print(str3.isdigit()) print(str4.isdigit())
isalpha()
-
判断字符串是否为英文或中文 返回bool值(这个字符串只能出现中文和英文)
-
为英文或中文返回Ture
str1 = 'helloworld' str2 = '66666666' str3 = '嘿嘿heihei' str4 = '你工资一个月100' str5 = '请问你工资多少' print(str1.isalpha()) print(str2.isalpha()) print(str3.isalpha()) print(str4.isalpha()) print(str5.isalpha())
7.2.1 格式化输出
(1) f格式化输出
大括号包裹变量或者数字,多个变量或者数字会保存在一个元组内进行输出
name = '吕布'
age = 18
# print('我是',name,'我今年',age,'岁',sep='')----如下输出
print(f'我是{name},我今年{age}岁')
day = '20240109'
print(f'今天是{day[:4]}年,{day[5:6]}月{day[7:]}日')----这样输出也可以
(2) %占位符格式化输出
% 占位符 %s 给字符串占位 %d 整型占位 %f 浮点型占位 name = '貂蝉' age = 18 heigh = 180.1112 print('我是%s我今年%d我身高是%.1f'%(name,age,heigh)) # 浮点型占位符默认给小数点保留6位 # 在f前面加上(.数字)指定保留小数点后几位(四舍五入)
(3) format()格式化输出
name = 'HEIHEI'
age = 18
heigh = 180.1112
print('我是{},我今年{},我身高{}'.format(name,age,heigh))
print('我是{1},我今年{0},我身高{2}'.format(age,name,heigh))
# 引号外面的点别忘了
#format 后面是元组,可以通过下标的方式对应
小练习:
1、对于str=' 嘿嘿嘿嘿 嘿嘿嘿嘿 '这个字符串,将所有的空格删掉
2、接受半径为5,求圆的周长和面积并输出(pi可以当作Π使用,以提供前两行代码)
import math
pi = math.pi
3、自己创建一个字符串熟悉字符串的增删改查