Как я могу увеличить число в середине строки? - PullRequest
0 голосов
/ 08 ноября 2019

Итак, у меня есть эта строка:

string = ("book_volume_2")

, и я хочу увеличить это число до 3, 4 и т. Д. До 6

Я пробовал

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

Я получаю что-то вроде

book_volume_2book_volume22

, но я ожидаю:

book_volume_3

Есть ли способ получить это?

Спасибо!

Ответы [ 4 ]

4 голосов
/ 08 ноября 2019

То, что вы хотите использовать: 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 голос
/ 08 ноября 2019

Вам нужно сделать числовую часть строки целым числом, если вы хотите увеличить ее. Предполагая, что название и номер книги всегда разделяются подчеркиванием, вы можете сделать что-то вроде:

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

> 'book_volume_3'
0 голосов
/ 08 ноября 2019
string = "book_volume_" + input('Enter volume number: ')
print(string) 
0 голосов
/ 08 ноября 2019

Если у вас есть строка 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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...