Python基础知识—字符串的高级用法
- %百分号模式
"%s" % string
- format功能
"{}".format()
- 修改字符串
string.strip()
string.replace()
string.lower()
string.upper()
string.split()
",".join([])
string.startswith()
string.endswith()
1)%百分号模式
name = "wgt"
print("my name is " + name + "!")
print("my name is %s!" % name)
my name is wgt!
my name is wgt!
- 第二种会比第一种简单,简洁
name = "wgt"
age = 20
gender = "man"
print("my name is " + name + "! my age is " + str(age) + ",I'm a " + gender + "!")
print("my name is %s! my age is %d,I'm a %s!" % (name, age, gender))
my name is wgt! my age is 20,I'm a man!
my name is wgt! my age is 20,I'm a man!
- 如果参数比较多,可以通过像字典一样的模式来填入数据,这种方式不用关系后面参数的顺序
name = "wgt"
age = 20
gender = "man"
print("my name is %(nm)s! my age is %(age)d,I'm a %(gd)s!" % {"nm": name, "age": age, "gd": gender})
my name is wgt! my age is 20,I'm a man!
方式 | 意思 |
---|---|
%d | 整数 |
%i | 整数 |
%f | 小数 |
%s | 字符 |
-
注意:在数字类型里输入字符,会报错,而在字符类型中输入数字,便不会报错
-
规定小数位:
print("%f" % (1/3))
print("%.2f" % (1/3)) # 后面限制2个位置
print("%4d" % (1/3)) # 前面补全最大4个位置
print("%5d" % 12) #前面补全最大5个位置
0.333333
0.33
0
12
2)format功能
name = "wgt"
age = 20
height = 1.7
print("我的名字是 %s! 我%d岁了,我的身高为:%fm" % (name, age, height))
print("我的名字是 {}! 我{}岁了,我的身高为:{}m".format(name, age, height))
我的名字是 wgt! 我20岁了,我的身高为:1.700000m
我的名字是 wgt! 我20岁了,我的身高为:1.7m
- 可以看出,format只使用
{}
来占位,后面在format里按顺序放入值就好了 - 可以是在
{}
中放入一个数字,表示后面format里面的index,这样就能复用传入的值了。
name = "wgt"
age = 20
height = 1.7
print("我的名字是 {0}! 我{1}岁了,我的身高为:{2}m~My name is {0}".format(name, age, height))
我的名字是 wgt! 我20岁了,我的身高为:1.7m~My name is wgt
- 除了按照index来传字符,我们也可以用字典模式,只要我在
{}
传入一个key的名字就好
name = "wgt"
age = 20
height = 1.7
print("我的名字是 {nm}! 我{age}岁了,我的身高为:{ht}m~My name is {nm}".format(nm=name, age=age, hd=height))
我的名字是 wgt! 我20岁了,我的身高为:1.7m~My name is wgt
- 同样也可以规定输出占位
print("我{:.3f}米高".format(1.12345))
print("我{ht:.1f}米高".format(ht=1.12345))
print("我{:3d}米高".format(1))
print("我{:3d}米高".format(21))
我 1.123 米高
我 1.1 米高
我 1 米高
我 21 米高
- 在
{}
中放入百分号的问题,也就是可以把一个数转换成百分数
txt = "You scored {:%}"
print(txt.format(2.1234))
txt = "You scored {}%"
print(txt.format(2.1234))
txt = "You scored {:.2%}"
print(txt.format(2.1234))
You scored 212.340000%
You scored 2.1234%
You scored 212.34%
方式 | 意思 |
---|---|
:, | 每 3 个 0 就用逗号隔开,比如 1,000 |
:b | 该数字的二进制 |
:d | 整数型 |
:f | 小数模式 |
:% | 百分比模式 |
3)f格式化字符串
- 在f模式的情况下,我们要在字符串开头加上一个
f
,然后用{}
圈出你的变量名,直接在{}
引用变量
name = "wgt"
age = 20
height = 1.7
print(f"我的名字是{name}! 我{age}岁了,我{height}米高~")
我的名字是wgt! 我20岁了,我1.7米高~
- 甚至还可以在{}里做运算
print(f"我{age}岁了,明年我就{age + 1}岁了")
我 20 岁了,明年我就21岁了~
- 同样也可以规定数字格式
score = 2.1234
print(f"You scored {score:.2%}")
print(f"You scored {score:.3f}")
print(f"You scored {12:5d}")
You scored 212.34%
You scored 2.123
You scored 12
4)修改字符串
方式 | 意思 |
---|---|
strip | 去除两端的空白符 |
replace | 替换字符 |
lower | 全部做小写处理 |
upper | 全部做大写处理 |
title | 仅开头的字母大写 |
split | 按要求分割 |
join | 按要求合并 |
startswith | 判断是否为某字段开头 |
endswith | 判断是否为某字段结尾 |
# 提出前后空白
print(" 不想要前面的空白 ,中间可以有空白 \n,后面空白也要去掉 ".strip())
# 替换文字
print("替换掉百度".replace("百度", "谷歌"))
# 文字的大小写处理
print("How ABOUT lower CaSE".lower())
print("And upper CaSe?".upper())
print("do tiTle For me".title()) # 仅开头的字母大写
# 拆散,重组
print("你|帮|我|拆分|一下|这句话".split("|"))
print("|".join(["你", "帮", "我", "重组", "一下", "这句话"]))
print("我在街头看到你".startswith("我在"))
print("我在街头看到你".startswith("街头"))
print("我在巷尾看到你".endswith("看到你"))
print("我在巷尾看到你".endswith("巷尾"))
不想要前面的空白 ,中间可以有空白
,后面空白也要去掉
替换掉谷歌
how about lower case
AND UPPER CASE?
Do Title For Me
['你', '帮', '我', '拆分', '一下', '这句话']
你|帮|我|重组|一下|这句话
True
False
True
False
参考:莫烦Python