Я работаю над назначением класса, которое требует от меня заменить%, за которым следует число, до соответствующего его позиционного параметра (если дано задание только таких чисел и требуемых параметров) .I пытались решить это в течение нескольких часов безрезультатно. Исправлено переполнение стека и веб, но заданные ранее вопросы заменяли только целое на что-то, что достаточно просто.Заменить%, за которым следует число в строке
Ex: форматирование ("Исход% 0", "Моисей") -> должен возвращать "Исход Моисея"
форматирования ("Исход% 0 и% 1", "Короли", "Боги") -> должен возвращать "Исход Короли и Боги"
форматирование ("Исход% 1 и% 0", "Короли", "Боги") -> должен возвращать "Исход Боги и цари"
По внешнему виду я думаю, что прототипом форматирования функции будет
def formatting(inputstring, *args):
вещи, которые я пытался до сих пор
1.for петля на наивности заменить% число с соответствующим аргументом
for length in len(args):
temp=temp.replace("%length","arg[length]")
Конечно, это не работал бы потому, что они являются строками, а не целые числа
2. Использование inputstring.format() для возврата нужной строки. проблемы вызваны различной длины ARGS Ex:
if len(args) == 1:
return inputstring.replace("%0",args[0])
if len(args) == 2:
inputstring = inputstring.replace("%0",args[0])
return inputstring.replace("%1",args[1])
достаточно легко, это работает! но не чувствует себя хорошо, громоздко для многих аргументов пробовал делать это в петле не получилось
Помогите Спасибо!
Конечно Python есть операторы печати, которые уже делают этот вид вещь автоматически. Проверьте здесь: https://docs.python.org/2/tutorial/inputoutput.html –
Рассмотрите 'enumerate (args)' ... – jonrsharpe
@RobertHarvey: Возможно, но это задание, я предполагаю, что они хотят, чтобы студенты должны сделать это вручную – Claudiu