UnKnowN Posted July 21, 2006 at 11:25 AM Report #39359 Posted July 21, 2006 at 11:25 AM ppl estou com a seguinte dúvida, posso escolher a posição que corresponde à respectiva letra com os methods .upper() e .lower() ? ou seja: >>> 'manuel'.upper(0) >>> 'Manuel' É possível fazer isto ? Desta forma já vi que não... mas doutra forma qq ...
M6 Posted July 21, 2006 at 01:07 PM Report #39379 Posted July 21, 2006 at 01:07 PM Sim é. O teu erro está no local onde aplicaste a selecção de caracteres: x = 'manuel' y = x[0:1].upper() + x[1:] print y 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."
UnKnowN Posted July 21, 2006 at 01:19 PM Author Report #39384 Posted July 21, 2006 at 01:19 PM Sim é. O teu erro está no local onde aplicaste a selecção de caracteres: x = 'manuel' y = x[0:1].upper() + x[1:] print y Pois, tbm tinha pensado numa forma de fazer sem ser assim, mas que fosse dar ao mesmo B) O que queria saber é se nao dá para usar só no method .upper() (ou .lower()) as posiçoes ocupadas pelas respectivas letras 😛 Deve haver não, senão para quê os "()" ? De qq das formas Obrigado pela ajuda M6, fiquei esclarecido usando esse "método pouco ortodoxo" (ou talvez o único mais simples possível) ?
M6 Posted July 21, 2006 at 01:50 PM Report #39399 Posted July 21, 2006 at 01:50 PM Não. Os parêntesis referem a invocação de um método, não tem obrigatoriamente de receber parâmetros e muito menos os parâmetros que tu queres... B) Se leres a documentação vais ver isso. 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."
PaLobo Posted July 21, 2006 at 02:12 PM Report #39400 Posted July 21, 2006 at 02:12 PM Oi poessoal, Não deveria ser possível fazer algo deste género: s = "manuel" s[0]=s[0].upper() Fazendo: >>> s = 'manuel' >>> s 'manuel' >>> s = s.upper() >>> s 'MANUEL' >>> funciona, mas o primeiro código dá erro... >>> s[0]=s[0].upper() Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: object does not support item assignment >>> O que se passa com isto? Estou a dizer algum disparate...? http://s4.bitefight.com.pt/c.php?uid=20666
UnKnowN Posted July 21, 2006 at 02:59 PM Author Report #39403 Posted July 21, 2006 at 02:59 PM Não. Os parêntesis referem a invocação de um método, não tem obrigatoriamente de receber parâmetros e muito menos os parâmetros que tu queres... B) Se leres a documentação vais ver isso. Ya got it 😛 Oi poessoal, Não deveria ser possível fazer algo deste género: s = "manuel" s[0]=s[0].upper() Fazendo: >>> s = 'manuel' >>> s 'manuel' >>> s = s.upper() >>> s 'MANUEL' >>> funciona, mas o primeiro código dá erro... >>> s[0]=s[0].upper() Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: object does not support item assignment >>> O que se passa com isto? Estou a dizer algum disparate...? O que se passa é que estas a dizer que uma coisa é o que não é lol, em Python isso nao pode acontecer... para isso acontecer tens de dar o "valor" s[0] a outra varavel sem que seja ela propria. Por exemplo: >>> s = 'manuel' >>> x = s[0].upper() >>> x 'M' Fiquem Bem, estou super esclarecido 😄
PaLobo Posted July 21, 2006 at 03:43 PM Report #39405 Posted July 21, 2006 at 03:43 PM Esquece... Eu estava a ser estupido por instantes. ? As strings são imutáveis logo não as podemos mudar depois de criadas (não tem a ver com o que disseste UnknowN). Daí ser necessário fazer como o M6 disse. s = 'manuel' #Aqui inicializei o s com a string manuel s = s.upper() #Aqui inicializei o s com uma string diferente. O resultado de s.upper() s[0]=s[0].upper() #Aqui estou a tentar mudar a string. Como é imutável, dá erro. http://s4.bitefight.com.pt/c.php?uid=20666
UnKnowN Posted July 21, 2006 at 04:22 PM Author Report #39408 Posted July 21, 2006 at 04:22 PM Esquece... Eu estava a ser estupido por instantes. ? As strings são imutáveis logo não as podemos mudar depois de criadas (não tem a ver com o que disseste UnknowN). Daí ser necessário fazer como o M6 disse. s = 'manuel' #Aqui inicializei o s com a string manuel s = s.upper() #Aqui inicializei o s com uma string diferente. O resultado de s.upper() s[0]=s[0].upper() #Aqui estou a tentar mudar a string. Como é imutável, dá erro. Ya é isso, no caso das strings o seu valor nao pode ser modificado, ao contrario do que acontece nas listas por exemplo B) >>> x = [3,2,3] >>> x[0] = 1 >>> x [1, 2, 3]
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