如何在字符串中间增加数字?

时间:2019-11-08 15:03:48

标签: python python-3.x

所以,我有这个字符串:

string = ("book_volume_2")

我想将该数字增加到3、4,依此类推,最多增加到6

我尝试过

book = ("book_volume_")
book_plus = (book + str(book +1))

我得到类似

book_volume_2book_volume22

但我期望:

book_volume_3

有什么办法可以得到这个吗?

谢谢!

4 个答案:

答案 0 :(得分:4)

您要使用的是f-strings

for i in range(1,5):
    print(f'book_volume_{i}')

我已在for循环中应用了该逻辑以演示其工作原理。

但是基本上,大括号内的所有内容都不被视为字符串。

例如

如果我有函数myFunc:

def myFunc():
    return 5

然后我做print(f'book_volume_{myFunc()}')

结果将是:book_volume_5

答案 1 :(得分:1)

如果要递增字符串,则需要将字符串的数字部分设为整数。假设书名和书号总是用下划线隔开,您可以执行以下操作:

mystr = "book_volume_2"
book, sep, vol = mystr.rpartition('_')
vol = str(int(vol) + 1)
my_new_str = ''.join([book, sep, vol])

> 'book_volume_3'

答案 2 :(得分:0)

如果您有一个字符串string = "book_volume_2",其中最后一个字符是数字,则可以将其替换为下一个数字,如下所示:

def next_number(book):
    base = book[:-1]
    digit = int(book[-1])
    return base + str(digit + 1)

print(next_number('book_volume_2'))

答案 3 :(得分:-1)

string = "book_volume_" + input('Enter volume number: ')
print(string)