Освой Python играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Несколько простых примеров для быстрого знакомства с Python.
Через ввод с клавиатуры пользователь задаёт количество чисел. Затем пользователь передаёт сами числа через ввод пользователя с клавиатуры. Составить программу, подсчитывающую среднее арифметическое. Результат выводится в консоль.
counter = int(input("Количество чисел:"))
y = 0
for i in range(counter):
x = float(input("{} Число: ".format(i + 1)))
y += x
y = y / counter
print("Среднее арифметическое: " + str(y))
Загадывается число от 0 до 20. За шесть попыток игрок должен угадать выбранное число.
import random
guessesTaken = 0
print('Введите ваше имя?')
myName = input()
number = random.randint(1, 20)
print(myName + ", Будет загадано число от 1 до 20")
for guessesTaken in range(6):
print("Попробуйте отгадать. Введите число")
guess = input()
guess = int(guess)
if guess < number:
print("Ваше число слишком маленькое")
if guess > number:
print("Ваше число слишком большое")
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken + 1)
print("Отлично, " + myName + "! Вы угадали за " + guessesTaken + " попыток")
if guess != number:
number = str(number)
print("Извините. Было загадано число " + number)
Игрок входит в пещеры, в которых живут драконы с кучами сокровищ, которые они насобирали. Некоторые драконы дружелюбны и делятся своими сокровищами. Другие — злы и съедают любого, кто попадает в их пещеру. Игрок должен сделать выбор (нажать клавишу 1 или 2), не зная, какой из драконов ему встретится. В случайном порядке будет выбран вариант - игрок может получить сокровища или погибнуть. Игру можно продолжить, напечатав слово "да" или "д".
import random
import time
def displayIntro():
print('''Вы находитесь в землях, заселенных драконами.
Перед собой вы видите две пещеры. В одной из них — дружелюбный дракон,
который готов поделиться с вами своими сокровищами. Во второй —
жадный и голодный дракон, который мигом вас съест.''')
print()
def chooseCave():
cave = ''
while cave != '1' and cave != '2':
print('В какую пещеру вы войдете? (нажмите клавишу 1 или 2)')
cave = input()
return cave
def checkCave(chosenCave):
print('Вы приближаетесь к пещере...')
time.sleep(2)
print('Её темнота заставляет вас дрожать от страха...')
time.sleep(2)
print('Большой дракон выпрыгивает перед вами! Он раскрывает свою пасть и...')
print()
time.sleep(2)
friendlyCave = random.randint(1, 2)
if chosenCave == str(friendlyCave):
print('...делится с вами своими сокровищами!')
else:
print('...моментально вас съедает!')
playAgain = 'да'
while playAgain == 'да' or playAgain == 'д':
displayIntro()
caveNumber = chooseCave()
checkCave(caveNumber)
print('Попытаете удачу еще раз? (да или нет)')
playAgain = input()
Взято с Invent Your Own Computer Games with Python, 4th Edition
import random
HANGMAN_PICS = ['''
+---+
|
|
|
===''', '''
+---+
O |
|
|
===''', '''
+---+
O |
| |
|
===''', '''
+---+
O |
/| |
|
===''', '''
+---+
O |
/|\ |
|
===''', '''
+---+
O |
/|\ |
/ |
===''', '''
+---+
O |
/|\ |
/ \ |
===''']
# Полный список смотрите в источнике
words = 'ant baboon badger bat bear beaver camel cat'.split()
def getRandomWord(wordList):
# This function returns a random string from the passed list of strings.
wordIndex = random.randint(0, len(wordList) - 1)
return wordList[wordIndex]
def displayBoard(missedLetters, correctLetters, secretWord):
print(HANGMAN_PICS[len(missedLetters)])
print()
print('Missed letters:', end=' ')
for letter in missedLetters:
print(letter, end=' ')
print()
blanks = '_' * len(secretWord)
for i in range(len(secretWord)): # Replace blanks with correctly guessed letters.
if secretWord[i] in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for letter in blanks: # Show the secret word with spaces in between each letter.
print(letter, end=' ')
print()
def getGuess(alreadyGuessed):
# Returns the letter the player entered. This function makes sure the
# player entered a single letter and not something else.
while True:
print('Guess a letter.')
guess = input()
guess = guess.lower()
if len(guess) != 1:
print('Please enter a single letter.')
elif guess in alreadyGuessed:
print('You have already guessed that letter. Choose again.')
elif guess not in 'abcdefghijklmnopqrstuvwxyz':
print('Please enter a LETTER.')
else:
return guess
def playAgain():
# This function returns True if the player wants to play again;
# otherwise, it returns False.
print('Do you want to play again? (yes or no)')
return input().lower().startswith('y')
print('H A N G M A N')
missedLetters = ''
correctLetters = ''
secretWord = getRandomWord(words)
gameIsDone = False
while True:
displayBoard(missedLetters, correctLetters, secretWord)
# Let the player enter a letter.
guess = getGuess(missedLetters + correctLetters)
if guess in secretWord:
correctLetters = correctLetters + guess
# Check if the player has won.
foundAllLetters = True
for i in range(len(secretWord)):
if secretWord[i] not in correctLetters:
foundAllLetters = False
break
if foundAllLetters:
print('Yes! The secret word is "' + secretWord +
'"! You have won!')
gameIsDone = True
else:
missedLetters = missedLetters + guess
# Check if player has guessed too many times and lost.
if len(missedLetters) == len(HANGMAN_PICS) - 1:
displayBoard(missedLetters, correctLetters, secretWord)
print('You have run out of guesses!\nAfter ' +
str(len(missedLetters)) + ' missed guesses and ' +
str(len(correctLetters)) + ' correct guesses, the word was "' + secretWord + '"')
gameIsDone = True
# Ask the player if they want to play again (but only if the game is done).
if gameIsDone:
if playAgain():
missedLetters = ''
correctLetters = ''
gameIsDone = False
secretWord = getRandomWord(words)
else:
break
Опыт проведения городской школьной олимпиады по программированию