2013-04-09 8 views
-13

파이썬 3.0을 사용하고 있습니다 및 인쇄 기능은 ASD는 (u는 밖으로 곳 내야합니다)해야 작동하지Python - 인쇄 기능이 작동하지 않는 이유는 무엇입니까?

import os 

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) ") 

def game2(): 
    print("asd") 
    input("asdsa") 

def game1(): 
    print("THIS SHOULD BE PRINTED!! BUT IT'S NOT!!") 
    word1 = input("what is the word? ") 

if word1 == "password": 
    game2() 
else: 
    os._exit(1) 

if play == "Y": 
    game1() 

if play == "N": 
    os._exit(1) 

모든 작업을하지만 그 라인에 걸쳐있다. 왜?

+10

"어디에서 찾을 수 있습니까?"라고 쓰지 마십시오. 어떤 오류가 발생했는지 알려주십시오. 우리가 당신을 도울 수 있도록 도와주세요. – YXD

+10

들여 쓰기를 수정하십시오. –

+0

어디에서 오류가 있습니까? Python2.X를 실행 중이며 코드를 테스트 할 수 없지만 오류 코드를 제공하면 오류 출력 또는 어떤 행이 영향을받은 행인지 여부를 확인할 수 있습니다. – Torxed

답변

1

들여 쓰기가 모두 잘못되어 함수를 중첩 시켰습니다. word1이 정의되지 않았습니다.

import os 

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": 
    game1() 
if play == "N": 
    os._exit(1) 

def game2(): 
print("asd") 
input("asdsa") 

def game1(): 
print("THIS SHOULD BE PRINTED!! BUT IT'S NOT!!") 
word1 = input("what is the word? ") 
if word1 == "password": 
    game2() 
else: 
    os._exit(1) 

Start() 
+0

감사합니다. 하지만 질문이 있습니다. 내 다른 질문을 보면, 누군가가 내 game1() 변수를 무작위로 타이핑하는 것을 정의해야한다는 것을 알 수 있습니다 : 만약 play == "Y": game1() .. – user2261574

+0

@ user2261574 : 주요 범위에서 다시 실행하십시오. 'game1()'이'Start()'함수 안에서 사용되고 있습니다. 'Start()'함수는'game1()'이 정의 된 후에 실행되고, ergo'game1()'은 실행 전에 정의됩니다. – Manishearth

+0

@ user2261574 코드 더미 에서처럼 코드를 살펴 봐야합니다. 코드가 실행되면 코드 스택에서 첫 번째 종이가 더미에서 선택되어 실행됩니다. 그리고 다음은 말뚝에 두 번째 papper입니다. 'game1()'을 실행하려고하면 파이썬은'def game1()'이 정의 된 "종이"를 "읽어야"합니다. 즉, (이전 행에) 그것을 정의 ...이 코드가 작동하는 방식입니다. – Torxed

0
import os 

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) ") 

def game2(): 
    print("asd") 
    input("asdsa") 

def game1(): 
    print("THIS SHOULD BE PRINTED!! BUT IT'S NOT!!") 
    word1 = input("what is the word? ") 

    if word1.lower() == "password": 
     game2() 
    else: 
     os._exit(1) 

Start() # <- You never called start, which **declares** play (the variable) 
if play == "Y": 
    game1() 

if play == "N": 
    os._exit(1) 

귀하의 코드는 완벽과는 거리가 멀다 :

여기에 고정 코드입니다. 방법 코드가 작동 은 당신이하지 선언play가 존재하지 않습니다 ..

을하고 play을 snice 경우, 위에서 아래로 .. 의미에서가는 함수 Start()에서 (생성) 선언, 즉 당신 play의 값을 확인하려면 start를 호출해야합니다.

ulgy이지만 자신이하고있는 일과 작동 방식에 대한 해결책과 설명을 heres합니다.

참고 사항 : word1이 입력 된 후 수표를 찍고 싶기 때문에 if word1 == "password": 번 탭을 탭했습니다. 게시물을 수정할 때 깨닫지 못했습니다. 왼쪽 스크린 샷에

가 녹색 블록
play 일단 시도는 play를 만든 적이 있기 때문에 실패합니다 "Y"에 대해 비교 .. 레드 라인 전에 을 실행 무슨이다 .. 당신은 Start() 내부에 그것을 가지고해서 그 코드를 실행하기 위해서는 Start()을 호출해야합니다. 그렇지 않으면 파이썬은 게으름이되고, Start()은 무엇이든 무시합니다. 언제든지 액세스 할 준비가되었거나 액세스 할 필요가있을 때마다 전화하십시오 (시간 절약).

enter image description here

관련 문제