Создание программы «Ножницы Рок-Пейперс», и в моем коде, похоже, произошла ошибка - PullRequest
0 голосов
/ 02 июля 2019

Я только начинаю изучать питон. Я создаю небольшую игру «Ножницы из каменной бумаги».

Строка 8, кажется, моя проблема ("def rock_logic ():"). Отладчик кода студии VS говорит «неверный синтаксис (строка 8) pylint (синтаксическая ошибка)»

Я просмотрел как Automate the скучные вещи, так и Colts Steele "The Modern Python 3 Bootcamp", но, похоже, не могу найти решение.

import random
choices = ['rock', 'paper', 'scissors']
user_choice = input()
comp_choice = random.choices()
print("ROCK! PAPER! SCISSORS!")

def rock_logic():
    if user_choice = 'rock' and comp_choice = 'rock':
        print ('TIE')
    elif user_choice = 'rock' and comp_choice = 'paper':
        print('YOU LOSE')
    else:
        print('WINNER WINNER CHICKEN DINNER')

def paper_logic():
    if user_choice = 'paper' and comp_choice = 'paper':
        print ('TIE')
    elif user_choice = 'paper' and comp_choice = 'scissors':
        print('YOU LOSE')
    else:
        print('WINNER WINNER CHICKEN DINNER')

def scissors_logic():
    if user_choice = 'scissors' and comp_choice = 'scissors':
        print ('TIE')
    elif user_choice = 'scissors' and comp_choice = 'rock':
        print('YOU LOSE')
    else:
        print('WINNER WINNER CHICKEN DINNER')

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Помимо проверки равенства с использованием ==, я думаю, вы неправильно используете метод random.choices().Рассмотрим следующее доказательство концепции:

import random
choices = ['rock', 'paper', 'scissors']
comp_choice = random.choices(choices)[0]
print(comp_choice) 
# e.g. 'scissors'

random.choices() требует аргумент - список опций, из которых он будет выбирать.И что важно, он возвращает список !Поэтому мы используем [0], чтобы указать, что нам нужен первый (т. Е. Нулевой) элемент из этого списка.

См. https://docs.python.org/3/library/random.html#functions-for-sequences

Наконец, может быть проще сравнить параметры водин ход ... например,

if comp_choice == user_choice:
    print('Tie')
elif comp_choice == 'scissors' and user_choice == 'paper':
    print('You lose)

Важно сохранить это - в конце концов это будет иметь смысл.Надеюсь, это поможет!

0 голосов
/ 02 июля 2019

Логический оператор равенства фактически отличается от оператора присваивания.Если вы хотите сделать сравнение, вы должны использовать == вместо =.Например, строка 8 должна выглядеть следующим образом:

if user_choice == 'rock' and comp_choice == 'rock':

. Как видите, для каждого есть два знака равенства, а не один.Это может привести к некоторым неприятным ошибкам, и, похоже, это приводит к тому, что в вашем коде.

...