2013-04-09 10 views
2

Так что я эту игру:Как вы можете перейти к другой функции?

import sys 

def Start(): 
    print("Hello and welcome to my first Python game. I made it for fun and because I am pretty bored right now.") 
    print("I hope you enjoy my EPIC TEXT GAME") 

play = input("do you want to play? (Y/N) ") 

if play == "Y": 
    game() 

if play == "N": 
    sys.exit() 

def game(): 
    print("That's pretty much what I've done so far! :P -- yea yea, it's nothing -- IT IS!. Bye now") 
    input("Press enter to exit") 

Если я типа «Y» Я хочу, чтобы перейти к игре(). Это не так.

+5

из любопытства, вы perhpas написать «у» (в нижнем регистре 'y'?) – Torxed

+0

Кроме того, версия Python является очень важным, Я предполагаю, что Python3.X .. – Torxed

+1

Предположим, что это python 3 из-за функции печати, поэтому вход() в порядке здесь – wim

ответ

4

вы определили game после того, как вы попробуете его использовать. Перед использованием вы должны определить функции, переменные и т. Д. Кроме того, ваш код соответствует только на верхнем регистре Y и не в нижнем регистре y. Для того, чтобы все ввода в верхнем регистре, вы должны использовать метод .upper() на нем
изменить код на:

def game(): 
    print("That's pretty much what I've done so far!") 
    input("Press enter to exit") 

if play.upper() == "Y": 
    game() 
elif play.upper() == "N": 
    sys.exit() 

Также, как правило, лучшая форма, чтобы не иметь никакого глобального кода, и вместо того, чтобы включить его в main функции, если код python запускается как основной. Вы можете сделать это с помощью:

if __name__ == "__main__": 
    Start() 

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

+0

Работает как очарование! Большое спасибо за вашу помощь. – user2261574

+0

Нет проблем. вы должны рассмотреть возможность поиска [Learn Python The Hard Way] (http://learnpythonthehardway.org/book/), чтобы получить все это сочные знания. – Serdalis

-1

Вы используете функцию input(), которая выполняет ввод как команду сразу после прочтения ее из stdin.

Вы, вероятно, хотите использовать raw_input(), который будет просто вернуть то, что вошел пользователь

+0

Это python 3.0, который не имеет 'raw_input' (вы можете сказать по инструкции печати). – Serdalis

+0

Функция печати действительна также в Python 2.7. Я не знал об изменении ввода/raw_input в 3.x. Благодарю. – BradS

Смежные вопросы