如何在Python中打印上标和下标?




如何在Python中打印上标和下标?

Python是一种多功能的编程语言,我们都知道它的简单和强大。无论你是刚开始还是经验丰富的开发者,Python都提供了各种工具来控制和显示各种格式的文本。在写作中,我们经常需要上标和下标,特别是用于表示科学计数法或数值。在本文中,我们将尝试可视化并了解Python中打印上标和下标的不同方法。这将使您能够美化和调整文本输出,使其在视觉上更吸引人并且正确无误。

解码上标和下标

虽然你们大多数人都已经了解上标和下标,但为了新手或初学者的清晰起见,让我们快速了解一下这两个术语的意思。

上标: 在写作时,我们遵循一条基线(想象中的)以保持流畅和易读。对于某些类型的文本,我们需要一种格式,其中一个较小的文本被提升到基线之上,以便用于数学指数、脚注或某些化学式。这种格式技术称为上标。例如,在表达式”x2″中,数字2为上标。



下标: 下标完全与上标相反。这种格式技术将较小的文本放置在基线以下,主要用于化学公式、数学方程或某些数学符号。例如,在化学式”H2O”中,数字2为下标。

现在我们对上标和下标有了一个清晰的认识,让我们了解如何在Python中打印它们。

方法1:使用Unicode字符

Unicode是一个在全球范围内被接受的标准系统,用于表示大多数书写系统中的文本字符编码。它为各种书写系统的每个字符分配了一个独特的编号。Python是支持Unicode的语言之一,这使我们能够显示广泛范围的字符,包括上标和下标。

让我们来看几个与相应字符相关的Unicode代码。

Superscript No.s Unicode Code Superscript Characters
0 U+2070 0
1 U+00B9 1
2 U+00B2 2
3 U+00B3 3
4 U+2074 4
5 U+2075 5
6 U+2076 6
7 U+2077 7
8 U+2078 8
9 U+2079 9

Subscript No.s | Unicode Code | Subscript Characters
—|—|—
0 | U+2070 | 0
1 | U+00B9 | 1
2 | U+00B2 | 2
3 | U+00B3 | 3
4 | U+2074 | 4
5 | U+2075 | 5
6 | U+2076 | 6
7 | U+2077 | 7
8 | U+2078 | 8
9 | U+2079 | 9
将下面的英文翻译成中文,不解释,保留HTML格式:

Python的print()语句可以理解Unicode,如果我们添加/u,它将返回与给定Unicode代码对应的字符。让我们编写一个简单的程序来测试一下。

示例

# superscript
print("x\u00b2") # x²
# subscript
print(u'H\u2082O') # H2O

输出

x²
H2O

方法二:创建自定义函数

我们还可以创建一个函数来提高灵活性,并根据需要将文本转换为上标或下标。

在我们的函数中,我们可以创建两个字符串,一个用于普通字符,另一个用于上标/下标字符。

然后,可以使用maketrans()方法创建字符之间的链接或映射。现在,我们可以简单地将映射传递给translate()方法,以将普通字符替换为上标/下标字符。

通过这个函数,你可以轻松地将任何常规数字转换并打印为上标或下标。让我们看一下我们的代码以更好地理解它。

示例

def convert_text(text, is_superscript=True):
    normal_chars = "0123456789"
    superscript_chars = "⁰¹²³⁴⁵⁶⁷⁸⁹"
    subscript_chars = "₀₁₂₃₄₅₆₇₈₉"

    if is_superscript:
        mapping = str.maketrans(normal_chars, superscript_chars)
    else:
        mapping = str.maketrans(normal_chars, subscript_chars)
    converted_text = text.translate(mapping)
    return converted_text

input_text = 'X2'
superscript_text = convert_text(input_text, is_superscript=True)
subscript_text = convert_text(input_text, is_superscript=False)
print("Input Text: ", input_text)
print("Superscript Text:", superscript_text)
print("Subscript Text:", subscript_text)

输出

Input text: X2
Superscript text: X²
Subscript text: X₂

第 3 步:使用 univoceit 库

除了使用 Unicode 方法和自定义函数外,我们还可以通过 Python 广泛的库支持找到我们的方法。

其中一个库是 UnicodeIt 库,它可以将 LaTeX 标签转换为 Unicode。我们可以使用它的 replace() 方法生成上标和下标。



