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

用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讲师

répondre à tous(7)
刘奇
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

input('石头剪刀布:\n0 = 石头\n1 = 剪刀\n2 = 布\n3 = 退出\n ')
Ty80

Tout d'abord, pourquoi cela se produit-il même s'il y a une contribution ?
Réponse : Parce qu'une erreur s'est produite avant l'exécution de input().
Quelle erreur ?
Réponse : Une erreur d'encodage s'est produite lors de la lecture du fichier, c'est-à-dire que certains caractères n'ont pas pu être lus.
Solution :
1. Exécutez avec l'IDE.
2. Exécutez avec la machine virtuelle Linux. (En dernière analyse, c'est toujours la faute de Windows gbk)
3. Essayez de comprendre des choses comme encoder, décoder et ignorer

小葫芦

Alors ne l'exécutez pas d'abord depuis la ligne de commande, mettez-le dans IDEL et voyez s'il y a une erreur

洪涛

Vérifiez si Python2 et Python3 sont installés en même temps. Il existe également une fonction d'entrée dans Python2, mais sa fonction est complètement différente de l'entrée dans 3. Il est possible que votre IDE utilise python3, il peut donc fonctionner normalement, mais cmd utilise python2, donc il ne fonctionne pas correctement.

伊谢尔伦

encodage Unicode erreur
Référez-vous à ceci http://transcoder.baidu.com/from=1086k/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1002%2Ct a%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%8 Cunicode%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_ytK1DK6mlrte4viZ QRASDfuL7_KZpPPtCPQpxwGx8Sc_7YskNYWgK&eqid=e2c5a1d90c6a40001000000257885c4d&wd=&clk_info=%7B%22srcid%22%3A%22ww w_normal%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1468554487103%2C%22xpath%22%3A%22p-a-h3-em2%22%7D

Ty80

Ajoutez un u devant tous les caractères chinois, par exemple :

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

le input de python2 est raw_input

伊谢尔伦

Votre message d'erreur est que les caractères chinois ne peuvent pas être affichés dans la ligne de commande cmd

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal