simbamix Posted August 30, 2016 at 02:35 PM Report #598501 Posted August 30, 2016 at 02:35 PM Boa tarde, Estou aqui com um problema no meu script. Queria executar uma parte do codigo uma certa parte de segundos, o que já está a funcionar. Eu queria introduzir esses segundos através do segundo argumento, ou seja python teste.py 1arg 50 Estou a utilizar o seguinte codigo para adicionar o tempo: t_end = time.time() + 20 Mas como faço para transformar isso para ele obter pelo argumento? Exemplo:t_end = time.time() + sys.argv[2], ele dá erro Obrigado 🙂
M6 Posted August 30, 2016 at 03:01 PM Report #598502 Posted August 30, 2016 at 03:01 PM Que erro é que dá? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
simbamix Posted August 30, 2016 at 03:03 PM Author Report #598503 Posted August 30, 2016 at 03:03 PM Dá o seguinte erro: http://prntscr.com/cc4qow
M6 Posted August 30, 2016 at 03:06 PM Report #598504 Posted August 30, 2016 at 03:06 PM Se leres o erro com atenção está ai tudo bem explicado: o operador + não consegue somar um float com uma string... Tens de converter a string para um numérico. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
simbamix Posted August 30, 2016 at 03:08 PM Author Report #598505 Posted August 30, 2016 at 03:08 PM Muito obrigado, consegui pela tranformação: tempoo = int(sys.argv[2]) Agora outra duvida: Estou num while e quando esse while acaba, que está verdadeira, vai para um else: que quando a "afirmação" está falsa. Eu queria parar o programa, ou seja matar o programa, porem ja tentei dentro do else usar o exit, quit, etc... Sem resultado. Como posso sair do programa? Obrigado 🙂
M6 Posted August 30, 2016 at 03:25 PM Report #598507 Posted August 30, 2016 at 03:25 PM Usas o sys.exit(0). Podes é ter um erro de lógica. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
simbamix Posted August 30, 2016 at 03:44 PM Author Report #598509 Posted August 30, 2016 at 03:44 PM Não funcionou ele não fecha
Bernardo Vieira Posted August 30, 2016 at 03:52 PM Report #598510 Posted August 30, 2016 at 03:52 PM Não entendi o que disseste acima mas, não tens forma de sair do programa sem forçar um "exit" ?
simbamix Posted August 30, 2016 at 03:53 PM Author Report #598511 Posted August 30, 2016 at 03:53 PM O script python vai ser executado pelo php, e sendo que ele terá de fechar sozinho, ou consumirá mais recursos... penso eu
Bernardo Vieira Posted August 30, 2016 at 04:05 PM Report #598512 Posted August 30, 2016 at 04:05 PM Sim, eu percebo que fecha sozinho e percebo também a preocupação com os recursos (é importante) mas existe possibilidade de fechar logo a seguir a esse "if:else" ou ainda existe muito código pela frente ? No caso de isso ser tio uma classe que está a iniciar conexão á base de dados ou assim, será necessário esse "exit", mas se o programa fechar poucas linhas, então não é necessário.
simbamix Posted August 30, 2016 at 04:09 PM Author Report #598513 Posted August 30, 2016 at 04:09 PM Essa parte do código está numa classe, e há muito código pela frente Já tentei muitas coisas mas o programa não quer fechar :/
Bernardo Vieira Posted August 30, 2016 at 04:17 PM Report #598515 Posted August 30, 2016 at 04:17 PM Então estás a fazer um bom uso (só perguntei porque por vezes, algumas pessoas usam de forma incorreta) E já tentaste executar só o código python ? Se recebe variáveis, enviar para lá uns valores aleatórios, que funcionem. PS. não sei exatamente como funciona, mas não terás de retornar uma variável para php ? Talvez por tentares fechar assim é que não funciona. Não sei :/ Provavelmente o código python pára mas o php não sabe o que fazer!
simbamix Posted August 30, 2016 at 04:20 PM Author Report #598516 Posted August 30, 2016 at 04:20 PM Sim, já testei tudo e funciona corretamente, é so mesmo a parte do fechar
M6 Posted August 30, 2016 at 04:32 PM Report #598517 Posted August 30, 2016 at 04:32 PM Não sei se percebi bem. Quando executas o código através de linha de comando ele fecha? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
simbamix Posted August 30, 2016 at 04:34 PM Author Report #598518 Posted August 30, 2016 at 04:34 PM Quando executo o código ele fica aberto e não fecha, ficando com a ultima mensagem dada no ecrã
M6 Posted August 30, 2016 at 04:38 PM Report #598519 Posted August 30, 2016 at 04:38 PM Eu diria que tens um erro de lógica nesse código ou então o programa está à espera de algo externo (e.g. ligação http). Coloca uns prints com os valores da variáreis para verificar se efetivamente estás a obter os valores que estavas à espera. Pode estar a dar-se o caso de que o código nunca chega ao exit(). 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
simbamix Posted August 30, 2016 at 04:44 PM Author Report #598520 Posted August 30, 2016 at 04:44 PM Ou seja, ele chega a esta parte do código, e faz um temporizador: tempoo = int(sys.argv[2]) t_end = time.time() + tempoo Depois, vai para uma classe, que está a dizer: while time.time() < t_end: quando o tempo acabar ele vai para o else: sys.exit(0) Estarei a fazer algo de errado? O while usa-se com o else?
M6 Posted August 30, 2016 at 04:49 PM Report #598521 Posted August 30, 2016 at 04:49 PM Ah, está desvendado o mistério. O While não tem Else, isso é do If. O While é um ciclo que executa o código interno do mesmo enquanto a condição é verdadeira. Quando a condição é falsa, sai do ciclo. Vê aqui: https://wiki.python.org/moin/WhileLoop 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
simbamix Posted August 30, 2016 at 04:52 PM Author Report #598522 Posted August 30, 2016 at 04:52 PM Por acaso ao escrever agora, fiquei parvo comigo mesmo, obrigado na mesma xD
Rui Carlos Posted August 30, 2016 at 04:53 PM Report #598523 Posted August 30, 2016 at 04:53 PM Em Python o while pode ter else. O problema não deveria ser esse. Rui Carlos Gonçalves
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now