В Python 2.6+ и Python 3 вы можете использовать более новый метод форматирования строк.
print('<a href="{0}">{0}</a>'.format(my_url))
который спасает вас от повторения аргумента, или
print('<a href="{url}">{url}</a>'.format(url=my_url))
если вы хотите именованные параметры.
print('<a href="{}">{}</a>'.format(my_url, my_url))
который является строго позиционным и поставляется только с оговоркой, что аргументы format () следуют правилам Python, где сначала должны стоять безымянные аргументы, за которыми следуют именованные аргументы, за которыми следуют * args (последовательность вроде list или tuple) и затем * kwargs (dict под ключ со строками, если вы знаете, что хорошо для вас). Точки интерполяции определяются сначала путем подстановки именованных значений по их меткам, а затем позиционно из того, что осталось. Итак, вы также можете сделать это ...
print('<a href="{not_my_url}">{}</a>'.format(my_url, my_url, not_my_url=her_url))
Но не это ...
print('<a href="{not_my_url}">{}</a>'.format(my_url, not_my_url=her_url, my_url))