Como é que eu uso a entrada raw no Python 3
import sys
print (sys.platform)
print (2 ** 100)
raw_input( )
estou a usar o Python 3.1 e não consigo que o raw_ input "congele"o pop-up dos. O livro que estou a ler é de 2.5 e estou a usar 3.1
O que devo fazer para resolver isto?8 answers
raw_input()
foi renomeado para input()
Isto funciona no Python 3.X e 2.x:
# Fix Python 2.x.
try: input = raw_input
except NameError: pass
print("Hi " + input("Say something: "))
Uma forma fiável de resolver isto é
from six.moves import input
O Six é um módulo que se sobrepõe a muitos dos pontos de dor de base de código 2/3.
Em Python 3.xx você só precisa {[[0]} não raw_input()
Como outros indicaram, a função raw_input
foi renomeada para input
no Python 3.0, e você realmente seria melhor servido por um livro mais atualizado, mas eu quero salientar que existem maneiras melhores de ver a saída do seu script.
.py
e depois está a fazer duplo-click nele para o executar. A janela de terminal que aparece fecha assim que o seu programa termina, para que não possa ver qual o resultado do seu o programa era. Para resolver isso, seu livro recomenda a adição de um raw_input
/ input
declaração para esperar até que o utilizador carregue em enter. No entanto, como você já viu, se algo correr mal, como um erro em seu programa, essa Declaração não será executada e a janela fechará sem que você seja capaz de ver o que correu mal. Você pode achar mais fácil usar um comando-prompt ou ocioso.
Usar uma linha de comandos
Quando estiver a olhar para a janela de pastas que contém o seu programa Python, mantenha deslocamento para baixo e clique com o botão direito em qualquer lugar na área de fundo branco da janela. O menu que aparece deverá conter um item "Abrir a janela de comandos aqui". (Acho que isto funciona no Windows Vista e no Windows 7.) Isto irá abrir uma janela de pedido de comandos que se pareça com isto: Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Weeble\My Python Program>_
Para executar o seu programa, escreva o seguinte (substituindo o nome do seu programa):
python myscript.py
...e pressione enter. (Se você tiver um erro de que "python" não é um comando reconhecido, veja http://showmedo.com/videotutorials/video?name=960000&fromSeriesID=96 ) quando o seu programa terminar de correr, quer termine com sucesso ou não, a janela permanecerá aberta e a linha de comandos irá aparecer de novo para que escreva outro comando. Se quiser executar o seu programa de novo, poderá carregar na seta para cima para recordar o comando anterior que introduziu e carregar em enter para o executar de novo, em vez de ter de escrever sempre o nome do ficheiro.
Uso IDLE
IDLE é um editor de programas simples que vem instalado com Python. Entre outros recursos, ele pode executar seus programas em uma janela. Carregue com o botão direito no seu ficheiro .py
e escolha "Editar em inactivo". Quando o seu programa aparecer no editor, carregue em F5 ou escolha "Executar o módulo" do menu "Executar". Seu programa será executado em uma janela que permanece aberta após o fim do seu programa, e na qual você pode inserir comandos Python para executar imediatamente.
A solução do Timmerman funciona muito bem ao executar o código, mas se não quiser obter erros Undefined name
ao usar o pyflakes ou um linter semelhante, poderá usar o seguinte em vez disso:
try:
import __builtin__
input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
pass
Aqui está um pedaço de código que eu coloquei em meus scripts que eu não quero executar em py2 / 3-ambiente agnóstico:
# Thank you, python2-3 team, for making such a fantastic mess with
# input/raw_input :-)
real_raw_input = vars(__builtins__).get('raw_input',input)
Agora pode usar o real_ raw_ input. É bastante caro, mas curto e legível. O uso de entrada raw é normalmente caro no tempo (à espera de entrada), por isso não é importante.
Em teoria, você pode até mesmo atribuir o raw_ Input em vez do real_raw_ input, mas pode haver módulos que verificam a existência do raw_ input e se comportam de acordo. É melhor ficar do lado seguro.
def raw_input(x):
input(x)
Então quando eu executar raw_input('Enter your first name: ')
sobre o guião em que eu estava a trabalhar, ele captura-o como faz input()
faria.