name = 'John'
#basic method
print('Hello, his name is ' + name)
#.format method
print('Hello, his name is {}'.format(name))
#f-string literal method
print(f'Hello, his name is {name}')
All are viable ways to concatenate and outputs the same thing, but why would I choose one over the other?