Одно число python задача

Задача 10. Игра «Компьютер угадывает число» язык кода Python помогите пожалуйста

Поменяйте мальчика и компьютер из прошлой задачи местами. Теперь мальчик загадывает число между 1 и 100 (включительно). Компьютер может спросить у мальчика: «Твое число равно, меньше или больше, чем число N?», где N — число, которое хочет проверить компьютер. Мальчик отвечает одним из трёх чисел: 1 — равно, 2 — больше, 3 — меньше.
Напишите программу, которая с помощью цепочки таких вопросов и ответов мальчика угадывает число.
Дополнительно: сделайте так, чтобы можно было гарантированно угадать число за семь попыток.

Начинаем с числа 64
до него 63 варианта, после него 35 вариантов ( «округляем» до 63 )
По получении ответа делим «варианты на 3 группы
31 число, 1 число, 31 число
итд (15/1/15, 7/1/7, 3/1/3, 1/1/1 )
Получается за 6 вопросов гарантированно «угадываем»

g=50;l=[25,12,6,3,2,1,1];s=»Твое число равно, меньше или больше, чем число %s?»
while l:
print(s%g);i=input()
if i==’1′:print(‘Твое число -‘,g);break
else:g+=l.pop(0)*[i]print(‘Твое число -‘,g)

P.S. заменив и игрока тоже на компьютер, проверил — угадывает все правильно и не больше, чем за 7 шагов

start = 0
finish = 101
count = 0

while True:
N = (start + finish) // 2
print(‘Загаданное число равно, меньше пли больше’, N)
answer = int(input(‘1 — равно, 2 — меньше, 3-больше ‘))
count += 1

if answer == 1:
print(‘Я угадал! Ура! c’, count, ‘попытки’)
break

Не работает должным образом, например если загадали число 60:
Загаданное число равно, меньше пли больше 50
1 — равно, 2 — меньше, 3-больше 3
Загаданное число равно, меньше пли больше 75
1 — равно, 2 — меньше, 3-больше 2
Загаданное число равно, меньше пли больше 62
1 — равно, 2 — меньше, 3-больше 3
Загаданное число равно, меньше пли больше 68
1 — равно, 2 — меньше, 3-больше 2
Загаданное число равно, меньше пли больше 65
1 — равно, 2 — меньше, 3-больше 2
Загаданное число равно, меньше пли больше 63
1 — равно, 2 — меньше, 3-больше 2
Загаданное число равно, меньше пли больше 62
1 — равно, 2 — меньше, 3-больше 2
Загаданное число равно, меньше пли больше 62
1 — равно, 2 — меньше, 3-больше

Читайте также:  Def show python это

ViSk XRuleZzz Ученик (162) Не работает должным образом если finish = 100, т.е. если мы диапазон сделаем меньше

просто скопируй!
import random
guessesTaken = 0
print(«Желаешь разбогатеть, друг?»)

myName = input(«скажи имя!:»)
number = random.randint(1,20)
print(«Ну тогда приступим? «+myName+», я загадал число от одного до 20″)
while guessesTaken < 6:
print(«Как ты думаешь, какое?») #Перед функцией print() должно быть 4 пробела
guess = input()
guess = int(guess)
guessesTaken = guessesTaken+1
if guess < number:
print(«Мое число больше твоего») #Перед функцией print() должно быть 8 пробелов
if guess > number:
print(«Мое число меньше твоего»)
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken)
print(«Превосходно «+myName+»! Ты угадал число с «+guessesTaken+» попытки. Твой выигрыш 10 очков.»)
if guess != number:
number = str(number)
print(«Жаль, но у тебя не осталось попыток. Я загадал число «+number+». Ты проиграл… Эй! Вы! Двое! Живо! Снимите ка с него шкуру!»)

start = int(1)
finish = int (100)
number_attempts = 0
while number_attempts number_attempts += 1
n = (start + finish) // 2
print(«Число n равно: «, n)
prompt = int(input(«Твоё число равно, меньше или больше, чем n «))
if prompt == 1 :
print(«Урра! Угадал! с «, number_attempts, «попытки»)
break
elif prompt == 2 :
finish = n
elif prompt == 3 :
start = n

