Samran <iamsamra...@gmail.com> added the comment:

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: iamsamra...@gmail.com
Subject: [issue41436] BUG a simple "and" and "or"

Karthikeyan Singaravelan <tir.kar...@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 <rep...@bugs.python.org>
<https://bugs.python.org/issue41436>
_______________________________________

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41436>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to