What you should do first is read the documentation for the function you are trying to use. Examples should supplement, not replace, reading the documentation.
https://docs.python.org/3/library/functions.html
Quote:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Print objects to the text stream file, separated by sep and followed by end. sep, end, file, and flush, if present, must be given as keyword arguments.
Your example code could thus be written as:
color = str.lower(input ("Please enter your favorite color "))
print ("I don't like", color,", I prefer red", sep="")
Personally I prefer using f"string formatting for something like this. I think using + to concatenate strings is hideous, but it also an option. Even so it is still a good idea to know what print can do. For example, there are more than a few posts in this forum that ask "How can I print a list without the []? This can be done using print and sep.
numbers = list(range(1, 11))
print(numbers)
print(*numbers, sep=", ")
Output:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
There are also posts asking "How can I do multiple prints on one line?" This can be done using print and end.
numbers = list(range(1, 5))
for n in numbers:
print(n**2)
for n in numbers:
print(n**2, end=" ")
Output:
1
4
9
16
1 4 9 16
You can also use print to write output to a file instead of stdout. There are more than a few posts asking "How do I write strings to a file with linefeeds?" Print automatically appends output with a linefeed unless configured to do otherwise.
with open("test.txt", "w") as file:
for n in range(1, 5):
print(n**2, file=file)
test.txt file contains:
Output:
1
4
9
16
File does contain a blank line at the end.