Дублирование результата - PullRequest
0 голосов
/ 06 марта 2020

Привет всем, поэтому я новичок и пробую циклы в python пожалуйста, я продолжаю дублировать мой результат, почему это так?

cleanHello = 'you asked about clean hello'
greetings = 'hi'

def main():
    while True:
        try:
            userInput = input('user: ')
            for x in userInput:
                if x in greetings:  
                    print(cleanHello)
        except(KeyboardInterrupt, EOFError, SystemExit):
            break

main()    

Ответы [ 2 ]

1 голос
/ 06 марта 2020
for x in userInput:
    if x in greetings:
        ...

Вы перебираете каждый символ ввода и проверяете, приветствует ли этот единственный символ или "привет".

Возможно, вы пытаетесь сделать это:

cleanHello = 'you asked about clean hello' 
greetings = 'hi' 

def main(): 
    while True:
        try: 
            userInput = input('user: ') 
            if greetings in userInput:
                print(cleanHello)
        except(KeyboardInterrupt, EOFError, SystemExit): 
            break 

main() 

Если вы введете «скажи привет», он проверит, находится ли «привет» в введенном вами тексте, а затем напечатает cleanHello.

0 голосов
/ 06 марта 2020

Когда вы делаете for x in some_string, x зацикливается на каждом символе в строке.
Так что если ваш userInput равен "hi",
В первом цикле, x равен "h" поэтому он находится в "hi".
Во втором цикле x равен "i", поэтому он также находится в "hi".
, поэтому он будет печататься два раза. Если ваши greetings и userInput имеют одинаковую строку с n буквами, она будет напечатана n раз.


Я думаю, вы пытаетесь это сделать.

cleanHello = 'you asked about clean hello'
greetings = ['hi'] # add more greetings if needed

def main():
    while True:
        try:
            userInput = input('user: ')
            if userInput in greetings:  
                print(cleanHello)
        except(KeyboardInterrupt, EOFError, SystemExit):
            break

main() 

Это печатает cleanHello, если userInput является одним из приветствий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...