When reading a file line by line as you have done here with for num in (num_file), the end of line characters do not get stripped off and are included with each line and stored in your variable num. This is why the numbers continue to print on separate lines even though you set end=''.
You can use rstrip to remove the new line character in addition to setting end=''. Also, the parentheses around num_file in your for loop are not necessary.
def main():
num_file = open('numbers.txt', 'r')
for num in num_file:
print(num.rstrip('\n'), end='')
num_file.close()
print('End of file')
main()
To sum the numbers found:
def main():
num_file = open('numbers.txt', 'r')
total = 0
for num in num_file:
print(num.rstrip('\n'), end='')
try:
total = total + int(num)
except ValueError as e:
# Catch errors if file contains a line with non number
pass
num_file.close()
print('\nSum: {0}'.format(total))
print('End of file')
main()