首頁  >  問答  >  主體

python - CMD运行一个py小程序,CMD窗口一闪而过,里面有input(),为什么还会这样?

用python写了个小程序,用IDE运行没有任何问题,尝试用CMD运行,CMD窗口一闪而过就没有了。。。
代码如下:

# -*- coding:utf-8 -*-

from __future__ import unicode_literals

import random

def play():
    message=['石头','剪刀','布']
    i=input('石头剪刀布:\n0=石头\n1=剪刀\n2=布\n3=退出\n')
    while int(i)!=3:
        result=random.randint(0,2)
        print '对方出:'+message[result]+',我出:'+message[i]
        j= i-result
        if j==0:
            print '你们还是做好朋友吧!\n'
        elif j==1:
            print '对方赢了,下次努力!\n'
        elif j==2:
            print '就知道我是最棒哒!\n'
        elif j==-1:
            print '棒棒哒,真想给自己个么么哒!\n'
        elif j==-2:
            print '小家伙,别嘚瑟,下次赢你!\n'
        i=input('石头剪刀布:\n0 = 石头\n1 = 剪刀\n2 = 布\n3 = 退出\n ')

    print '虽然咱们不分高下,但是咱们还是可以做好朋友的。'

play()

里面有input,按理说应该等我input东西才对吧。

我似乎找到原因了,我之前在idle里运行没有任何问题,然后就直接双击运行试试,结果一闪而过,于是我在CMD里python caiquanyouxi.py运行,出现错误了,错误如下:

请各位赐教!

PHP中文网PHP中文网2741 天前675

全部回覆(7)我來回復

  • 怪我咯

    怪我咯2017-04-18 09:07:58

    雷雷

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:07:58

    首先為什麼有input還是會這樣?
    答:因為還沒運行到input()的時候,就出錯了
    什麼錯誤?
    答:在讀文件的時候出現了編碼錯誤,即一些字符無法讀取。
    解決方案:
    1、用IDE運作。
    2、用linux虛擬機器運作。 (歸根到底還是windows gbk的錯)
    3、試著了解encode、decode、ignore這些東西

    回覆
    0
  • 高洛峰

    高洛峰2017-04-18 09:07:58

    那你就先別在命令列運行,丟IDEL裡面,看看是否報錯

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:07:58

    看一下是不是同時裝了Python2和Python3.Python2裡也有input函數,但作用跟3裡的input完全不同。有可能你的IDE用的python3,所以能正常運行,但cmd用的是python2,所以不正常。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:07:58

    unicode encode error
    參考這個http://transcoder.baidu.com/from=1086k/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1002%2Cta%400%2Csz%401320_1002%2Cta%402_iphone_2_iphone_2_iphone_2. /baiduid=D47B67CD8866F5B4716F9F9BCF84DFD7/w=0_10_python+unicodeencode+error/t=iphone/l=3/tc?ref=www_iphone&lid=163406447765719tc?ref=www_iphone&lid=1634064477657197696571976600m_www&w&www&www&w&www&www&www. tle&vit=osres&m=8&srd=1&cltj=cloud_title&asres=1&title=python%E4%B8 %AD%E7%9A%84%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98%3A%E4%BB%A5ascii%E5%92%8Cunicode%E4%B8 %BA%E4%B8%BB%E7%BA%BF..._%E5%8D%9A%E5%AE%A2%E5%9B%AD&dict=30&sec=13731&di=d4da424635e9d09b&bdenc=1&tch=124.78. &tch=124.232.284.1073.1.836&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRASDfuL7_KZpPPtCPQpxwG. 000257885c4d&wd=&clk_info=%7B%22srcid%22%3A%22www_normal%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%22%3A%22www_normal%22%2C%22t%22%3A14685548C% 22xpath%22%3A%22p-a-h3-em2%22%7D

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:07:58

    在所有的中文前面加上一個u,例:

    i=raw_input(u'石头剪刀布:\n0=石头\n1=剪刀\n2=布\n3=退出\n')

    python2的inputraw_input

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:07:58

    你的錯誤提示就是 cmd 命令列裡面展示不出來中文啊

    回覆
    0
  • 取消回覆