Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在cmd中使用input()_Python_Python 3.x - Fatal编程技术网

Python 在cmd中使用input()

Python 在cmd中使用input(),python,python-3.x,Python,Python 3.x,我开始在python中胡闹,试图创建一个冻结的exe,我最终让它工作起来,然后发现当通过命令提示符运行时,输入函数似乎不能正常工作,而不是在空闲或交互式会话中。你知道为什么,或者如何解决这个问题吗 编辑:当我说不正确时,我的意思是它要求输入,但当我输入一个时,它什么也不做。当我在空闲状态下输入某个内容时,它完全按照它应该做的做。好像我什么都没做 我使用的是cx_freeze,似乎不相关,因为我尝试在CMD中运行脚本而没有冻结它,它也做了同样的事情 while idea != 'new':

我开始在python中胡闹,试图创建一个冻结的exe,我最终让它工作起来,然后发现当通过命令提示符运行时,输入函数似乎不能正常工作,而不是在空闲或交互式会话中。你知道为什么,或者如何解决这个问题吗

编辑:当我说不正确时,我的意思是它要求输入,但当我输入一个时,它什么也不做。当我在空闲状态下输入某个内容时,它完全按照它应该做的做。好像我什么都没做

我使用的是cx_freeze,似乎不相关,因为我尝试在CMD中运行脚本而没有冻结它,它也做了同样的事情

while idea != 'new':
    idea = input('...')
    if idea == 'hit':
        del hand2[0:]
        del hand4[0:]
        hand2.append(random.choice(num))
        for i in hand2:
            if i == 10:
                a = random.choice(num2)
                hand.append(10)
                hand3.append(a)
            elif i == 1:
                if sum(hand) + 11 < 21:
                    hand.append(11)
                    hand3.append('Ace')
                else:
                    hand.append(1)
                    hand3.append('Ace')
            else:
                hand3.append(i)
                hand.append(i)
whileidea!='新的':
idea=输入(“…”)
如果idea=='hit':
del hand2[0:]
del hand4[0:]
hand2.append(random.choice(num))
对于我在手2:
如果i==10:
a=随机选择(num2)
追加(10)
3.附加(a)
elif i==1:
如果总和(手)+11<21:
追加(11)
hand3.append('Ace')
其他:
追加(1)
hand3.append('Ace')
其他:
3.附加(i)
追加(i)
它不会确认我输入了hit,即使它在idle和交互式会话中输入了hit。

如果您试图获取用户字符串输入,则函数名为raw_input()(至少在Python 2.7中是这样称呼的)。此代码在使用Python 3.2的cmdline中正常工作:

idea = ''
while idea != 'new':
    idea = input('...').strip()
    if idea == 'hit':
        print("It's not nice to hit people (or computers).")
    else:
        print('you input [{}]'.format(idea))

必须将.strip()添加到输入调用中,以使其与字符串“hit”匹配,因为输入似乎包含回车。

回答这个问题几乎是猜测,请用尽可能多的有关问题的信息展开您的问题,最好至少是一些相关代码。否则我认为你不会得到任何好的答案。谢谢另外,请看一下我们还定义了“冻结的exe”。您是在使用py2exe、PyInstaller,还是尝试自己使用一个核心转储来实现它?这似乎是Python3.x。正确吗?尝试在调用
input()
后直接打印
repr(idea)
。换行符可能包含在
cmd
中,而不包含在IDLE中。当您在
input()
之后添加
print()
函数时,您看到了什么?啊,对不起,错误地假设为2.x。。。但您确定在这两种情况下都运行了3.x(IDLE与cmdline)?从命令行运行“python-V”,并将其与启动时在IDLE中看到的内容进行比较。这是cmd中的python 3.2,刚刚选中。这非常有效,谢谢。如果我有代表的话,我会投这个票。这很奇怪,什么操作系统?它不包括Ubuntu.Windows7上的CR,这就是我正在使用的。