首页 > 其他分享 >字符串格式化

字符串格式化

时间:2023-06-30 23:33:45浏览次数:35  
标签:格式化 name format value print 字符串

1. 什么是字符串格式化?

就是把字符串弄成⼀定的格式(往往就是留个位置,往里面填值)

这个位置往往是格式符、占位符。

2. 字符串常见的3种格式化方式

2.1 格式符 + % + 变量/表达式

2.2 f'{变量或表达式}' 也叫 f-strings 

2.3 字符串对象的 format() 方法来格式化字符串

3. 格式符 + % + 变量/表达式

3.1 常见的格式符

 

3.2 示例

 1 """
 2 1. 准备数据
 3 2. 格式化符号输出数据
 4 """
 5 age = 18   # 整型
 6 name = 'Allen'  # 字符串类型
 7 weight = 75.5  # 浮点型
 8 stu_id = 1  # 整数
 9 stu_id2 = 1000  # 整数
10 
11 # 1. 今年我的年龄是x岁 -- 整数 %d
12 say = '今年我的年龄是%d岁'
13 print(say)  # 今年我的年龄是%d岁
14 
15 say = '今年我的年龄是%d岁' % age
16 print(say)  # 今年我的年龄是18岁
17 
18 # 2. 我的名字是x -- 字符串 %s
19 say = '我的名字是%s' % name
20 print(say)  # 我的名字是Allen
21 
22 # 3. 我的体重是x公斤 -- 浮点数 %f
23 say = '我的体重是%f公斤' % weight  # %f表示保留小数点后6位()即我的体重是75.500000公斤
24 print(say)  # 我的体重是75.500000公斤
25 say = '我的体重是%.3f公斤' % weight  # .3表示保留小数点后3位()即我的体重是75.500公斤
26 print(say)  # 我的体重是75.500公斤
27 
28 # 4. 我的学号是x -- %d
29 print('我的学号是%d' % stu_id)  # 我的学号是1
30 
31 # 不够3位,前面补0,超过3位是什么就是什么
32 # 4.1 我的学号是001
33 print('我的学号是%03d' % stu_id)   # 我的学号是001
34 print('我的学号是%03d' % stu_id2)  # 我的学号是1000
35 #  4.2 %06s,不足补的是空格
36 print("123456")
37 print("%06s" % "123")
38 # 格式化多个,按顺序写在()里面,用逗号隔开
39 # 5. 我的名字是x,今年x岁了
40 print('我的名字是%s,今年%d岁了' % (name, age))
41 # 5.1 我的名字是x,明年x岁了
42 print('我的名字是%s,明年%d岁了' % (name, age + 1))
43 
44 # 6. 我的名字是x,今年x岁了,体重x公斤,学号是x
45 print('我的名字是%s,今年%d岁了,体重%.2f公斤,学号是%06d' % (name, age, weight, stu_id))

总结

1. 语法: 

  1个变量/表达式:  'xxxx格式符xxxx'  %  变量/表达式

       大于1个变量/表达式: 'xxxx格式符xx格式符xx'  %  (变量/表达式1,变量/表达式2,……)

2. %f格式符默认保留小数6位,可通过%.数字f控制保留的小数位数。eg:%.2f即保留2位小数

3. %06d:表示不足6位前面补零,其他是什么就是什么(左对齐)

4. %06s:表示不足6位前面补空格,其他是什么就是什么(右对齐)

1 print('我的学号是%03d' % stu_id)   # 我的学号是001
2 print('我的学号是%03d' % stu_id2)  # 我的学号是1000
3 #  4.2 %06s,不足补的是空格
4 print("123456")
5 print("%06s" % "123")

输出:

 5. 字符串长度为1时就是其他语言的字符(%c),因为python没有字符类型

# 7.字符串长度为1时就是其他语言的字符(%c),因为python没有字符类型
character = 'A'
formatted_character = "%c" % character
print(formatted_character)  # 输出 'A'

