您的位置 首页 > 数码极客

string如何去掉最后一个字符——string去掉最后一个字符java!

string模块可以追溯到早期版本的Python。

以前在本模块中实现的许多功能已经转移到str物品。

这个string模块保留了几个有用的常量和类来处理str物品。

还有两个函数未从 string 模块移出:capwords() 和 maketrans()。

字符串-文本常量和模板

目的:包含用于处理文本的常量和类。

功能

功能capwords()将字符串中的所有单词大写。

#字符串ca import string s = 'The quick brown fox jumped over the lazy dog.' print(s) prin(s))

结果与调用split(),将结果列表中的单词大写,然后调用join()把结果结合起来。

$ python3 string_ca The quick brown fox jumped over the lazy dog. The Quick Brown Fox Jumped Over The Lazy Dog.

模板

字符串模板作为PEP 292作为内建内插语法的替代。带着内插,变量通过在名称前加上$(例如,$var)。或者,如果需要的话,也可以用花括号(例如,${var}).

此示例使用%运算符和新的格式字符串语法。().

#字符串模板 import string values = {'var': 'foo'} t = (""" Variable : $var Escape : $$ Variable in text: ${var}iable """) print('TEMPLATE:', t.substitute(values)) s = """ Variable : %(var)s Escape : %% Variable in text: %(var)siable """ print('INTERPOLATION:', s % values) s = """ Variable : {var} Escape : {{}} Variable in text: {var}iable """ print('FORMAT:', s.format(**values))

在前两种情况下,触发器字符($或%)是通过重复两次来逃脱的。对于格式语法,两者都是{和}需要通过重复它们来逃脱。

$ python3 TEMPLATE: Variable : foo Escape : $ Variable in text: fooiable INTERPOLATION: Variable : foo Escape : % Variable in text: fooiable FORMAT: Variable : foo Escape : {} Variable in text: fooiable

模板与字符串内插或格式化之间的一个关键区别是,参数的类型没有被考虑在内。将值转换为字符串,并将字符串插入到结果中。没有可用的格式设置选项。例如,无法控制用于表示浮点值的数字数。

不过,有一个好处是,使用safe_substitute()方法可以避免异常,如果不是以参数形式提供模板所需的所有值。

#字符串模板丢失.py import string values = {'var': 'foo'} t = ("$var is here but $missing is not provided") try: print('substitute() :', t.substitute(values)) except KeyError as err: print('ERROR:', str(err)) print('safe_substitute():', t.safe_substitute(values))

因为没有价值missing在值字典中,KeyError是由substitute()。

而不是提高错误,safe_substitute()捕获它并将变量表达式单独保留在文本中。

$ python3 ERROR: 'missing' safe_substitute(): foo is here but $missing is not provided

高级模板

可以通过调整用于在模板正文中查找变量名称的正则表达式模式来更改。一个简单的方法是更改delimiter和idpattern类属性。

#字符串模板 import string class MyTemplate(): delimiter = '%' idpattern = '[a-z]+_[a-z]+' template_text = ''' Delimiter : %% Replaced : %with_underscore Ignored : %notunderscored ''' d = { 'with_underscore': 'replaced', 'notunderscored': 'not replaced', } t = MyTemplate(template_text) print('Modified ID pattern:') prin(d))

在本例中,替换规则被更改,因此分隔符是%而不是$变量名必须包括中间的下划线。

模式%notunderscored不会被任何东西替换,因为它不包含下划线字符。

$ python3 Modified ID pattern: Delimiter : % Replaced : replaced Ignored : %notunderscored

对于更复杂的更改,可以重写pattern属性并定义一个全新的正则表达式。

提供的模式必须包含四个命名组,用于捕获转义分隔符、命名变量、变量名的大括号版本和无效分隔符模式。

#字符串模板_de import string t = ('$var') prin)

价值t.pattern是已编译的正则表达式,但原始字符串可通过其pattern属性。