start = 1
finish = 100
count = 0
while count __number = (start + finish) // 2
__print(‘Загаданное число равно, меньше или больше’, number)
__answer = int(input(‘1 — равно, 2 — больше, 3 — меньше ‘))
__count += 1
__if answer == 1:
____print(«Ура! Угадал! с», count, «попытки.»)
____break
__elif answer == 2:
____start = number
__elif answer == 3:
____finish = number

Источник

Угадай число

Задача: Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она называет некоторые множества натуральных чисел. Август отвечает Беатрисе YES, если среди названных ей чисел есть задуманное или NO в противном случае. После нескольких заданных вопросов Беатриса запуталась в том, какие вопросы она задавала и какие ответы получила и просит вас помочь ей определить, какие числа мог задумать Август.
Ввод: Первая строка входных данных содержит число n — наибольшее число, которое мог загадать Август. Далее идут строки, содержащие вопросы Беатрисы. Каждая строка представляет собой набор чисел, разделенных пробелами. После каждой строки с вопросом идет ответ Августа: YES или NO. Наконец, последняя строка входных данных содержит одно слово HELP.
Вывод: Вы должны вывести (через пробел, в порядке возрастания) все числа, которые мог задумать Август.
Пример:
Ввод:
10
1 2 3 4 5
YES
2 4 6 8 10
NO
HELP
Вывод:
1 3 5

Вопрос: пример работает, но при проверке падает на 5 тесте, какая-то проблема с циклом. Какая? Помогите, пожалуйста.
Код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
file = open('input.txt', 'r') text = file.readlines() right = set() for i in range(1,len(text)-1, 2): if text[i+1] == 'YES\n': for j in range(len(text[i].split())): if int(text[i].split()[j])  int(text[0]): right.add(text[i].split()[j]) else: for j in range(len(text[i].split())): right.discard(text[i].split()[j]) arr = list(right) arr.sort() file = open('output.txt', 'w') for i in arr: file.write(str(i+' ')) file.close()

Источник

Помогите пожалуйста с задачей на Python.

В одном из домашних заданий мы делали задачу, где папа-программист написал для сына программу, которая просит его угадать число. Недостаток программы был в том, что бедному сыну приходилось её каждый раз перезапускать, чтобы угадывать число. Теперь, когда мы знаем гораздо больше, пришло время исправить этот недостаток и заодно немного улучшить саму игру.

Напишите программу-игру, которая запрашивает у пользователя число до тех пор, пока он его не отгадает. Выводите сообщения в соответствии с примером.

Число меньше, чем нужно. Попробуйте ещё раз!

Число больше, чем нужно. Попробуйте ещё раз!

Число больше, чем нужно. Попробуйте ещё раз!

Вы угадали! Число попыток: 4

riddled = int(input(‘Загадайте число: ‘))
guess = int(input(‘Отгадайте число: ‘))
count = 1
while riddled != guess:
count += 1
if guess < riddled:
print(‘Число меньше, чем нужно. Попробуйте ещё раз!’)
elif guess > riddled:
print(‘Число больше, чем нужно. Попробуйте ещё раз!’)
guess = int(input(‘Отгадайте число: ‘))
print(‘Вы угадали! Число попыток:’, count)

# Задача 9. Игра «Угадай число»
import random
number = random.randint(1,100)
# print(number)
count = 0
user_number = None
while number != user_number:
count += 1
user_number = int(input(‘Введите число от 1 до 100 ‘))
if number < user_number:
print(‘Число больше, чем нужно. Попробуйте ещё раз! ‘)
elif number > user_number:
print(‘Число меньше чем нужно. Попробуйте еще раз! ‘)
print(number, ‘Вы угадали! Число попыток: ‘, count)

from random import randint
hidden_number = randint(1,10)
count = 0
while True:
_count += 1
_number = int(input(‘Введите число: ‘))
_if number < hidden_number:
__print(‘Число меньше чем нужно. Попробуйте еще раз! ‘)
_if number > hidden_number:
__print(‘Число больше чем нужно. Попробуйте еще раз! ‘)
_if number == hidden_number:
__print(‘Вы угадали! Число попыток: ‘, count)
__break

