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

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

membalas semua(7)
刘奇
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

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

Pertama sekali, mengapa ini berlaku walaupun terdapat input?
Jawapan: Kerana ralat berlaku sebelum input() dijalankan
Ralat apa?
Jawapan: Ralat pengekodan berlaku semasa membaca fail, iaitu beberapa aksara tidak dapat dibaca.
Penyelesaian:
1. Jalankan dengan IDE.
2. Jalankan dengan mesin maya Linux. (Dalam analisis akhir, ia masih kesalahan windows gbk)
3. Cuba fahami perkara seperti pengekodan, nyahkod dan abaikan

小葫芦

Kemudian jangan jalankannya dari baris arahan dahulu, masukkan ke dalam IDEL dan lihat jika terdapat ralat

洪涛

Periksa sama ada Python2 dan Python3 dipasang pada masa yang sama Terdapat juga fungsi input dalam Python2, tetapi fungsinya berbeza sepenuhnya daripada input dalam 3. Ada kemungkinan IDE anda menggunakan python3, jadi ia boleh berjalan seperti biasa, tetapi cmd menggunakan python2, jadi ia tidak berfungsi dengan betul.

伊谢尔伦

kod unicode ralat
Rujuk http://transcoder.baidu.com/from=1086k/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1002%2Ct ini 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

Tambahkan u di hadapan semua aksara Cina, contohnya:

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

python2 input ialah raw_input

伊谢尔伦

Mesej ralat anda ialah aksara Cina tidak boleh dipaparkan dalam baris arahan cmd

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan