详解Python中的字符串格式化

目录
  • 什么是字符串格式化,为什么需要这样做?
  • 程序中都有哪些格式化?
  • 占位符格式化
    • 第一种%占位符格式化
    • 第二种占位符格式化
  • 关键字格式化
  • 总结

什么是字符串格式化,为什么需要这样做?

我们有时候刷抖音/B站看到封面很好看,但是进入直播发现,不过如此!
想必主播通过某种方式把输出转换为读者想看的内容。

是不是大概懂了什么是格式化和格式化的必要性了!

仅仅类比,我们程序的格式化,并没有那么过份!1输出还是1,只是人类更好读懂了。

而不像网络主播那样稍微格式化(工程挺大)从1变成了0。

毕竟程序不能欺骗开发者。

必要性:输出为更好的格式化,方便开发者和用户读懂输出。

程序中都有哪些格式化?

网上说有三种,四种,未来还可能会增加其他库。

学委开发过多种语言,大概总结如下两个大类:

  • 字符串占位符替换
  • 字符串关键字替换

下面看看代码

占位符格式化

第一种%占位符格式化

python中我们最常见的是'%‘ 这类占位符号

str = "hello"
"this is a string: %s" % str
"this is a string: %s, %s" % (str, str)

上面我们观察一下,可以发现输出中‘%s'被替换为了'hello';

另一个是多个‘%s'的替换是用一个元组,按照对应下标来替换。

格式化基本上都可以使用'%s'来完成。

好,懂了这个,我们继续看看下面的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format.py
# @Project : hello
import sys
first = "持续学习"
second = "持续开发"
slogan = first + second
print(slogan)
banner = "*" * 16
print(banner)
slice = slogan[2:4]
print(slice)
print(""""学习" in slogan : %s""" % ("学习" in slogan))
print(""""不学习" not in slogan : %s""" % ("不学习" not in slogan))
print(r"""打印\n换行被当做普通字符输出了!""")
# 以上我们都可以看到%,很多次代码都有说到这个,但是并没有过多解释
print("%s" % slogan)  # 最常用了%s 格式化字符串
# print("%c"%'ccc')#TypeError: %c requires int or char
print("%c" % 'c')  # %c 通常用来强制检测待输出的字符串必须长度为1
print("%c" % '雷')  # %c 通常用来强制检测待输出的字符串必须长度为1
number = 102.40101
print("%%i 符号整数 %i" % number)
print("%%i 符号整数:%i" % -number)
print("%%d 符号整数 %d" % number)
print("%%d 符号整数 %d" % -number)
print("%%u 无符号整数:%u" % number)
print("%%u 无符号整数:%u" % -number)
#print("八进制 %o" % number)
print("%%o 八进制 %o" % 102)
print("%%x16进制 %x" % 102)
#print("16进制 %X" % 102)
print("%%e 自然常数 e进制: %e" % number)
#print("%E" % number)
print("%%f 浮点数 %f" % number)
print("%%g 灵活的有效显示:%g" % number) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
#print("%G" % number)
print("%%g 灵活的有效显示:%g" % (number*10001)) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
#下面两种写法需要注意执行顺序
#print("%g" % number*10001) #注意这种写法
#print("%g" % number**10) #注意这种写法

读者可以直接复制运行代码,学委补充了运行效果图:

这里比较特殊的是‘%u'无符号整型的展示,正负数并无区别。

那是肯定的,无符号整型跟有符号整型是表示数的两种手段。
但是无符号的比有符号多了一个位来放数字,所以范围更大。

上面这段题外话,小白稍微看看或者跳过。我们继续看看其他格式化方式。

第二种占位符格式化

跟上面稍微区别就是我们会看到一下明显的下标。

{0}, {1}, … {n}

想要留几个替换位,就放几个{}括起来,但要求必须给到n个参数,更多信息参考https://docs.python.org/3/library/string.html

这个非常简单直接,我们看看代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format1.py
# @Project : hello
import sys
slogan = "持续学习持续开发"
author = "雷学委"
text = "{0}, {1}".format(slogan, author)
print("text= %s" % text)

关键字格式化

