recherche

Maison  >  Questions et réponses  >  le corps du texte

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中文网2817 Il y a quelques jours724

répondre à tous(7)je répondrai

  • 怪我咯

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

    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    input('石头剪刀布:\n0 = 石头\n1 = 剪刀\n2 = 布\n3 = 退出\n ')

    répondre
    0
  • PHP中文网

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

    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

    répondre
    0
  • 高洛峰

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

    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

    répondre
    0
  • PHP中文网

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

    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.

    répondre
    0
  • 伊谢尔伦

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

    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

    répondre
    0
  • PHP中文网

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

    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

    répondre
    0
  • 伊谢尔伦

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

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

    répondre
    0
  • Annulerrépondre