number = int(input(‘Введи число которое я загадал: ‘))
attempts = 1 #Одна попытка уже использована
while number != 6: # загаданное число
attempts += 1 #плюс одна попытка за цикл
if number > 6:
print(‘Число больше, чем необходимо. Попробуй еще разок!’)
number = int(input(‘Введите число: ‘))
elif number < 6:
print(‘Число меньше, чем необходимо. Попробуй еще разок!’)
number = int(input(‘Введите число: ‘))
print(‘Вы угадали.’, ‘Количество попыток: ‘, attempts)

guess = 0
attempts = 0
secret_number = int(input(‘Загадали число: ‘))
guess = int(input(‘Введите число: ‘))
while guess != secret_number:
if guess < secret_number:
guess = int(input(«Число меньше, чем нужно. Попробуйте ещё раз: «))
attempts += 1
if guess > secret_number:
guess = int(input(«Число больше, чем нужно. Попробуйте ещё раз: «))
attempts += 1
print(‘Вы угадали! Число попыток ‘, attempts )

Источник

Создание игры на Питоне. «Угадай число»

Всем начинающим программистам хочется создать на новом языке программирования какую-нибудь игру, но знаний и практических навыков пока еще маловато. Не беда! Давайте создадим простую игру с использованием логических условий!

Иногда лучший способ начать работу с новым языком программирования — посмотреть уже готовую разработку. Смысл состоит из просмотра существующего фрагмента кода, чтобы узнать, как он работает.

Угадай число, game on python

Давайте рассмотрим кусок кода довольно простой, но полностью работающей игры на Python «Угадай число». Вначале посмотрите на код. Посмотрите на синтаксис. Постарайтесь понять, что этот код делает, построчно. Измените код, чтобы узнать, можете ли вы адаптировать эту игру.

Код игры «Угадай число»

import random
NumberToGuess=random.randint(1,100)
userGuess=-1

while userGuess!=NumberToGuess:
userGuess=int(input(«Угадай число от 1 до 100»))
if userGuess > NumberToGuess:
print(«Число должно быть меньше!»)
elif userGuess < NumberToGuess:
print(«Число должно быть больше!»)
else:
print(«Вы угадали, это число brush: py»>
import random
NumberToGuess = random.randint(1,100)

Генерируют случайное целое число от 1 до 100 и помещают его в переменную
NumberToGuess .

while userGuess!=NumberToGuess:

задает цикл с условием. Пока число пользователя не совпадёт с загаданным числом

if userGuess > NumberToGuess:
print(«Число должно быть меньше!»)
elif userGuess < NumberToGuess:
print(«Число должно быть больше!»)
else:

совершает три сравнения и выводит предупреждающие надписи, чтобы пользователь смог догадаться. Работают так называемые логические условия, если одно из них принимает значение True, то эта часть выполняется.

указывает на то, что число угадано. Дальше выводится надпись, что вы угадали число и программа завершается.

Пример работы программы

Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
>
Угадай число от 1 до 100 60
Число должно быть меньше!
Угадай число от 1 до 100 50
Число должно быть меньше!
Угадай число от 1 до 100 40
Число должно быть меньше!
Угадай число от 1 до 100 30
Число должно быть меньше!
Угадай число от 1 до 100 20
Число должно быть меньше!
Угадай число от 1 до 100 10
Число должно быть больше!
Угадай число от 1 до 100 12
Вы угадали, это число = 12
>

Возможная доработка программы

Не могли бы вы изменить этот код, чтобы подсчитать, сколько попыток сделал пользователь, чтобы угадать правильное число? Как только вы угадаете правильный номер, программа должна рассказать вам, сколько догадок вы использовали, и определит ваш выигрыш.

© 2013-2020 Информатика. Полезные материалы по информационным технологиям. Использование материалов без активной ссылки на сайт запрещено! Публикация в печати только с письменного разрешения администрации.

Источник

Оцените статью