python - CMD运行一个py小程序,CMD窗口一闪而过,里面有input(),为什么还会这样?
PHP中文网
PHP中文网 2017-04-18 09:05:58
0
7
714

用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中文网

认证高级PHP讲师

全部回复(7)
刘奇

雷雷

Ty80

首先为什么有input还是会这样?
答:因为还没运行到input()的时候,就出错了
什么错误?
答:在读文件的时候出现了编码错误,即一些字符无法读取。
解决方案:
1、用IDE运行。
2、用linux虚拟机运行。(归根到底还是windows gbk的错)
3、尝试了解encode、decode、ignore这些东西

小葫芦

那你就先别在命令行运行,丢IDEL里面,看看是否报错

洪涛

看一下是不是同时装了Python2和Python3.Python2里也有input函数,但作用跟3里的input完全不同。有可能你的IDE用的python3,所以能正常运行,但cmd用的是python2,所以不正常。

伊谢尔伦

unicode encode error
参考这个http://transcoder.baidu.com/from=1086k/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1002%2Cta%40iphone_2_6.0_2_6.8/baiduid=D47B67CD8866F5B4716F9F9BCF84DFD7/w=0_10_python+unicodeencode+error/t=iphone/l=3/tc?ref=www_iphone&lid=16340644776571976913&order=6&fm=alop&tj=www_normal_6_0_10_title&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.243.1059.0.0&tch=124.232.284.1073.1.836&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRASDfuL7_KZpPPtCPQpxwGx8Sc_7YskNYWgK&eqid=e2c5a1d90c6a40001000000257885c4d&wd=&clk_info=%7B%22srcid%22%3A%22www_normal%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1468554487103%2C%22xpath%22%3A%22p-a-h3-em2%22%7D

Ty80

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

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

python2的inputraw_input

伊谢尔伦

你的错误提示就是 cmd 命令行里面展示不出来中文啊

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板