6. %s 可用代替%d,%f

 1 '''
 2 %s 可用代替%d,%f
 3 '''
 4 
 5 name = 'Allen'  # 字符串
 6 age = 18  # 整型
 7 weight = 75.5  # 浮点型
 8 
 9 # 我的名字是x,今年x岁了,体重x公斤
10 print('我的名字是%s,今年%s岁了,体重%08s公斤' % (name, age, weight))  # 我的名字是Allen,今年18岁了,体重    75.5公斤

4. f'xxx{变量/表达式}xxxx' 也叫 f-strings 

 示例

 1 '''
 2 f-strings 是一种方便的字符串格式化方法,它可以使代码更简洁和易读
 3 语法:f'{变量/表达式}'
 4 {}叫占位符
 5 '''
 6 name = 'Allen'
 7 age = 25
 8 # 1. 变量
 9 message = f"My name is {name} and I am {age} years old."
10 print(message)  # My name is Allen and I am 25 years old.
11 
12 # 2. 表达式
13 print(f'{name}明年{age +1}岁')  # Allen明年26岁
14 
15 # 3. 使用冒号 : 来指定格式化选项,例如精度、宽度等。示例代码:
16 value = 3.14159
17 formatted_value = f"The value is: {value:.2f}"
18 print(formatted_value) # 输出 'The value is: 3.14'
19 
20 value='3.14'
21 print(f"The value is: {value:06s}")  #  The value is: 3.1400
22 print(f"The value is: {value:6s}")   # The value is: 3.14
23 
24 # 3. 格式化宽度时,实现左对齐或右对齐,可以使用 < 和 > 字符
25 name = "John"
26 # 3.左对齐即 冒号 : 并跟随 < 字符来指定左对齐。<10 表示字符串的宽度为 10,如果实际字符串的长度少于 10,那么将以空格填充到指定宽度。
27 message = f"Name: {name:<10}"
28 print(message) # 输出 'Name: John      '
29 # 3,右对齐即冒号 : 并跟随 > 字符来指定右对齐。>10 表示字符串的宽度为 10,如果实际字符串的长度少于 10,那么将以空格填充到指定宽度。
30 name = "John"
31 message = f"Name: {name:>10}"  # 只会处理变量name,"Name: "不受影响
32 print(message) # 输出 'Name:       John'  

输出:

 总结

f-strings 是 Python 3.6+ 中引入的一种方便的字符串格式化方法。它使用一种简洁的语法,使得字符串的插入、表达式计算和格式化选项更加直观和易于使用。以下是关于 f-strings 的语法和总结:

  1. 基本语法:

    • 使用 f 前缀来创建 f-string。
    • 在 f-string 中使用大括号 {} 来插入变量、表达式或格式化选项。
    • 在大括号内可以包含变量名、表达式或格式化选项。

    示例:f"Hello, {name}!"

  2. 变量插入:

    • 在大括号内直接使用变量名。
    • 可以插入字符串、整数、浮点数和其他支持的数据类型。

    示例:f"My name is {name}."

  3. 表达式计算:

    • 在大括号内使用表达式。
    • 表达式的结果将被插入到字符串中。

    示例:f"The sum of 2+2 is {2+2}."

  4. 格式化选项:

    • 在大括号内使用冒号 : 来指定格式化选项。
    • 可以指定宽度、精度、对齐方式等格式化选项。

    示例:f"Value: {value:.2f}"

  5. 左对齐和右对齐:

    • 左对齐:在冒号后使用 < 字符。
    • 右对齐:在冒号后使用 > 字符。

    示例:f"Name: {name:<10}" 或 f"Name: {name:>10}"

f-strings 是一种方便的字符串格式化方法,它使用简洁的语法,使字符串的插入、表达式计算和格式化选项更加直观和易于使用。您可以在大括号内插入变量、表达式和格式化选项,并且可以使用 < 和 > 字符进行左对齐和右对齐。f-strings 可以提高代码的可读性和灵活性,是推荐的字符串格式化方法之一。

5. 字符串对象的 format() 方法来格式化字符串

