Игра в числа НАОБОРОТ

Пользователь загадывает, компьютер отгадывает, нельзя использовать random, нужно использовать циклы. Ввод: Загадайте число: 5, Ответ: Вы загадали число 5 (print нельзя, так слишком легко), PYTHON


Ответы (1 шт):

Автор решения: Werryx

Вы хотели так?:

# Тут можете использовать try/except ValueError
a = int(input("Введите число: "))
i = 0
while True:
    if i == a:
        print("Ваше число:", str(i))
        break
    elif i * -1 == a:
        print("Ваше число:", str(i * -1))
        break
    i += 1

Версия с tkinter:

from tkinter import Tk, Label
# Тут можете использовать try/except ValueError
a = int(input("Введите число: "))
i = 0
while True:
    if i == a:
        break
    elif i * -1 == a:
        i *= -1
        break
    i += 1

root = Tk()
l = Label(text = "Ваше число: " + str(i))
l.pack()
root.mainloop()

Версия с tkinter (v2):

from tkinter import Tk, Label, Entry, Button, StringVar

def nazvanie(a):
    i = 0
    while True:
        if i == a:
            break
        elif i * -1 == a:
            i *= -1
            break
        i += 1
    return [str(a), str(i)]

root = Tk()
root.geometry("270x50")

l2 = ""
tv = StringVar(root)

def result(num):
    global l2
    try:
        l2.unpack()
    except AttributeError:
        pass
    try:
        num = int(num)
    except ValueError:
        return
    b = nazvanie(num)
    l2 = Label(root, text = "Число: " + b[1])
    l2.grid(column = 0, row = 1)

l = Label(root, text = "Введите число:")
l.grid(column = 0, row = 0)
a = Entry(root, textvariable = tv)
a.grid(column = 1, row = 0)
btn = Button(root, text = "Угадать", command = lambda r = tv: result(r.get()))
btn.grid(column = 2, row = 0)
root.mainloop()

Версия с Exception:

# Тут можете использовать try/except ValueError
a = int(input("Введите число: "))
i = 0
while True:
    if i == a:
        raise Exception("Ваше число: " + str(i))
        break
    elif i * -1 == a:
        raise Exception("Ваше число: " + str(i * -1))
        break
    i += 1
→ Ссылка