I'comecei a programar hoje e tenho esta edição com Python. It'é bastante burro mas eu não consigo'descobrir como fazer isso. Quando eu uso o comando print, ele imprime o que eu quiser e depois vai para uma linha diferente. Por exemplo:
print "this should be"; print "on the same line"
Deve voltar:
isto deve ser na mesma linha
mas, em vez disso, regressa:
este deve ser na mesma linha
Mais precisamente, eu estava tentando criar um programa com 'se' que me dissesse se um número era um 2 ou não
def test2(x):
if x == 2:
print "Yeah bro, that's tottaly a two"
else:
print "Nope, that is not a two. That is a (x)"
Mas não reconhece o último (x)
como o valor inserido, e imprime exatamente: "(x)" (a letra com os parênteses). Para que funcione, tenho de escrever:
print "Nope, that is not a two. That is a"; print (x)
E se, por exemplo, eu digitar test2(3)
isso dá:
Não, isso não é um dois, isso é um 3
Portanto, ou eu preciso fazer Python reconhecer meu (x) dentro de uma linha de impressão como o número; ou imprimir duas coisas separadas, mas na mesma linha. Obrigado antecipadamente e peço desculpa por uma pergunta tão estúpida.
NOTA IMPORTANTE: Estou a usar **versão 2.5.4***
Outra nota: Se eu colocar print "Thing" , print "Thing2"
it says "Syntax error" na 2ª impressão.
Em **Python 3.x***, você pode utilizar o argumento end
para a função print()
para evitar que um caractere de nova linha seja impresso:
print("Nope, that is not a two. That is a", end="")
Em **Python 2.x***, você pode usar uma vírgula de rastreamento:
print "this should be",
print "on the same line"
Mas você não'não precisa disto para simplesmente imprimir uma variável:
print "Nope, that is not a two. That is a", x
Note que a vírgula de trailing ainda resulta em um espaço sendo impresso no final da linha, ou seja, it's equivalente a utilizar end=" "
em Python 3. Para suprimir o caractere de espaço também, você pode usar
from __future__ import print_function
para obter acesso à função de impressão Python 3 ou utilizar sys.stdout.write()
.
Você simplesmente precisa de fazer:
print 'lakjdfljsdf', # trailing comma
No entanto, dentro:
print 'lkajdlfjasd', 'ljkadfljasf'
Há espaço em branco implícito (i.e. ' '
).
Você também tem a opção de:
import sys
sys.stdout.write('some data here without a new line')
Utilize uma vírgula para evitar que uma nova linha seja apresentada:
print "this should be"; print "on the same line"
Deve ser:
print "this should be", "on the same line"
Além disso, você pode simplesmente anexar a variável que está sendo passada ao final da string desejada:
print "Nope, that is not a two. That is a", x
Você também pode usar:
print "Nope, that is not a two. That is a %d" % x #assuming x is always an int
Você pode acessar documentação adicional sobre formatação de strings utilizando o operador %
(modulo).