示例

 1 '''
 2 字符串对象的format方法进行字符串格式化
 3 1. 使用大括号 {} 作为占位符,并通过位置参数传递值
 4 2. 用大括号 {关键字参数} 作为占位符,并通过关键字参数传递值
 5 3. 格式化参数
 6 '''
 7 
 8 # 1. 位置参数,占位符没有指定变量名即关键字,使用顺序(位置)对齐
 9 name = "Allen"
10 age = 30
11 message = "My name is {} and I am {} years old.".format(name, age)
12 print(message)  # 输出 'My name is Allen and I am 30 years old.'
13 
14 # 2. 用大括号 {关键字参数} 作为占位符,并通过关键字参数传递值
15 name = "Allen"
16 age = 30
17 message = "My name is {name} and I am {age} years old.".format(age=age, name=name)
18 print(message) # My name is Allen and I am 30 years old.
19 
20 # 3. 在占位符内部使用冒号 : 来指定格式化选项,例如精度、宽度、对齐方式等
21 
22 # 3.1 宽度和精度:
23 # 使用 {:n} 格式化选项指定宽度为 n 的字段。
24 # 使用 {:0n} 格式化选项可以在字段前面添加零来填充空白。
25 # 使用 {:n.m} 格式化选项指定宽度为 n,精度为 m 的字段。
26 value = 42
27 print("Value: {:6}".format(value))   # 宽度为 6
28 print("Value: {:06}".format(value))  # 宽度为 6,前面补零
29 print("Value: {:.2f}".format(value)) # 两位小数
30 '''
31 输出结果:
32 Value:     42
33 Value: 000042
34 Value: 42.00
35 '''
36 
37 
38 # 3.2 对齐方式:
39 # 使用 <、^ 和 > 分别表示左对齐、居中和右对齐。
40 # 在对齐符号后面添加宽度选项。
41 name = "John"
42 print("Name: {:<10}".format(name))  # 左对齐,宽度为 10
43 print("Name: {:^10}".format(name))  # 居中对齐,宽度为 10
44 print("Name: {:>10}".format(name))  # 右对齐,宽度为 10
45 '''
46 输出结果:
47 Name: John      
48 Name:    John   
49 Name:       John
50 '''
51 
52 # 4. 进制转换:
53 # 使用 b、o、d 和 x 来分别表示二进制、八进制、十进制和十六进制。
54 # 使用 # 符号可以显示相应的进制前缀。
55 value = 42
56 print("Binary: {:b}".format(value))   # 二进制   Binary: 101010
57 print("Octal: {:o}".format(value))    # 八进制   Octal: 52
58 print("Decimal: {:d}".format(value))  # 十进制   Decimal: 42
59 print("Hexadecimal: {:x}".format(value))  # 十六进制  Hexadecimal: 2a
60 
61 
62 # 5. 千位分隔符:
63 # 使用逗号 , 分隔字符可以插入千位分隔符
64 value = 1000000
65 print("Value: {:,}".format(value))  # 千位分隔符  Value: 1,000,000

总结

format() 函数是 Python 中用于格式化字符串的内置函数。它通过使用占位符 {} 和参数来插入值,并根据指定的格式化选项对值进行格式化。以下是关于 format() 函数的总结和示例:

  1. 基本语法:

    • 使用字符串对象的 format() 方法来格式化字符串。
    • 在格式化字符串中使用占位符 {} 来表示要插入的值的位置。
    • 通过在 format() 方法中传递参数,将值插入到相应的占位符位置。

    示例:"Hello, {}. Welcome to {}.".format(name, place)

  2. 位置参数:

    • 在 format() 方法中传递的值按顺序插入到占位符位置。
    • 可以根据需要在字符串中使用多个占位符。

    示例:"The {} {} jumped over the {}.".format(color, animal, object)

  3. 关键字参数:

    • 在 format() 方法中使用关键字参数来指定要插入的值的位置。
    • 在占位符中使用指定的关键字。

    示例:"My name is {name} and I am {age} years old.".format(name="John", age=30)

  4. 格式化选项:

    • 可以在占位符中使用冒号 : 来指定格式化选项。
    • 格式化选项用于指定宽度、精度、对齐方式等。

    示例:"Value: {:.2f}".format(value)

