This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Samran
Recipients Samran, jameshcorbett, xtreak
Date 2020-07-30.02:55:56
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <5f2236b9.1c69fb81.63816.0c7b@mx.google.com>
In-reply-to <1596041863.43.0.546293452546.issue41436@roundup.psfhosted.org>
Content
Thanks a lot. I am beginner and will try stack overflow next time. Depending on the error type. Thank you again I learned a lot.

Sent from Mail for Windows 10

From: Karthikeyan Singaravelan
Sent: Wednesday, July 29, 2020 9:57 PM
To: iamsamran1d@gmail.com
Subject: [issue41436] BUG a simple "and" and "or"

Karthikeyan Singaravelan <tir.karthi@gmail.com> added the comment:

Below is the formatted program for easier reading. In the while clause you ask for the user to enter n to exit but you check (ch != n or ch != N) so on entering "n" the first condition is false but second clause is true. For "N" it's vice-versa. You want to continue the game as long as ch is not 'n' or "N'. Hence using not(ch == 'n' or ch == 'N') will help in exiting the program. This website is for bugs related to CPython itself. Please refer to stack overflow or other mailing lists in future.

Thanks.

from random import randint

num = randint(1, 10)

print(type(num))
print(num)

ch = None  # tried changing this tried converting types
guess = 0
print(type(guess))
print("Welcome to guessing game: ")

while (
    ch != "n" or ch != "N"
):  # here is the bug this statement is not running. It works with “and”
    while guess != num:
        guess = int(input("Enter your guess?  "))
        if guess == num:
            print("You Guessed Congratz")
            ch = input("Enter 'y' to play or 'n' to exit: ")
            if ch == "y" or ch == "Y":
                guess = 0
                num = randint(1, 10)

print("Thankyou for playing.")

Fixed program : 

from random import randint

num = randint(1, 10)

print(type(num))
print(num)

ch = None  # tried changing this tried converting types
guess = 0
print(type(guess))
print("Welcome to guessing game: ")

while not (
    ch == "n" or ch == "N"
):  # Play until the ch is not n or N 
    while guess != num:
        guess = int(input("Enter your guess?  "))
        if guess == num:
            print("You Guessed Congratz")
            ch = input("Enter 'y' to play or 'n' to exit: ")
            if ch == "y" or ch == "Y":
                guess = 0
                num = randint(1, 10)

print("Thankyou for playing.")

----------
nosy: +jameshcorbett, xtreak
type: compile error -> behavior

_______________________________________
Python tracker <report@bugs.python.org>
<https://bugs.python.org/issue41436>
_______________________________________
History
Date User Action Args
2020-07-30 02:55:56Samransetrecipients: + Samran, xtreak, jameshcorbett
2020-07-30 02:55:56Samranlinkissue41436 messages
2020-07-30 02:55:56Samrancreate