Найти - Пользователи
Полная версия: Задача с цилком
Начало » Python для новичков » Задача с цилком
1 2
MrJo
Доброй ночи.
У меня вопрос, связанный с задачей из учебника, по которому я учу питон. (Автор Доусон, раньше читал Лутца, но после долгого перерыва решил, что вновь прочесть 1.5к страниц будет слишком)
И так, там есть задачка, суть которой сводится к следующему: Человек загадывает число, компьютер должен его угадать через цикл, в котором человек говорит компьютеру больше или меньше то число.
Я написал следующее:
import random
print('zagadaite chislo ot 1 do 100') 
popitka = random.randint(0,100) 
print(popitka)
ugadal = input('yes or no?')
while ugadal == 'no':
    x = input('Less\more?')
    if x == 'less':
        popitka = random.randint(0, popitka)
        print(popitka)
    if x == 'more':
        popitka = random.randint(popitka,100)
        print(popitka)
if ugadal == 'yes':
    print ('congratulate')
Так вот смоделируем ситуацию, при которой я загадал число “17”.Когда компьютер принтит, допустим, 20, я говорю, например, меньше - все происходит нормально, далее комп. выбирает от 0 до 20, 2ым шагом он делает предположение, что я загадал 15, если я скажу больше - то он уже загадывает число не от 15 до 20, а от 15 до 100. Я понимаю, что это не компьютер виноват, а мой код не верен. Просьба помочь
Shaman
Нужно сдвигать верхнюю границу вниз после каждого ответа “меньше”. То есть завести для неё переменную и корректировать её содержимое. Собственно, с нижней границей следует поступить аналогично.
J.R.
.
MrJo
Большое спасибо!
Manu_Vilks.Py

Manu_Vilks.Py
У меня было такое решение
P.S. вопрос: а как вы вставляете код так что бы его было видно как в программе
J.R.
.
Manu_Vilks.Py
J.R.
Manu_Vilks.Py
Спасибо
from random import randint
print("Игра Угадайка")
print(" Тебе надо угадать число которое я загадаю")
N=int(input("Введи предел чисел"))
X=randint(0,N)
Logic=0
p1=1
print("")
print("Угадывай число, а я буду говорить, больше оно или меньше моего")
while(Logic!=1):
    print ("Попытка номер", p1)
    input1=int(input("Введи число"))
    if input1<N or input1>0:
        if input1>X:
            print("Твое число больше моего")
        elif (input1<X):
            print("Твое число меньше моего")
        else:
            print("угадал(а)!!!  Это было",input1)
            Logic=1
        p1+=1
    else:
        print("Не лезь за край!!!")
FishHook
1. Следуйте стилевому стандарту
2. Не нужно придумывать управляющие переменные там, где достаточно break
3. Это ж у вас не Си, зачем постоянные скобки в If-ах?
4. Ну и not(input1>N or input1<0)
а нельзя изменить знаки на противоположные и убрать not?
Originator
Прошу прощения, но я не смог понять, почему в первом примере (у автора) не работал его метод. Подскажите пожалуйста, как по мне - ошибки вроде нет. Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB