Python 自己动手创建string标准库中的常量

简介: Python 自己动手创建string标准库中的常量

标准库string中,capwords是函数,Formatter, Template是类,其余9个是字符串常量:

>>> from string import *
>>> string.__all__
['ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace', 'Formatter', 'Template']
>>> ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> capwords
<function capwords at 0x022FA730>
>>> digits
'0123456789'
>>> hexdigits
'0123456789abcdefABCDEF'
>>> octdigits
'01234567'
>>> printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
>>> punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> whitespace
' \t\n\r\x0b\x0c'
>>> Formatter
<class 'string.Formatter'>
>>> Template
<class 'string.Template'>
>>> Formatter()



分别是:字母、小写字母、大写字母、数字、十六进制数字、八进制数字、可打印字符、标点、空格

用法:

>>> a='a'
>>> b='3'
>>> c='\\'
>>> a in ascii_letters
True
>>> b in ascii_letters
False
>>> c in digits
False
>>> c in punctuation
True
>>> b in digits
True
>>> '\x0b' in whitespace
True
>>> ' ' in whitespace
True
>>> '' in whitespace
True
>>> None is whitespace
False
>>> '' in digits
True
>>> '' in ascii_letters
True
>>> '' in punctuation
True
>>>  


注意:''空串都返回True ......

其实不用string库,自动动手创建这些常量也非常简单:

>>> digits=''.join([chr(i) for i in range(48,58)])
>>> digits
'0123456789'
>>> ascii_lowercase=''.join([chr(i) for i in range(97,123)])
>>> ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> ascii_uppercase=''.join([chr(i) for i in range(65,91)])
>>> ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> ascii_letters=''.join([chr(i) for i in range(65,123) if not 91<=i<97])
>>> ascii_letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
>>> #or:
>>> tmp=''.join([chr(i) for i in range(122,64,-1) if not 91<=i<97])
>>> tmp[:26][::-1]+tmp[26:][::-1]
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> punctuation=''.join([chr(i) for i in range(33,127) if any([i>122, 90<i<97, 57<i<65, i<48])])
>>> punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> 


还有''.join([chr(i) for i in range(33,127)]) + 6个空白符就是printable,共100个可打印字符。

目录
相关文章
|
1月前
|
存储 Java 索引
Python String详解!
本文详细介绍了Python中的字符串数据类型,包括其创建、访问、切片、反转及格式化等操作。文章涵盖字符串的基本概念、各种操作方法以及常用内置函数。通过多个示例代码展示了如何使用单引号、双引号和三重引号创建字符串,如何通过索引和切片访问与修改字符串内容,以及如何利用格式化方法处理字符串。此外,还介绍了字符串的不可变性及其在实际应用中的重要性。通过本文的学习,读者可以全面掌握Python字符串的使用技巧。
45 4
|
1月前
|
Go C++ Python
Python Tricks: String Conversion(Every Class Needs a ___repr__)
Python Tricks: String Conversion(Every Class Needs a ___repr__)
|
1月前
|
安全 JavaScript 前端开发
Python Tricks: A Shocking Truth About String Formatting(二)
Python Tricks: A Shocking Truth About String Formatting(二)
|
1月前
|
Python
Python Tricks: A Shocking Truth About String Formatting(一)
Python Tricks: A Shocking Truth About String Formatting(一)
|
3月前
|
SQL JSON 测试技术
Python中的f-string
Python中的f-string
|
3月前
|
存储 Serverless 数据处理
Python - len(string)函数
通过上述介绍和示例,我们可以清楚地看到,在Python中,`len()`函数是处理字符串以及其他可迭代对象长度的重要工具。它简单、易用,但在实际应用中却非常强大,无论是在基础编程还是在复杂的数据处理中,`len()`函数都扮演着不可或缺的角色。
68 10
|
4月前
|
Python
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
|
4月前
|
Java 开发者 Python
Python中,字符串(String)是一种不可变的数据类型
Python中,字符串(String)是一种不可变的数据类型
|
4月前
|
SQL 数据库 数据安全/隐私保护
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
178 2
|
4月前
|
Java 测试技术 开发者
Python:使用标准库编写单元测试
在现代软件开发中,编写单元测试是确保代码质量和可靠性的重要步骤。Python 提供了一个内置的单元测试框架,称为 unittest,它可以帮助开发者方便地编写和运行测试。本文将详细介绍如何使用 unittest 编写单元测试。