编程语言
首页 > 编程语言> > 010.Python字符串的格式化

010.Python字符串的格式化

作者:互联网

字符串的格式化

  1. 顺序传参
  2. 索引传参
  3. 关键字传参
  4. 容器类型传参(列表和元组)

{}相当于占位符

1 顺序传参

strvar = "他{}牺牲自己,{}出卖组织"
res = strvar.format("宁愿","也不")
print(res)
res = strvar.format("白白","忘了")
print(res)

执行

[root@node10 python]# python3 test.py
他宁愿牺牲自己,也不出卖组织
他白白牺牲自己,忘了出卖组织

2 索引传参

strvar = "他{1}牺牲自己,{0}出卖组织"
res = strvar.format("宁愿","也不")
print(res)
res = strvar.format("忘了","白白")
print(res)

 执行

[root@node10 python]# python3 test.py
他也不牺牲自己,宁愿出卖组织
他白白牺牲自己,忘了出卖组织

3 关键字传参

strvar = "他{word0}牺牲自己,{word1}出卖组织"
res = strvar.format(word0="宁愿",word1="也不")
print(res)
res = strvar.format(word1="忘了",word0="白白")
print(res)

执行

[root@node10 python]# python3 test.py
他宁愿牺牲自己,也不出卖组织
他白白牺牲自己,忘了出卖组织

4 容器类型传参

strvar = "他{0[0]}牺牲自己,{1[0]}出卖组织"
res = strvar.format(["宁愿","害怕","与其","宁愿"],["也不","所以","也不","也要"])
print(res)
strvar = "他{0[1]}牺牲自己,{1[1]}出卖组织"
res = strvar.format(["宁愿","害怕","与其","宁愿"],["也不","所以","也不","也要"])
print(res)
strvar = "他{0[2]}牺牲自己,{1[2]}出卖组织"
res = strvar.format(["宁愿","害怕","与其","宁愿"],["也不","所以","也不","也要"])
print(res)

执行

[root@node10 python]# python3 test.py
他宁愿牺牲自己,也不出卖组织
他害怕牺牲自己,所以出卖组织
他与其牺牲自己,也不出卖组织

第二种写法

format 格式化时, 要注意如果是字典,不要加引号.

strvar = "他{group2[0]}牺牲自己,{group1[jiusuan]}出卖组织"
res = strvar.format(group1 = {"jiusuan":"也要","为了":"努力"},group2=["绝不","除非"])
print(res)

执行

[root@node10 python]# python3 test.py
他绝不牺牲自己,也要出卖组织

5 format填充符号的使用

^ 原字符串局中 
< 原字符串局左
> 原字符串局右

填充

strvar = "他{jiusuan:*^10}牺牲自己,{yeyao:>>8}出卖组织"
res = strvar.format(jiusuan="就算",yeyao="也要")
print(res)
strvar = "他{reai:*^10}牺牲自己,{gengai:!<8}出卖组织"
res = strvar.format(reai="热爱",gengai="更爱")
print(res)

执行

[root@node10 python]# python3 test.py
他****就算****牺牲自己,>>>>>>也要出卖组织
他****热爱****牺牲自己,更爱!!!!!!出卖组织

6 占位符

:d 整型占位符
:f 浮点型占位符
:s 字符串占位符
:, 金钱占位符

示例

strvar = "一周有{:d}天"
res = strvar.format(7)
print(res)
strvar = "一周有{:3d}天"
res = strvar.format(7)
print(res)
strvar = "一周有{:^10d}天"
res = strvar.format(7)
print(res)
strvar = "一周有{:<10d}天"
res = strvar.format(7)
print(res)
strvar = "一周有{:>10d}天"
res = strvar.format(7)
print(res)

执行

一周有7天
一周有  7天
一周有    7     天
一周有7         天
一周有         7天

7 关键字的使用

pass / break / continue

pass 过 起到占位的作用

例如

if 5 == 5:

是因为没有结束符

 

if 5 == 5:
    pass

再次执行就不会报错,起到一个占位的作用

break 只能应用在循环当中 用于终止当前循环

i = 1
while i<=10:

        if i == 5:
                break
        print(i)
        i+=1

i = 1
while i<=3:
        j = 1
        while j<=3:
                print(i,j)
                if j == 2:
                        break  # 终止当前所在的循环
                j+=1
        i+=1

执行

[root@node10 python]# python3 test.py
1
2
3
4
1 1
1 2
2 1
2 2
3 1
3 2

continue 跳过当前循环,从下一次循环开始

打印1~10 不打印5

i = 1
while i<=10:

        if i == 5:
                i+=1
                continue

        print(i)

        i+=1

执行

[root@node10 python]# python3 test.py
1
2
3
4
6
7
8
9
10

打印所有1~100 不含有4的数

# 方法一
i = 1
while i <= 100:
    
    if "4" in  str(i):
        i+=1
        continue
        
    print(i)    
    i+=1
    
# 方法二
i = 1
while i<=100:
    if i // 10 == 4 or i % 10 == 4:
        i+=1
        continue
        
    print(i)
    i+=1

标签:格式化,format,Python,res,010,print,strvar,出卖,牺牲
来源: https://www.cnblogs.com/zyxnhr/p/12271112.html