Как мне сделать, чтоб при выборе языка, выбирался список слов с этим языком?

Tulsk1y

Новичок
Пользователь
Авг 26, 2023
8
1
3
Код:
import random

name = input("Как тебя зовут? ")

enru = input('Выбери язык слов(рус, англ): ')

print("Желаю удачи ", name, "!")

words1 = ['радужный', 'компьютер', 'химия', 'программирование',
        'питон', 'математика', 'игрок', 'желудь',
        'реверсия', 'вода', 'доска', 'макрос', 'азбука']

words2 = ['rainbow', 'yellow', 'english', 'chrone', 'mathemath',
            'musicbox', 'winline','statistic', 'boomlike','friday'
            'minecraft','guitar','player','pool']

# Функция которая выбирает
# рандомное слово из списка words

if enru == "англ":
    word2 = random.choice(words2)

if enru == "рус":
    word1 = random.choice(words1)


print("Угадай букву - ")

guesses = ''

# Ходы за которые игрок
# должен угадать слово
turns = 12


while turns > 0:

    # счетчик неправильных ответов
    failed = 0

    # все символы из входных данных
    # подбираю слова по одному за раз.
    for char in word1 or word2:

        # сравнивая этого персонажа с
        # персонажом в догадках
        if char in guesses:
            print(char, end=" ")

        else:
            print("_")

            # при каждом сбое значение 1 будет увеличиваться при сбое
            failed += 1

    if failed == 0:
        # пользователь выиграет игру, если ошибка равна 0, и в качестве выходных данных будет выдано "Вы выиграли".
        print("Ты угадал!")

        # this print the correct word
        print("Слово -  ", word1 or word2)
        break

    # если пользователь ввел неправильный алфавит, то он попросит пользователя ввести другой алфавит
    print()
    guess = input("Угадай букву - :")

    # каждый введенный символ будет сохранен в виде догадок
    guesses += guess

    # проверьте ввод с помощью символа в word
    if guess not in word1 or word2:

        turns -= 1

        # если символ не соответствует слову, то в качестве выходных данных будет выдано “Неправильно”.
        print("Промах")

        # при этом будет выведено количество оборотов, оставшихся для пользователя
        print("У тебя еще", + turns, 'ходов')

        if turns == 0:
            print("Ты не угадал. Попробуй еще раз!")

я везде поставил word1 or word2, но при этом когда действие происходит выбирается часть рандомно, а не та, которая создалась.

windows 10
python 3.8
 

Валентин

Новичок
Пользователь
Ноя 13, 2020
114
1
18
Код, который вы представили, содержит несколько ошибок. Основная ошибка заключается в неверном использовании оператора or. Когда вы пишете word1 or word2, Python будет возвращать word1, если word1 имеет значение, и word2 в противном случае. Это приводит к некорректной логике в коде.

Давайте исправим ваш код:
  1. Используем переменную selected_word для выбранного слова.
  2. Уберем использование or и будем сравнивать только с selected_word.
Python:
import random

name = input("Как тебя зовут? ")

enru = input('Выбери язык слов(рус, англ): ')

print("Желаю удачи ", name, "!")

words1 = ['радужный', 'компьютер', 'химия', 'программирование',
        'питон', 'математика', 'игрок', 'желудь',
        'реверсия', 'вода', 'доска', 'макрос', 'азбука']

words2 = ['rainbow', 'yellow', 'english', 'chrone', 'mathemath',
            'musicbox', 'winline','statistic', 'boomlike','friday',
            'minecraft','guitar','player','pool']

# Функция которая выбирает
# рандомное слово из списка words
if enru == "англ":
    selected_word = random.choice(words2)
elif enru == "рус":
    selected_word = random.choice(words1)
else:
    print("Неверный выбор языка!")
    exit()

print("Угадай букву - ")

guesses = ''

# Ходы за которые игрок
# должен угадать слово
turns = 12

while turns > 0:
    # счетчик неправильных ответов
    failed = 0

    for char in selected_word:
        if char in guesses:
            print(char, end=" ")
        else:
            print("_", end=" ")
            failed += 1

    if failed == 0:
        print("\nТы угадал!")
        print("Слово -  ", selected_word)
        break

    # если пользователь ввел неправильный алфавит, то он попросит пользователя ввести другой алфавит
    print()
    guess = input("Угадай букву - :")
    guesses += guess

    if guess not in selected_word:
        turns -= 1
        print("Промах")
        print("У тебя еще", + turns, 'ходов')
        if turns == 0:
            print("Ты не угадал. Попробуй еще раз!")
 
  • Мне нравится
Реакции: regnor

Форум IT Специалистов