In Python 2.6+ and Python 3, you might choose to use the newer string formatting method.
print('<a href="{0}">{0}</a>'.format(my_url))
which saves you from repeating the argument, or
print('<a href="{url}">{url}</a>'.format(url=my_url))
if you want named parameters.
print('<a href="{}">{}</a>'.format(my_url, my_url))
which is strictly positional, and only comes with the caveat that format() arguments follow Python rules where unnamed args must come first, followed by named arguments, followed by *args (a sequence like list or tuple) and then *kwargs (a dict keyed with strings if you know what's good for you).
The interpolation points are determined first by substituting the named values at their labels, and then positional from what's left.
So, you can also do this...
print('<a href="{not_my_url}">{}</a>'.format(my_url, my_url, not_my_url=her_url))
But not this...
print('<a href="{not_my_url}">{}</a>'.format(my_url, not_my_url=her_url, my_url))