2016-12-31 18 views
-1

私は友人を示すためにPythonで単純なテキストゲームを構築しましたが、それはシェル上でうまく動作しますが、端末ではエラーが発生します。 Pythonで端末対シェルのコンパイルに違いはありますか?シェルでターミナルのPython 3はシェルと異なりますか?

、これは何が起こるかです: test is an invalid input, so it asks you to type one of the answers and then when typing yes it continues

をしかし、端末に、それは私に、このエラーを与える: enter image description here

は、このために何らかの理由はありますか?

マイコード:

"""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~IMPORT PACKAGES~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""" 

from random import randint 
import os 
import copy 
import math 
import time 
import pickle 
import platform 
import subprocess as sp 

"""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~LOAD DATA/NEW GAME~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""" 

newData = {"assassin" : {'hp' : 100, 'atk' : 250, 'lvl' : 1, 'arm' : 0, 'pow' : {'name' : 'surprise attack', 'lvl' : 0}, 'xp' : 0}, 
          "mage" : {'hp' : 100, 'atk' : 200, 'lvl' : 1, 'arm' : 0, 'pow' : {'name' : 'fire','lvl' : 0}, 'xp' : 0}, 
          "knight" : {'hp' : 100, 'atk' : 150, 'lvl' : 1, 'arm' : 10, 'pow' : {'name' : 'dodging','lvl' : 0}, 'xp' : 0}, 
          "healer" : {'hp' : 500, 'atk' : 50, 'lvl' : 1, 'arm' : 0, 'pow' : {'name' : 'healing','lvl' : 0}, 'xp' : 0}} 


if platform.system()=='Windows': 
    file = 'filepath' 
elif platform.system()=='Darwin': 
    file = 'filepath' 

"""Clears screen""" 
clear = lambda: os.system('cls' if platform.system()=='Windows' else 'clear') 

print('Load data?') 

while True: 
    answer = input() 


    if answer == 'yes': 
     load_file = open(file, 'rb') 
     characterData = pickle.load(load_file) 
     load_file.close() 
     break 
    elif answer == 'no': 
     print('Starting a new game...') 
     time.sleep(0.5) 
     characterData = copy.deepcopy(newData) 
     save_file = open(file, 'wb') 
     pickle.dump(characterData, save_file) 
     save_file.close() 
     break 
    else: 
     print('That input cannot be deciphered. Please type "yes" or "no".') 

答えて

5

それはあなたがシェルでのPython 3.xを使用しているように見えますが、Pythonの2.xのは、端末に使用されています。 input()関数は、Pythonの2つのバージョンで動作が異なります。

端末でPython 3.xを使用していることを確認してください。 Python 2.xが必要な場合はinput()raw_input()に変更してください。

関連する問題