Python: Problems and Solutions (Chapter 4. For Loops, Strings, and Tuples. The Anagram Game).


We continue to practice programming. After the fourth chapter in the book: Michael Dawson “Programming in Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), where I learned how to use the for statement and create tuples, tasks were suggested. Let’s do them together. I will give my solution, and you write your options in the comments.

1. Write a “Counting” program that would count at the request of the user. We should allow the user to enter the beginning and end of the count, as well as the interval between called integers.

nachano_scheta=int(input('Введите начало счета\n'))
konec_scheta=int(input('Введите конец счета\n'))
interval=int(input('Введите интервал счета\n'))
for i in range (nachano_scheta, konec_scheta, interval):
    print(i)

While I was trying to write this program using while and for, I completely forgot about the range() function. Well, when I remembered, everything turned out to be much easier. This is how the program works:

Введите начало счета
2
Введите конец счета
19
Введите интервал счета
4
2
6
10
14
18
>>> 

2. Write a Flipper program that takes text from user input and prints that text on the screen in reverse.

text=input('Введите текст, который вернется написанный в обратном порядке\n')
dlina=len(text)
text_new=''
while text:
    text_new+=text[dlina-1]
    text=text[:dlina-1]
    dlina=len(text)
print(text_new)

I wrote this program almost at random, I was constantly haunted by the feeling that nothing would work and I was doing everything wrong. But in the end, in some magical way, the program worked:

Введите текст, который вернется написанный в обратном порядке
Я кот Штукенция
яицнекутШ ток Я
>>> 

3. Improve the game “Anagrams” so that each word has a hint. The player should be entitled to a hint if he has no guesses. Develop a scoring system whereby players who guessed the word without a clue would receive more than those who requested a clue.

print('Сейчас вы увидите случайную анаграмму, вам нужно угадать слово.\n')
input('Нажмите Entr, чтобы начать')
slova=('медведь',
       'канистра',
       'грильяж',
       'табуретка',
       'программист')
import random
slovo_1=random.choice(slova)
anagramma=''
slovo_2=slovo_1
while slovo_2:
    dlina=len(slovo_2)
    bukva_index=random.randint(0,(dlina-1))
    bukva=slovo_2[bukva_index]
    anagramma+=bukva
    if bukva_index!=0:
        slovo_nachalo=slovo_2[:bukva_index]
    else:
        slovo_nachalo=''
    slovo_konec=slovo_2[(bukva_index+1):]
    slovo_2=slovo_nachalo+slovo_konec
print(anagramma)
print ('Можно сразу попробовать угадать слово или попросить подсказку\n')
versiya=input('Нужна подсказка? да/нет\n')
ochki=100
if versiya == 'да':
    print('Слово начинается так:',slovo_1[:2],'...?')
    ochki-=5
otvet=input('Напишите слово и нажмите Entr, чтобы проверить вашу версию\n')
while otvet!=slovo_1:
    otvet=input('Напишите слово и нажмите Entr, чтобы проверить вашу версию\n')
    ochki-=1
print('Поздравляю, вы угадали!')
print('Вы набрали',ochki, 'из 100')
input('Нажмите Entr, чтобы выйти')

The work of the program looks like this:

Сейчас вы увидите случайную анаграмму, вам нужно угадать слово.

Нажмите Entr, чтобы начать
иармтомспгр
Можно сразу попробовать угадать слово или попросить подсказку

Нужна подсказка? да/нет
да
Слово начинается так: пр ...?
Напишите слово и нажмите Entr, чтобы проверить вашу версию
программист
Поздравляю, вы угадали!
Вы набрали 95 из 100
Нажмите Entr, чтобы выйти
>>> 

4. Create a guessing game in which the computer chooses a word and the player has to guess it. The computer tells the player how many letters are in the word and gives five attempts to find out if any letter is in the word, with the program only able to answer “Yes” and “No”. After that, the player must try to guess the word.

print('Игра "Отгадайка".\n Я загадаю слово, а ты будешь его угадывать.\n \
Я скажу тебе, сколько букв в этом слове. \n \
И еще ты можешь 5 раз узнать у меня, есть ли какая-либо буква в этом слове.')
input('Если готов играть, нажми Entr')
slova=('сосиска',
       'крокодил',
       'медведь',
       'завтрак',
       'компьютер')
import random
slovo=random.choice(slova)
print('В этом слове', len(slovo),'букв')
print('Теперь ты можешь 5 раз спросить меня, есть ли какая-то буква в этом слове?\n')
for _ in range (5):
    bukva=input('Напиши букву, которую хочешь проверить?')
    if bukva in slovo:
        print('Да')
    else:
        print('Нет')
otgadka=input('Какое слово было загадано?\n')
if otgadka==slovo:
    print('Ура, ты угадал!')
else:
    print('Нет, попробуй в другой раз')
input='Для выхода нажмите Entr'

I wrote the program, but it turned out that playing this game is completely unrealistic. Guessing the word under such conditions is too difficult. But for training will go. The program works like this:

Игра "Отгадайка".
 Я загадаю слово, а ты будешь его угадывать.
 Я скажу тебе, сколько букв в этом слове. 
 И еще ты можешь 5 раз узнать у меня, есть ли какая-либо буква в этом слове.
Если готов играть, нажми Entr
В этом слове 7 букв
Теперь ты можешь 5 раз спросить меня, есть ли какая-то буква в этом слове?

Напиши букву, которую хочешь проверить?а
Да
Напиши букву, которую хочешь проверить?т
Нет
Напиши букву, которую хочешь проверить?о
Да
Напиши букву, которую хочешь проверить?м
Нет
Напиши букву, которую хочешь проверить?л
Нет
Какое слово было загадано?
самолет
Нет, попробуй в другой раз
>>>

This entry was posted in Python (en). Bookmark the permalink.

Leave a Reply

🇬🇧 Attention! Comments with URLs/email are not allowed.
🇷🇺 Комментарии со ссылками/email удаляются автоматически.