функция "else" появляется как неверный синтаксис в моем цикле - PullRequest
0 голосов
/ 06 марта 2020
#This program is supposed to act as a Magic 8 Ball and choosing a hand of five cards out of a deck of cards

# All the possible Magic 8 Ball responses
response = ["As I see it, yes", "Ask again later", "Better not tell you now", "Cannot predict now", "Concentrate and ask again", "Don't count on it", "It is certain", "It is decidedly so", "Most likely", "My reply is no", "My sources say no", "Outlook not so good", "Outlook good", "Reply hazy, try again", "Signs point to yes", "Very doubtful", "Without a doubt", "Yes", "Yes - definitely", "You may rely on it"]

#All the possible cards to choose from in a deck of cards
deck = ["ACE OF CLUBS", "2 OF CLUBS", "3 OF CLUBS", "4 OF CLUBS", "5 OF CLUBS", "6 OF CLUBS", "7 OF CLUBS", "8 OF CLUBS", "9 OF CLUBS", "10 OF CLUBS", "JACK OF CLUBS", "QUEEN OF CLUBS", "KING OF CLUBS", "ACE OF SPADES", "2 OF SPADES", "3 OF SPADES", "4 OF SPADES", "5 OF SPADES", "6 OF SPADES", "7 OF SPADES", "8 OF SPADES", "9 OF SPADES", "10 OF SPADES", "JACK OF SPADES", "QUEEN OF SPADES", "KING OF SPADES", "ACE OF HEARTS", "2 OF HEARTS", "3 OF HEARTS", "4 OF HEARTS", "5 OF HEARTS", "6 OF HEARTS", "7 OF HEARTS", "8 OF HEARTS", "9 OF HEARTS", "10 OF HEARTS", "JACK OF HEARTS", "QUEEN OF HEARTS", "KING OF HEARTS", "ACE OF DIAMONDS", "2 OF DIAMONDS", "3 OF DIAMONDS", "4 OF DIAMONDS", "5 OF DIAMONDS", "6 OF DIAMONDS", "7 OF DIAMONDS", "8 OF DIAMONDS", "9 OF DIAMONDS", "10 OF DIAMONDS", "JACK OF DIAMONDS", "QUEEN OF DIAMONDS", "KING OF DIAMONDS"]

import math

#Constants
N = 10000 # The norm
A = 4875  # The adder
M = 8601  # The multiplier

K = 1

C = 5
# -----------------------------------------
# The pseudorandom number generator

keep_going = 'Y'
keep_going_II = 'Y'

if keep_going == 'Y':
    while keep_going in ['y', 'Y']: #Allows user to input either a lowercase or uppercase 'Y' when asked if they want to ask another question
        X = input("Enter a YES or NO question: ")
        S = int(input("Now enter an integer: "))
        for i in range(K):
            S = (S * M + A) % N # Random Number Generator
            r = S/N #On the interval [0,1)
            magic = math.floor(20 * r)
            print("The Magic 8 Ball says:", response[magic]) 

            #Asking the user if they want to ask another question
            keep_going = input('Do you want to ask another question ' +
                               '(Enter Y for yes and N for no): ')

#Now asking the user if they would like to draw a hand of five cards    
keep_going_II = input('Would you like to draw a hand of five cards ' +
                      '(Enter Y for yes and N for no): ')

else:
    while keep_going_II in ['y', 'Y']:
        S = int(input("Enter the current time in the 24 hour mode: "))
        for a in range(C):
            S = (S * M + A) % N
            r = S/N
            card = math.floor(52 * r)
            print("Your hand that was chosen is:")
            print(deck[card])

            keep_going_II = input('Would you like to draw another hand ' +
                                  '(Enter Y for yes and N for no): ')

Итак, я хочу, чтобы моя программа работала, чтобы сначала действовать как волхв Маги c 8. Если они вводят «Y», то шар Magi c 8 снова зацикливается. Но если пользователь вводит «N», программа запрашивает, хочет ли пользователь взять 5 карт из возможных 52 вариантов. Но, как говорится в заголовке, программирование воспринимает «другое» как недопустимый синтаксис. Есть идеи, что я сделал не так? Я также думаю, что я, возможно, присвоил свои переменные неправильно или что-то.

1 Ответ

1 голос
/ 06 марта 2020

Вам необходимо поместить присвоение keep_going_II внутри блока else:. В противном случае он разрывает соединение между if и else.

if keep_going == 'Y':
    while keep_going in ['y', 'Y']: #Allows user to input either a lowercase or uppercase 'Y' when asked if they want to ask another question
        X = input("Enter a YES or NO question: ")
        S = int(input("Now enter an integer: "))
        for i in range(K):
            S = (S * M + A) % N # Random Number Generator
            r = S/N #On the interval [0,1)
            magic = math.floor(20 * r)
            print("The Magic 8 Ball says:", response[magic]) 

            #Asking the user if they want to ask another question
            keep_going = input('Do you want to ask another question ' +
                               '(Enter Y for yes and N for no): ')
else:
    #Now asking the user if they would like to draw a hand of five cards    
    keep_going_II = input('Would you like to draw a hand of five cards ' +
                          '(Enter Y for yes and N for no): ')
    while keep_going_II in ['y', 'Y']:
        S = int(input("Enter the current time in the 24 hour mode: "))
        for a in range(C):
            S = (S * M + A) % N
            r = S/N
            card = math.floor(52 * r)
            print("Your hand that was chosen is:")
            print(deck[card])

            keep_going_II = input('Would you like to draw another hand ' +
                                  '(Enter Y for yes and N for no): ')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...