Как установить значение переменной на основе пользовательского ввода в Python? - PullRequest
0 голосов
/ 23 июня 2019

В моей программе пользователь может ввести список слов или букву n.То, что я хочу сделать, это когда они вводят n, он хочет установить значение переменной, в которой пользовательский ввод сохраняется в вопросительный знак (?).

Также в моей программе пользователь вводитдругой список, если они вводят n, я хочу, чтобы программа генерировала таблицу частот слов.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я выписываю операторы if для ввода пользователя n, я неНе думайте, что это меняет значение или создает таблицу частот.

Я переместился туда, где находится код в программе.Я не получаю ответ от оператора if, независимо от того, где я его поместил в код.Первоначально я думал, что программа заключалась в том, что я поместил ее ближе к концу программы, и поскольку она читала ее сверху вниз, ничего не происходило.Теперь я не уверен.

Я включил фрагменты кода, которые будут работать вместе, поэтому я не вставляю всю программу.

# Ask user for needed keywords or symbols
user_keywords = input("What keywords or special symbols would you like to search the provided file for?\n"
                  "Please separate each entry with a comma.\n If you would like to just search for question marks"
                  "please just type n.")
# Holding list, using comma as a way to separate the given words and symbols
list1 = list(user_keywords.split(','))
# Print list for user to see
print("You have entered the following keywords and/or special symbols: ", list1)

# Ask user for needed repeating words
user_repeating = input("What repeating words would you like to search the provided file for?\n"
                  "Please separate each entry with a comma. \n If you would like a frequency table for all words"
                   "two letters or more, please type n.")
# Holding list, using comma as a way to separate the given words and symbols
list2 = list(user_repeating.split(','))
# Print list for user to see
print("You have entered the following words: ", list2)

frequency = {}

# Check to see if list1 has no parameters and sets to ?
if list1 == 'n':
    list1 = '?'
    print("We will search for any question marks.")

# Check to see if list2 has no parameters and creates a frequency array
if list2 == 'n':
    document_text = open (path1, 'r')
    text_string = document_text.read().lower()
    match_pattern = re.findall(r'\b[a-z]{2-20}\b', text_string)
    print("We will look for all word frequencies.")

    for word in match_pattern:
        count = frequency.get(word,0)
        frequency[word] = count + 1

    frequency_list = frequency.keys()

    for words in frequency_list:
       print(words, frequency[words])

Я ожидаю, что list1быть установленным в?когда n введен пользователем.Я ожидаю, что list2 сгенерирует таблицу частоты слов, когда пользователь вводит n.

Я не получаю никаких ошибок.В этот момент он просто переходит прямо в конец программы и возвращает последнюю строку печати, которая у меня есть, поэтому я знаю, что она не вызывает операторы if.

1 Ответ

0 голосов
/ 23 июня 2019

Конечно, способ сделать это заменить:

list1 = list(user_keywords.split(','))

с

list1 = '?' if user_input == 'n' else list(user_keywords.split(','))

нет

...