对于上标,我们使用标签’^’,对于下标,我们使用标签’_’,并在 replace() 方法中使用。在我们的代码中使用之前,我们可以通过在 cmd 窗口中运行以下命令轻松安装它:

pip install unicodeit

现在,一旦我们完成了软件包的安装,我们就可以导入并使用该库。让我们深入代码。

示例

import unicodeit
print(unicodeit.replace('X^2 + Y^2 = Z^2'))
print(unicodeit.replace('H_2SO_4'))

输出

X² + Y² = Z²
H₂SO₄

上标和下标的应用

  • 数学方程:
    • 表示指数: “x^2” 表示 “x的平方”。

    • 科学记数法: “1.23 x 10^5” 表示 “1.23乘以10的5次方”。

  • 化学式:

    • 分子式: “H2O” 表示水,其中的 “2” 是下标,表示两个氢原子。

    • 化学方程式: “2H2 + O2 → 2H2O” 表示氢和氧形成水。

  • 脚注和参考文献:

    • 表示脚注: “这是一个带有上标^1的句子,引用一个脚注。”

    • 引用: “爱因斯坦的相对论^2彻底改变了物理学。”

  • 格式字符:

    • 商标: “OpenAITM” 中的 “TM” 上标。

    • 注册符号: “OpenAI®” 中的 “R” 上标。

结论

上标和下标广泛应用于数学方程和化学式中。现如今,它们也被用于美化文本或使其视觉吸引力更强。借助Python及其强大的Unicodeit库,我们可以使用一行代码轻松实现这两种写作格式。

本文还介绍了如何创建自己的函数将普通文本转换为上标和下标。您可以进行各种自定义,并尝试执行您自己的想法。我们已经看到了执行可能命令的编码示例。



初始代码利用Python的Unicode支持将普通文本转换为上标和下标。对于第二个示例,我们创建了一个函数,增加了我们的灵活性,并且还促进了它在多种情况下的使用。

最后,我们看到了库的强大功能。Unicodeit帮助我们通过简单的replace()方法将文本转换为上标和下标。



