@GhostTonyRus

Как убрать вывод None после выполнения функции?

Всем привет. Изучаю Python и дошёл до функций, Решил написать мини игру "камень / ножницы / бумага".
Всё работает, но после выполнения одной из трёх функций (победа, поражение, ничья) в коде появляется None. Долго пробовал исправить, но пока не хватает знаний). Подскажите как можно это исправить? Искал в гугле так и не нашёл)

import random
import time

#Приветствие
def hello():

    hello = "Привет. Это игра камень / ножницы / бумага."
    print(hello)
    time.sleep(2)


hello()

#код на победу 
def wingame():

    winning_comb = ["камень", "ножницы", "бумага"]

    comp1 = ["камень", "ножницы", "бумага"]
    comp2 = ["камень", "ножницы", "бумага"]
    comp3 = ["камень", "ножницы", "бумага"]

    while True:
        player = input(
            "Что выберете: камень / ножницы / бумага?\n" + "\nИгрок: ")
        time.sleep(2)

        if player not in ["камень", "ножницы", "бумага"]:
            print("Вы ничего не выбрали!")
            continue
            time.sleep(2)

        if player in winning_comb:
            if player == "камень":
                r_comp1 = comp1.remove("камень")
                r_comp2 = comp1.remove("бумага")
                print("Компьютер: " + random.choice(comp1))
                print("Победа")
                break

            elif player == "ножницы":
                r_comp3 = comp2.remove("камень")
                r_comp4 = comp2.remove("ножницы")
                print("Компьютер: " + random.choice(comp2))
                print("Победа")
                break

            elif player == "бумага":
                r_comp5 = comp3.remove("ножницы")
                r_comp6 = comp3.remove("бумага")
                print("Компьютер: " + random.choice(comp3))
                print("Победа")
                break

#код на поражение
def losegame():

    losing_comb = ["камень", "ножницы", "бумага"]

    comp1 = ["камень", "ножницы", "бумага"]
    comp2 = ["камень", "ножницы", "бумага"]
    comp3 = ["камень", "ножницы", "бумага"]

    while True:
        player = input(
            "Что выберете: камень / ножницы / бумага?\n" + "\nИгрок: ")
        time.sleep(2)

        if player not in ["камень", "ножницы", "бумага"]:
            print("Вы ничего не выбрали!")
            continue
            time.sleep(2)

        if player in losing_comb:
            if player == "камень":
                r_comp1 = comp1.remove("камень")
                r_comp1 = comp1.remove("ножницы")
                print("Компьютер: " + random.choice(comp1))
                print("Поражение")
                break

            elif player == "ножницы":
                r_comp3 = comp2.remove("бумага")
                r_comp4 = comp2.remove("ножницы")
                print("Компьютер: " + random.choice(comp2))
                print("Поражение")
                break

            elif player == "бумага":
                r_comp5 = comp3.remove("камень")
                r_comp6 = comp3.remove("бумага")
                print("Компьютер: " + random.choice(comp3))
                print("Поражение")
                break

#код на ничью
def drawngame():

    drawn_game = ["камень", "ножницы", "бумага"]

    comp1 = ["камень", "ножницы", "бумага"]
    comp2 = ["камень", "ножницы", "бумага"]
    comp3 = ["камень", "ножницы", "бумага"]

    while True:
        player = input(
            "Что выбирете: камень / ножницы / бумага?\n" + "\nИгрок: ")
        time.sleep(2)

        if player not in ["камень", "ножницы", "бумага"]:
            print("Вы ничего не выбрали!")
            time.sleep(2)
            continue

        if player in drawn_game:
            if player == "камень":
                r_comp1 = comp1.remove("ножницы")
                r_comp2 = comp1.remove("бумага")
                print("Компьютер: " + random.choice(comp1))
                print("Ничья")
                break

            elif player == "ножницы":
                r_comp3 = comp2.remove("камень")
                r_comp4 = comp2.remove("бумага")
                print("Компьютер: " + random.choice(comp2))
                print("Ничья")
                break

            elif player == "бумага":
                r_comp5 = comp3.remove("ножницы")
                r_comp6 = comp3.remove("камень")
                print("Компьютер: " + random.choice(comp3))
                print("Ничья")
                break

#рандомный выбор кода
def funcs():

    if True:
        f = [wingame, losegame, drawngame]
        rand_func = random.choice(f)
        rand_func()

#выбор кода из функции funcs
def gameon():

    if True:
        print(funcs())
        time.sleep(2)


gameon()

#повтор игры
def regame():
    import time

    replay = True

    while replay:

        que = input("\nБудем ещё играть да / нет?\n" + "\nИгрок: ")
        time.sleep(2)

        if que == "да":
            print("Продолжаем:\n")
            time.sleep(2)
            gameon()

        elif que == "нет":
            print("Конец.")
            time.sleep(2)
            print("Завершение программы.")
            time.sleep(2)
            break

        else:
            print("Вы ничего не выбрали. Попробуйте снова:")
            time.sleep(2)
            continue


regame()


5ed3bccc16db4272521499.png
  • Вопрос задан
  • 7514 просмотров
Решения вопроса 2
SoreMix
@SoreMix Куратор тега Python
yellow
print(funcs())
заменить на
funcs()
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Не печатать возвращаемое из функции значение.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Ivan_Motorov
Избавиться от None можно проще, добавить ещё одну проверку,

if not que:
continue
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы