移除字符串的最后三个字符

223 投票
10 回答
593572 浏览
提问于 2025-04-15 16:23

我想在Python中去掉一个字符串最后的3个字符,但我不知道这3个字符是什么,所以不能用rstrip。另外,我还需要去掉任何空格,并把字符串转换成大写。

举个例子:

foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()

这样做可以得到"BS12",这是我想要的。不过,如果倒数第4个和第3个字符是一样的,我就会把它们都去掉。比如说,如果foo = "BS11 1AA",我最后只会得到"BS"

一些foo的例子可能是:

BS1 1AB
bs11ab
BS111ab

这个字符串可能是6个或7个字符,我需要去掉最后的3个(假设没有空格)。

10 个回答

24

在编程中,有时候我们需要让程序做一些事情,比如计算、存储数据或者显示信息。为了让程序能够理解我们想要的操作,我们需要用一种特定的语言来告诉它。这种语言就是编程语言。

编程语言有很多种,每种语言都有自己的规则和特点。就像我们说不同的语言一样,编程语言也有自己的语法和词汇。学习一种编程语言,就像学习一种新的语言,需要时间和练习。

在编写代码时,我们通常会把代码分成不同的部分,这样更容易管理和理解。比如,我们可以把一些常用的功能放在一个地方,这样在需要的时候就可以直接调用,而不需要每次都重新写一遍。

此外,程序在运行时可能会遇到错误,这些错误可能是因为代码写错了,或者是因为程序在处理数据时出现了问题。我们需要学会如何调试,也就是找出并修复这些错误。

总之,编程就像是在和计算机交流,我们需要用特定的方式告诉它我们想要做什么。通过不断学习和实践,我们可以变得越来越熟练。

>>> foo = "Bs12 3ab"
>>> foo[:-3]
'Bs12 '
>>> foo[:-3].strip()
'Bs12'
>>> foo[:-3].strip().replace(" ","")
'Bs12'
>>> foo[:-3].strip().replace(" ","").upper()
'BS12'
95

它的工作方式和你想的不一样,因为strip是基于字符的。你需要这样做:

foo = foo.replace(' ', '')[:-3].upper()
414

去掉所有的空格:

foo = ''.join(foo.split())

去掉最后三个字符:

foo = foo[:-3]

转换成大写字母:

foo = foo.upper()

把上面所有的代码放在一行:

foo = ''.join(foo.split())[:-3].upper()

撰写回答