\$(?: (?P<escaped>\$) | # two delimiters (?P<named>[_a-z][_a-z0-9]*) | # identifier {(?P<braced>[_a-z][_a-z0-9]*)} | # braced identifier (?P<invalid>) # ill-formed delimiter exprs )

此示例定义一个新模式以创建一种新类型的模板,使用{{var}}作为变量语法。

#字符串模板_new import re import string class MyTemplate(): delimiter = '{{' pattern = r''' \{\{(?: (?P<escaped>\{\{)| (?P<named>[_a-z][_a-z0-9]*)\}\}| (?P<braced>[_a-z][_a-z0-9]*)\}\}| (?P<invalid>) ) ''' t = MyTemplate(''' {{{{ {{var}} ''') print('MATCHES:', t.)) print('SUBSTITUTED:', t.safe_substitute(var='replacement'))

named和braced模式都必须单独提供,即使它们是相同的。运行示例程序将生成以下输出:

$ python3 string_template_new MATCHES: [('{{', '', '', ''), ('', 'var', '', '')] SUBSTITUTED: {{ replacement

格式化程序

这个Formatter类实现与format()方法str。它的功能包括类型强制、对齐、属性和字段引用、命名和位置模板参数以及特定于类型的格式选项。大多数时候format()方法是这些特性的更方便的接口,但是Formatter作为构建子类的一种方法,用于需要变体的情况下。

常数

这个string模块包括一些与ASCII和数字字符集相关的常量。

#字符串常数.py import inspect import string def is_str(value): return isinstance(value, str) for name, value in in(string, is_str): if name.startswith('_'): continue print('%s=%r\n' % (name, value))

这些常量在处理ASCII数据时很有用,但是由于在某种形式的Unicode中遇到非ASCII文本越来越常见,因此它们的应用受到限制。

$ python3 ascii_letters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ' ascii_lowercase='abcdefghijklmnopqrstuvwxyz' ascii_uppercase='ABCDEFGHIJKLMNOPQRSTUVWXYZ' digits='0123456789' hexdigits='0123456789abcdefABCDEF' octdigits='01234567' printable='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ RSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c' punctuation='!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' whitespace=' \t\n\r\x0b\x0c'

capwords()——首字母大小写

capwords(), 把字符串(string)中, 所有单词的首字母大写;

这个capwords()的使用形式,[,sep]是个可选项。

(s[,sep])

这个函数首先会把参数(这个s一般是个字符串)用() 分割成一个个单词,再用()函数把每个单词的首字母大写,最后用()函数将单词组合起来,如果第二个可选参数“sep”为空或为none,多个空格会被一个空格代替,字符串开头和结尾的空格将会被移除,另外,sep 这个参数是用来分割和组合字符串的,以下是例子。

import string s = 'The quick brown fox jumped over the lazy dog.' print s  print (s) print (s,None) print ('abcabcabc','a')

结果:

The quick brown fox jumped over the lazy dog. The Quick Brown Fox Jumped Over The Lazy Dog. The Quick Brown Fox Jumped Over The Lazy Dog. aBcaBcaBc

函数定义:

def capwords(s, sep=None):         """capwords(s [,sep])  -> string         Split the argument into words using split, capitalize each         word using capitalize, and join the capitalized words using         join. If the optional second argument sep is absent or None,         runs of whitespace characters are replaced by a single space         and leading and trailing whitespace are removed, otherwise         sep is used to split and join the words.         """         return (sep or ' ').join()) for x in s.split(sep))

maketrans()——创建转换表

创建对照表, 然后使用translate()函数, 调用对照表, 把字符串(string)中的字符, 进行相应的替换。

语法

maketrans()方法语法:

(intab, outtab[,delchars])

参数

  • intab -- 字符串中要替代的字符组成的字符串。
  • outtab -- 相应的映射字符的字符串。
  • delchars – 可选参数,表示要删除的字符组成的字符串。
    返回一个字符映射转换表供 translate() 方法调用。本文不考虑

返回值

返回字符串转换后生成的新字符串。

实例

以下实例展示了使用maketrans() 方法将所有元音字母转换为指定的数字:

#!/usr/bin/python # -*- coding: UTF-8 -*- from string import maketrans # 必须调用 maketrans 函数。 intab = "aeiou" outtab = "12345" trantab = maketrans(intab, outtab) str = "this is string example....wow!!!" print (trantab)

以上实例输出结果如下:

th3s 3s str3ng 2x1mpl2....w4w!!!

首字母大写(capwords) 和 创建转换表(maketrans)相互作用

代码:

# -*- coding: utf-8 -*- ''' Created on 2014.5.26 @author: C.L.Wang ''' import string s = 'The quick brown fox jumped over the lazy dog.' leet = ('abcdefg', '1234567') #leet 脑残 if __name__ == '__main__': print(s) prin(s)) #首字母大写 prin(leet)) #转换 pass

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“string如何去掉最后一个字符,string去掉最后一个字符java,string去掉最后一个字符串,string怎么去掉最后一个字符”边界阅读