Introduction à la programmation Python (019) - Explication détaillée de la méthode format() des chaînes

Introduction à la programmation Python (019) - Explication détaillée de la méthode format() des chaînes

1. Format de base de la méthode format()

La méthode format() de string est utilisée pour formater les chaînes. La méthode format() est très puissante et le format est relativement complexe. La syntaxe est la suivante :

常量{
    
    参数序列:格式控制标记}常量{
    
    参数序列:格式控制标记}.format(*args, **kwargs)

illustrer:

(1) Le numéro de série du paramètre est le paramètre entrant. Le modèle de paramètre de format est une chaîne composée d'une chaîne et de caractères de description de contrôle de format, qui est utilisée pour formater les paramètres entrants. Le modèle de formatage est représenté par {}, et il peut y en avoir plusieurs, correspondant aux paramètres séparés par des virgules dans la méthode format().

(2) Les constantes peuvent être des symboles ou du texte et peuvent être définies en fonction des besoins de développement du programme.

(3) Le paramètre de position peut être un, deux ou plus, et son numéro de séquence d'index correspondant peut correspondre à l'index de position un à un. Lorsque le numéro d'index et la balise de formatage sont tous deux vides, il s'agit en fait d'une chaîne directement connectée au paramètre de position.

Par exemple:

print("小明的生日为:{}年{}月{}日".format(2004,12,5))

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
小明的生日为:2004125

2. Utilisation de la méthode format()

1. Remplacer dans l'ordre

Le format est le suivant :

"{} {}".format(values1, values2)

Remarque : le format remplira les paramètres dans la chaîne dans l'ordre de position et les attribuera automatiquement dans l'ordre, et un paramètre peut être inséré plusieurs fois. { {}} représente uniquement {} et n'occupe pas l'ordre de position de formatage de la chaîne.

Par exemple:

#  {} 和参数的个数必须匹配,否则会报错。
name = "王涛"
age = 25
print("我叫{},今年{}岁了。".format(name,age))
print("Address:{}{}{},{}。".format("河南省","新乡市","红旗区","河南科技学院"))
print("{}{
    
    {}}{}{
    
    {}}{}".format("河南省","新乡市","红旗区"))

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
我叫王涛,今年25岁了。
Address:河南省新乡市红旗区,河南科技学院。
河南省{
    
    }新乡市{
    
    }红旗区

2. Faites correspondre et remplacez selon l'index

Le format est le suivant :

"{0} {1}".format(value1, value2)

说明:按索引编号来匹配替换 {
    
    索引} 的值。

Par exemple:

name = "王涛"
age = 25
year = 2002
month = 10
day = 22
prov = "河南省"
city1 = "新乡市"
city2 = "郑州市"
print("我叫{0},今年{1}岁了。".format(name,age))
print("李明的生日:{0}-{1}-{2}".format(year,month,day))
print("李明的生日:{1}-{2}-{0}".format(year,month,day))
print("{0}的地址:{1}{2};李明的地址:{1}{3}".format(name,prov,city1,city2))

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
我叫王涛,今年25岁了。
李明的生日:2002-10-22
李明的生日:10-22-2002
王涛的地址:河南省新乡市;李明的地址:河南省郑州市

3. Faites correspondre et remplacez selon l'index des mots clés

Le format est le suivant :

"{关键字索引1} {关键字索引2}".format(关键字索引1 = value1, 关键字索引2 = value2)

Par exemple:

name1 = "王涛"
age1 = 25
year1 = 2002
month1 = 10
day1 = 22
print("我叫{name},今年{age}岁了。".format(name=name1,age=age1))
print("我叫{name},今年{age}岁了。".format(age=age1,name=name1))
print("李明的生日:{year}-{month}-{day}".format(day=day1,month=month1,year=year1))
print("李明的生日:{month}-{day}-{year}".format(day=day1,month=month1,year=year1))

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
我叫王涛,今年25岁了。
我叫王涛,今年25岁了。
李明的生日:2002-10-22
李明的生日:10-22-2002

4. Formater les chaînes par index de liste

Le format est le suivant :

列表名=['列表值1','列表值2','列表值3'...]
"{List[列表索引1]},{List[列表索引2]}".format(List = 列表名)

说明:在format格式化时,可使用 *list拆分

Par exemple:

list1 = ["王涛",25]
list2 = [2002,10,22]
list3 = ["Tom","Jerry","Rose","Black"]
list4 = [25,22,20,24]
print("我叫{list[0]},今年{list[1]}岁了。".format(list=list1))
print("我叫{0[0]},今年{0[1]}岁了。".format(list1))
print("李明的生日:{list[0]}-{list[1]}-{list[2]}".format(list=list2))
print("李明的生日:{list[1]}-{list[2]}-{list[0]}".format(list=list2))
print("李明的生日:{0[1]}-{0[2]}-{0[0]}".format(list2))
print("{0[0]}的年龄为{1[1]};{0[1]}的年龄为{1[2]};{0[2]}的年龄为{1[0]};{0[3]}的年龄为{1[3]}。".format(list3,list4))

# 使用 *与** 对list进行拆分
print("李明的生日:{1}-{2}-{0}".format(*list2))

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
我叫王涛,今年25岁了。
我叫王涛,今年25岁了。
李明的生日:2002-10-22
李明的生日:10-22-2002
李明的生日:10-22-2002
Tom的年龄为22;Jerry的年龄为20;Rose的年龄为25;Black的年龄为24。
李明的生日:10-22-2002

5. Définir la chaîne formatée via le dictionnaire

Le format est le suivant :

字典名1={
    
    '字典索引1':'字典索引1的值', '字典索引2':'字典索引2的值', ...}
"{字典索引},{字典索引值}".format(字典名1) 

说明:在format格式化时,可使用 ** 对字典拆分

