所以,我有这个字符串:
string = ("book_volume_2")
我想将该数字增加到3、4,依此类推,最多增加到6
我尝试过
book = ("book_volume_")
book_plus = (book + str(book +1))
我得到类似
book_volume_2book_volume22
但我期望:
book_volume_3
有什么办法可以得到这个吗?
谢谢!
答案 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)