Python基础知识—字符串的高级用法

Python基础知识—字符串的高级用法

string

  • %百分号模式
    • "%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

猜你喜欢

转载自blog.csdn.net/Mrwei_418/article/details/121121566