非常好理解就是类似{}一对大括弧中间为待替换的内容。

这个非常简单直接,我们看看代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format2.py
# @Project : hello
import sys
slogan = "持续学习持续开发"
author = "雷学委"
text = f"{slogan} , {author}"
print("text= %s" % text)

运行效果如下:

从这里看,关键字格式化比较友好!

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 详解Python中的字符串常识

    目录 回顾一下:字符串与长字符串 转义字符,比如如何在字符串中输出引号/换行? 总结 回顾一下:字符串与长字符串 Python非常简单,并没有专门分出一个char(Character)类型(搞过C/Java的同学都熟悉) 在Python中,由单引号/双引号/三引号扩起来的通通都是字符串! 我们再看看字符串长啥样 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/10/30 10:13 上午 # @Author : LeiXu

  • python基础字符串str详解

    目录 字符串str: 编码: ord(字符串)和chr(整数): 字符串字面值: 字符串通用操作 字符串str: 定义:是由一系列字符组成的不可变序列容器,储存的事字符的编码值 编码: 1.字节byte:计算机最小储存单位,等于8位bit 2. 字符:单个的数字,文字与字符 3. 字符集(码表):存储字符与二进制序列的对应关系 4. 编码:将字符转换为对应的二进制序列的过程 5. 解码:将二进制序列转换为对应的字符的过程 6. 编码方式: ASCLL编码:包含英文,数字等字符,每个字符1个字节

  • Python中字符串的基本使用详解

    目录 前言 1 字符串索引 1.1 循环索引字符 2 字符使用 2.1 字符串运算 3 字符串切片 3.1 切片方法 4 字符串格式化 总结 前言 除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在.例如,从用户哪里读取字符串,并将字符串打印到屏幕显示出来. 字符串是一种数据结构,这让我们有机会学习索引和切片--用于从字符串中提取子串的方法. 1 字符串索引 在Python语法支持中,我们简单的阐述过字符串的使用,现在我们看看python程序在处理字符串时,如何

  • 深入解读python字符串函数

    目录 字符串 id() 函数作用取地址 字符串的获取 索引关系 切片 step 总结 字符串 python中有一个单独的地址是字符串保留区 s1=s2表示 将s2的地址给了s1 id() 函数作用取地址 eg:id(s1)结果显示s1的地址 字符串的获取 eg:s1='ABCDEFG' 索引关系 字符串都有对应的索引关系 index() A B C D E F G 0 1 2 3 4 5 6 -7 -6 -5 -4 -3 -2 -1 eg:s1[4]=E 切片 切片:字符串,列表 格式:字符串变

  • Python 字符串操作详情

    目录 1.字符串的定义 2.转义字符串和原始字符串 4.字符串的运算 4.1 拼接运算符 4.2 成员运算 5.获取字符串长度 6.索引和切片 7.字符串的方法 7.1 转换大小写 7.2 查找操作 7.3性质判断 7.4格式化字符串 8.修剪操作 1.字符串的定义 所谓字符串,就是由0个或者多个字符组成的有限序列. 在Python程序中,如果我们把单个或多个字符用单引号''或者双引号""包裹起来,就可以表示一个字符串,也可以用三个单引号或者双引号进行折行.字符串的字符可以是特殊符号.

  • python字符串操作

    目录 一.字符串方法 1.字符串的分割 2.字符串的查找,替换 3.字符串的判断 二.切片操作(列表,元组也可以) 1.索引 2.切片有三个参数[start:end :step] 一.字符串方法 1.字符串的分割 s.split() 默认是按照空格分割 s.split(',') 按照逗号分割(返回的是一个列表,并没有改变原来的字符串) >>> s= "如今最好,别说来日方长,时光难留,只有一去不返" >>> print(s.split(",

  • 详解Python中的字符串格式化

    目录 什么是字符串格式化,为什么需要这样做? 程序中都有哪些格式化? 占位符格式化 第一种%占位符格式化 第二种占位符格式化 关键字格式化 总结 什么是字符串格式化,为什么需要这样做? 我们有时候刷抖音/B站看到封面很好看,但是进入直播发现,不过如此! 想必主播通过某种方式把输出转换为读者想看的内容. 是不是大概懂了什么是格式化和格式化的必要性了! 仅仅类比,我们程序的格式化,并没有那么过份!1输出还是1,只是人类更好读懂了. 而不像网络主播那样稍微格式化(工程挺大)从1变成了0. 毕竟程序不能

  • 详解Python3 中的字符串格式化语法

    一.旧式的字符串格式化 % 操作符 参考以下示例: >>> name = "Eric" >>> "Hello, %s." % name 'Hello, Eric.' 当有多个变量需要插入到字符串中时: >>> name = "Eric" >>> age = 74 >>> "Hello, %s. You are %s." % (name,

  • 详解Python中的format格式化函数的使用方法

    format函数实现字符串格式化的功能 基本语法为: 通过 : 和 {} 来控制字符串的操作 一.对字符串进行操作 1. 不设置指定位置,按默认顺序插入 ①当参数个数等于{}个数的时候 str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢") print(str_1) 运行结果: ②当参数个数大于{}个数的时候 str_1 = "小明{}小美,可是小美{}小明".format("喜欢

  • 详解Python中神奇的字符串驻留机制

    目录 1 什么是字符串驻留机制 2 如何使用字符串驻留机制 3 简单拼接驻留, 运行时不驻留 4 总结 5 全部代码 今天有一个初学者在学习Python的时候又整不会了. 原因是以下代码: a = [1, 2, 3] b = [1, 2, 3] if a is b: print("a and b point to the same object") else: print("a and b point to different objects") 运行结果是a an

  • 详解Python中string模块除去Str还剩下什么

    string模块可以追溯到早期版本的Python. 以前在本模块中实现的许多功能已经转移到str物品. 这个string模块保留了几个有用的常量和类来处理str物品. 字符串-文本常量和模板 目的:包含用于处理文本的常量和类. 功能 功能capwords()将字符串中的所有单词大写. 字符串capwords.py import string s = 'The quick brown fox jumped over the lazy dog.' print(s) print(string.capw

  • 详解Python中enumerate函数的使用

    Python 的 enumerate() 函数就像是一个神秘的黑箱,你无法简单地用一句话来概括这个函数的作用与用法. enumerate() 函数属于非常有用的高级用法,而对于这一点,很多初学者甚至中级学者都没有意识到.这个函数的基本应用就是用来遍历一个集合对象,它在遍历的同时还可以得到当前元素的索引位置. 我们看一个例子: names = ["Alice","Bob","Carl"] for index,value in enumerate(n

  • 详解Python中的数据精度问题

    目录 一.python运算时精度问题 1.运行时精度问题 2.解决方案:添加方法 二.python四舍五入时精度问题 1.使用round与浮点数格式化时候的精度问题 2.解决方案,使用Decimal函数 一.python运算时精度问题 1.运行时精度问题 在Python中(其他语言中也存在这个问题,这是计算机采用二进制导致的),有时候由于二进制和十进制之间对应问题会导致数值的精度问题,比如无法用有限个二进制位完整地表示0.1,因为0.1转化为二进制之后位一个无限循环小数 print(1.1*2.

  • 一文详解Python中logging模块的用法

    目录 一.低配logging 1.v1 2.v2 3.v3 二.高配logging 1.配置日志文件 2.使用日志 三.Django日志配置文件 一.低配logging 日志总共分为以下五个级别,这个五个级别自下而上进行匹配 debug-->info-->warning-->error-->critical,默认最低级别为warning级别. 1.v1 import logging logging.debug('调试信息') logging.info('正常信息') logging

  • 详解C++中十六进制字符串转数字(数值)

    详解C++中十六进制字符串转数字(数值) 主要有两个方法,其实都是对现有函数的使用: 方法1: sscanf()   函数名: sscanf 功  能: 从字符串格式化输入 用  法: int sscanf(char *string, char *format[,argument,...]); 以上的 format 为 %x 就是将字符串格式化为 16 进制数 例子:  #include <stdio.h> void main() { char* p = "0x1a"; i

随机推荐