Jump to content

Recommended Posts

Posted

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 🙂

Posted

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."

 

Posted

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."

 

Posted

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 🙂

Posted

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."

 

Posted

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.

Posted

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!

Posted

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."

 

Posted

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."

 

Posted

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? 

Posted

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."

 

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.