Par exemple:

dict1 = {
    
    "name":"王涛","age":21}
dict2 = {
    
    "year":2002,"month":10,"day":22}
print("我叫{0[name]},今年{0[age]}岁了。".format(dict1))
print("我叫{0},今年{1}岁了。".format(*dict1))
print("李明的生日:{0[year]}-{0[month]}-{0[day]}".format(dict2))
print("李明的生日:{0[month]}-{0[day]}-{0[year]}".format(dict2))
print("我叫{name},今年{age}岁了。生日:{year}-{month}-{day}".format(**dict1,**dict2))

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
我叫王涛,今年21岁了。
我叫name,今年age岁了。
李明的生日:2002-10-22
李明的生日:10-22-2002
我叫王涛,今年21岁了。生日:2002-10-22

6. Usage mixte

(1) Vous pouvez mélanger et assortir par index et nom de paramètre.

(2) Remarque : les paramètres nommés doivent être placés à la fin. Sinon, une erreur se produira lors de la compilation !

(3) L'indexation et le formatage par défaut ne peuvent pas être mélangés.

(4) Prend en charge la référence partielle aux paramètres et peut obtenir des valeurs pour les parties de paramètres via des index.

Par exemple:

list1 = ["王涛",21]
dict1 = {
    
    "year":2002,"month":10,"day":22}
print("我叫{},生日为:{year}-{month}-{day},今年{}岁了。".format(*list1,**dict1))
print("我叫{},今年{age}岁了。".format("刘鹏",age=25))
# print("我叫{},今年{age}岁了。".format(age=25,"刘鹏")) #此代码错误,命名参数必须放在最后
print("我叫{},今年{1}岁了。".format("刘鹏",25))  #此代码错误,索引和默认格式化不可以混合使用

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
我叫王涛,生日为:2002-10-22,今年21岁了。
我叫刘鹏,今年25岁了。
Traceback (most recent call last):
  File "C:\Python\Python38\First.py", line 6, in <module>
    print("我叫{},今年{1}岁了。".format("刘鹏",25))
ValueError: cannot switch from automatic field numbering to manual field specification

3. Formater la chaîne

1. Justifiez à gauche et remplissez les chaînes formatées

Le format est le suivant :

:<      # 左对齐填充
<       # 左对齐,后面带宽度
:       # 后面带填充的字符,只能是一个字符,不指定则默认是用空格填充

Par exemple:

print('{:<10}!'.format('China'))   # 默认填充空格
print('{:0<10}!'.format('China'))  # 用0填充

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
China     !
China00000!

Application complète :

products=[["苹果",16.88],["香蕉",22.56],["西瓜",30.2],["西红柿",4.99]]
print("=="*5+"商品列表"+"=="*5)
i=1
for product in products:
    print('{:0<6}\t{:<10}\t{:<10.1f}'.format(i, product[0], product[1]))
    i = i+1
    
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
==========商品列表==========
100000	苹果        	16.9      
200000	香蕉        	22.6      
300000	西瓜        	30.2      
400000	西红柿       	5.0 

2. Alignez à droite et remplissez les chaînes formatées

Le format est le suivant :

:>  # 右对齐
>   # 右对齐,后面带宽度,
:   # 后面带填充的字符,只能是一个字符,不指定则默认是用空格填充

Par exemple:

print('国家:{:>10}!'.format('China'))   # 默认填充空格
print('国家:{:0>10}!'.format('China'))  # 用0填充

程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
国家:     China!
国家:00000China!

Application complète :

products=[["苹果",16.88],["香蕉",22.56],["西瓜",30.2],["西红柿",4.99]]
print("=="*5+"商品列表"+"=="*5)
i=1
for product in products:
    print('{:0>6}\t{:<10}\t{:>10.1f}元'.format(i, product[0], product[1]))
    i = i+1
        
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
==========商品列表==========
000001	苹果        	      16.9000002	香蕉        	      22.6000003	西瓜        	      30.2000004	西红柿       	       5.0

3. Centrer et remplir les chaînes formatées

Le format est le suivant :

:^   # 居中对齐
^    # 居中对齐,后面带宽度
:    # 后面带填充的字符,只能是一个字符,不指定则默认是用空格填充

Par exemple:

print('国家:{:^10}!'.format('China'))   # 默认填充空格
print('国家:{:0^10}!'.format('China'))  # 用0填充
        
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
国家:  China   !
国家:00China000!

Application complète :

products=[["苹果",16.88],["香蕉",22.56],["西瓜",30.2],["西红柿",4.99]]
print("=="*5+"商品列表"+"=="*5)
i=1
for product in products:
    print('{:0>6}\t{:^10}\t{:>10.1f}元'.format(i, product[0], product[1]))
    i = i+1
            
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
==========商品列表==========
000001	    苹果    	      16.9000002	    香蕉    	      22.6000003	    西瓜    	      30.2000004	   西红柿    	       5.0

4. Application complète de la méthode format()

(1) Imprimer le motif aligné à gauche

le code s'affiche comme ci-dessous :

for i in range(1, 11):
    print("{:<{}}".format("*" * i, 10))
                
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
*         
**        
***       
****      
*****     
******    
*******   
********  
********* 
**********

(2) Imprimer le motif aligné à droite

le code s'affiche comme ci-dessous :

for i in range(1, 11):
    print("{:>{}}".format("*" * i, 10))
                
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

(3) Imprimer un motif aligné au centre

le code s'affiche comme ci-dessous :

for i in range(1, 21, 2):
    print("{:^{}}".format("*" * i, 20))
                    
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
         *          
        ***         
       *****        
      *******       
     *********      
    ***********     
   *************    
  ***************   
 *****************  
******************* 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44377973/article/details/132300478
conseillé
Classement