format() 函数是 Python 中用于格式化字符串的内置函数。您可以使用占位符 {} 和参数来插入值,并使用冒号 : 和格式化选项来对值进行格式化。您可以使用位置参数或关键字参数来指定要插入的值的位置。format() 函数提供了强大的字符串格式化功能,可以根据不同的需求进行灵活的字符串格式化操作。

标签:格式化,name,format,value,print,字符串
From: https://www.cnblogs.com/allenxx/p/17517967.html

相关文章

  • [转]前台传递给后台的JSON字符串中的引号 “” 在JAVA后台被转义为 &quot
    1、问题:前台数据,JSON字符串带有引号“”,数据被传递到后台,引号被转义为&quot,后台无法解析。前台数据如下:正常后台数据如下:大部分正常,只有JSON字符串中的“”被转义为&quot2、解决:方法一:使用apache的lang包里的方法StringappJson=StringEscapeUtils.un......
  • Oracle CONNECT BY根据特定字符拆分字符串
    1、一行SELECTT.ID,REGEXP_SUBSTR(T.VALS,'[^,]+',1,LEVEL)ASVALFROM(SELECT'101'ID,'A,B'VALSFROMDUAL)TCONNECTBYLEVEL<=REGEXP_COUNT(T.VALS,'[^,]+');2、多行2-1、如果ID唯一不重复:SELECTT.ID,REGEXP_SUBSTR......
  • [代码]如何分析XML字符串(LINQ to XML)
    此代码演示如何使用XElement.Parse()方法分析XML字符串,并创建XElement元素。从编程效率来讲这种做法可能效率非常的高,但从代码的执行效率来看,还是使用函数构造的方式创建XML树的效率高一点。示例代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSys......
  • Base64编码和解码字符串
    Base64编码和解码字符串packagecom.example.core.mydemo.cpic;importorg.apache.commons.codec.binary.Base64;/***strEncode=aGVsbG8gd29ybGQ=*strDecode=helloworld*/publicclassBizRequestBase64Test{privatestaticfinalStringCHAR_SET_UTF_8=......
  • LocalDateTime日期格式化和指定日期的时分秒
    LocalDateTime日期格式化和指定日期的时分秒packagecom.example.core.mydemo.date;importjava.time.LocalDate;importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;/***now=2023-06-30*after=2023-07-04*afterTime=2023-07-04T00:00:0......
  • mysql 如何 使用一个字符串来进行排序
    如果想进行对一个字段进行排序,但是这个字段却不是int类型,适应varchar类型怎么办呢?常用的方式:给字符字段加上0,举例:1:假设scoreRate是一个varchar类型,并且值是一个百分(90%)的数据格式.要求:请获取scoreRate值最高的一条数据:sql:select*fromresultTableorderbyreplace(sco......
  • 处理字符串
    后端返回的字符串需要放到el-table-column中,有的字符串有换行符,显示在页面中是"XXXXXXXXXX\nXXXXXX",用v-html\white-space\正则处理str.replace(/\n/g,'<br>')都不行;仔细查看后端返回的原字符串为"XXXXXXXXXX\\nXXXXXX",用正则处理str.replace(/\\n/g,'<br>')后再用v-......
  • C++代码中字符串分多行时的情况
    #include<iostream>intmain(constintargc,constchar*argv[]){std::stringstrSql1="select*fromtable\whereid=1\andname='name'";std::cout<<strSql1<<std::endl;std::stringst......
  • postgresql 字符串转整数 int、integer
    postgresql字符串转整数int、integer --把'1234'转成整数selectcast('1234'asinteger);--用substring截取字符串,从第8个字符开始截取2个字符:结果是12selectcast(substring('1234abc12',8,2)asinteger)---使用to_number函数来转换成整数---to_number(text,......
  • Java数据类型转换,字符串(String)转日期(Date)
    Java类型转换,字符串(String)转日期(Date)importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassDateTimeConversion{publicstaticvoidmain(String[]args){StringdateString="2011-07-2800:00:00......