Python 精选笔记
使用Python和自然语言工具包(NLTK)构建聊天机器人使用Plan模块在Python中编写crontab文件使用Python和Requests库开发网络爬虫使用Python中的Whoosh库开发文本搜索引擎使用Python和scikit-learn开发机器学习模型使用Python和Plotly Dash创建基于Web的数据可视化仪表板使用Python控制树莓派GPIO引脚使用Python和Pandas库构建股票价格预测模型如何在Python中解析XML并计算特定节点属性的实例?如何在Python中解析本地HTML文件?如何按多列对PySpark DataFrame进行排序?如何在Pygame中移动游戏角色?如何在Python中同时打开两个文件?如何使用Python移动文件夹及其子文件夹的列表?如何使用Python将多个文件夹合并成一个文件夹?如何使用Python将多个Excel文件合并成一个单一文件?如何使用Python Pandas按照共同的键合并多个TSV文件?如何使用PIL将透明的PNG图片与另一张图片合并?Python中嵌套函数是如何工作的?Python中的全局变量和局部变量?在Python函数中如何使用全局变量?如何从Python对象中获取源代码?如何在Python中返回一个函数?如何在Python中安装matplotlib?Python - 分割包含散乱字符的字符串Python - 记录列表XORPython – 向记录的末尾添加数据Python - 键值大于K的记录在Python中垂直打印列表Python - 列表中字符串平均长度Python列表中的交替循环Python程序实现混淆词游戏Python-记录联合Python程序计算列表中元组的重复项Python程序:将字符串的字符转换为相反的大小写Python - 打印给定年份列表中的闰年数量Python - 打印所有子列表中的共同元素Python - 删除嵌套列表中的所有元素如何在Python列表中检查空格?在Python中引发异常到另一个异常Python字符串中的范围复制Python程序计算包含列表的列表中列表的数量修改给定Python列表中的重复值Python - 检查元素是否在指定范围内出现从Python的元组列表中删除所有字符串如何使用Pygame添加颜色呼吸效果?如何在Bokeh中添加颜色条如何在Bokeh中添加颜色选择器?使用Python程序显示带有星边框的数字半菱形图案Python使用ipaddress模块确定给定的IPv4地址是否为保留地址使用ipaddress模块的Python程序来确定给定的IP地址是公网还是私网Python程序通过平方和连接给定数字的奇数位数来创建一个OTPPython程序创建以零为中心的列表Python程序计算字符串中的字符数Python程序将米转换为码,反之亦然Python程序:统计文本文件中的元音、行数和字符数Python程序计算文本文件中的单词数量Python程序,用于计算文本文件中空格的数量将字典的值转换为字符串的Python程序Python程序将浮点数转换为指数Python程序将整数转换为指数Python程序将整数转换为罗马数字将整数列表转换为字符串列表的Python程序Python程序将XML转换为字典Python程序:通过重复键对应的值次数将字典转换为列表将Dict of list转换为CSV的Python程序使用正则表达式统计Python程序中大写字母、小写字母、特殊字符和数字值的个数Python元组的并集Python - 嵌套和混合列表中的类型转换Python - 将列表转换为单值列表的元组如何在Python中打印上标和下标?如何在Python中打印多个参数?如何在Plotly-Python中将图例定位在图表内部?如何使用Pandas绘制时序图表?如何使用SciPy在Python中绘制Ricker曲线?如何在Python列表中删除True值?如何使用Python将字典的值转换为绝对值?如何使用Python将字典转换为K个大小的字典?如何使用Python将浮点数舍入到2位小数?如何在Python中将Excel转换为CSV如何在Python中对元组进行索引和切片?如何在Python中判断一个对象是否有属性?在Python中创建实例对象如何使用Python获取城市的经纬度?如何在Python中获取整数输入?如何交换给定 NumPy 数组的列?如何使用NumPy抑制对小数的科学计数法使用?如何使用Python将XML数据存储到MySQL数据库中?如何在Pandas DataFrame中减去两列?如何在Pandas DataFrame中标准化数据?如何堆叠多个Pandas DataFrames?如何使用scikit-learn的train_test_split()函数拆分数据集如何在Python中分割数据以进行训练和测试,而不使用Sklearn在Python set中找到最大值和最小值Python程序:找到长方体的体积、表面积和空间对角线如何在Python程序中获取字符串的K个可能切片如何使用Altair在Python中制作密度图?生成一次性密码(OTP)的Python程序Python程序:找出数组中可被给定数整除的元素的XOR寻找巨大最大公约数(Jumbo GCD)子数组的Python程序如何在OpenCV Python中查找图像轮廓的边界矩形?如何在Python脚本所在的目录中打开文件?如何在Anaconda中安装Python包?如何在OpenCV Python中旋转图像?如何给定完整路径导入Python模块?如何在Python中从另一个函数调用变量?使用Python的Matplotlib在X轴上绘制日期如何在Python中不使用math模块进行平方根运算?如何在Python Tkinter中给Frame添加边框?如何从Python函数返回一个字典?Python程序获取元组中的第一个和最后一个元素如何求一个Python字典的值的总和?Python Pandas - 查找列的最大值并返回其对应的行值机器人流程自动化 - 简介机器学习中的逻辑回归损失函数如何从Python日期中减去一天?将物联网和机器学习相结合,使我们的未来更智能机器学习中的Boosting | Boosting和AdaBoost如何在Python中将时间戳字符串转换为datetime对象?如何在Python中将变量名转换为字符串?什么是Python中的.pyc文件?Python - 检查列表中的所有元素是否相同如何在Python Plotly中设置Y轴的范围?如何将Python日期转换为Unix时间戳?Python中的Turtle绘图编程如何在Python中的给定位置插入一个对象到列表中?如何在Python中进行日期验证?如何使用Python将两个图并排显示?在Python中的方法和函数之间的区别Python中的PYTHONPATH环境变量是什么?如何对Python日期字符串列表进行排序?在Python的Pandas中向现有的DataFrame中添加新列如何将Python元组转换为字典?Python - 使用Pandas读取没有标题的csv文件?如何使用OpenCV Python在图像中检测矩形和正方形?如何使用OpenCV在Python中改变图像的对比度和亮度?如何在Python中将日期时间转换为UTC时间戳?如何列出Python模块中的所有函数?Python程序查找字符串中的所有重复字符使用Python进行文件搜索如何在Python Tkinter中更改按钮大小?