Python 3, если / elif проблема - PullRequest
       42

Python 3, если / elif проблема

0 голосов
/ 11 декабря 2018

у меня есть оператор if / elif в моем фрагменте кода ниже ... по какой-то причине, даже когда я запускаю оператор elif, консоль все еще печатает оператор if вместо elif ... я уверен, что что-то упустилглупо.

use_stim = str.lower (input («Вы хотите использовать этот стимпак сейчас?»))

    if "ok" in use_stim or "okay" in use_stim or "yes" in use_stim or "sure" in use_stim or "you bet" or "good idea" in use_stim:
        char_health = char_health + char_stim_heal
        char_stims = char_stims - 1
        print(char_name + ": Using stimpak, I feel better")  
        print("")
        print("***STATS***")
        print("Health:" + str(char_health)) 
        print("Stimpaks:" + str(char_stims))
        print("***STATS***")
        print("")            
        search_next = str.lower(input(char_name + ": Alright, what's next? Weapons or amunition?"))
        print(username + ": " + search_next)

    elif "no" in use_stim or "nope" in use_stim or "never" in use_stim or "no way" in use_stim or "not a chance" in use_stim or "i don't think so" in use_stim:
        print(user_name + ": " + use_stim)
        print(char_name + ": Alright, i'll save it for later.")
        char_stims = 1
        char_health = 75
        print("")
        print("***STATS***")
        print("Health:" + str(char_health)) 
        print("Stimpaks:" + str(char_stims))
        print("***STATS***")
        print("")

1 Ответ

0 голосов
/ 11 декабря 2018

Это потому, что вы пропускаете in use_stim в первом операторе if после "You bet";

  if "ok" in use_stim or "okay" in use_stim or "yes" in use_stim or "sure" in use_stim or "you bet" in use_stim or "good idea" in use_stim:
        char_health = char_health + char_stim_heal
        char_stims = char_stims - 1
        print(char_name + ": Using stimpak, I feel better")  
        print("")
        print("***STATS***")
        print("Health:" + str(char_health)) 
        print("Stimpaks:" + str(char_stims))
        print("***STATS***")
        print("")            
        search_next = str.lower(input(char_name + ": Alright, what's next? Weapons or amunition?"))
        print(username + ": " + search_next)

    elif "no" in use_stim or "nope" in use_stim or "never" in use_stim or "no way" in use_stim or "not a chance" in use_stim or "i don't think so" in use_stim:
        print(user_name + ": " + use_stim)
        print(char_name + ": Alright, i'll save it for later.")
        char_stims = 1
        char_health = 75
        print("")
        print("***STATS***")
        print("Health:" + str(char_health)) 
        print("Stimpaks:" + str(char_stims))
        print("***STATS***")
        print("")

Это должно сработать сейчас.

Несколько замечаний для васесли вы хотите;

  • Вы можете добавить дополнительную строку между операторами печати, используя /n, чтобы вы могли удалить операторы print("") и добавить \n к предыдущему оператору, например;

    print(char_name + ": Using stimpak, I feel better\n") <<< Add \n here  
    print("")                                             <<< Remove this
    print("***STATS***")
    print("Health:" + str(char_health)) 
    print("Stimpaks:" + str(char_stims))
    print("***STATS***\n")                                <<< Add \n here 
    print("")                                             <<< Remove this
    
  • Использование in будет искать указанный вами текст в любом месте в строке, поэтому "no" in use_stim будет работать для no, nope, no way и not a chance, поэтому вы можете упростить оператор elif до;

elif "no" in use_stim or "never" in use_stim or "i don't think so" in use_stim:

...