Если я вас правильно понимаю, я верю, что вы хотите иметь возможность запускать функцию words_frequency () либо со строкой в качестве ввода, либо заставлять ее запрашивать ввод, если функция запускается без ввода.
Выможно добиться этого, изменив следующее:
def words_frequency(*string_input):
на:
def words_frequency(string_input=""):
Я надеюсь, что это помогло, и, возможно, посмотрите эту ссылку для объяснения аргументов функциив python:)
И если вы настаиваете на использовании * string_input, убедитесь, что вы превратили его в String. В результате вы также можете использовать этот метод:
def words_frequency(*string_input):
if not string_input:
string_input = input("Please write your text: ")
else:
string_input = str(string_input)