[Python] carácteres y espacios

Iniciado por Meta, 26 Octubre 2010, 17:01 PM

0 Miembros y 2 Visitantes están viendo este tema.

Meta

Hola:

Ver ejercicio.

Código (python) [Seleccionar]
a = "Ten a tus amigos cerca, pero mas a tus enemigos."

for i in range(len(a)):
   print a[i]


He intentado y sigo con ello lo de detectar los espacios. Estaba curioseando si esto vale. ord(" ") o el chr(32). 32 decimal es Espacio según la tabla ASCII.

http://es.wikipedia.org/wiki/ASCII

He intentado así pero no, ya que sólo cuenta números y quiero espacio que hay en la cadena.
Código (python) [Seleccionar]
a = "Ten a tus amigos cerca, pero mas a tus enemigos."
contador = 0
for i in range(len(a)):
   print a[i]
   if chr(32) == i:
       contador+=1
   print contador


No me sale nada. ¿Alguna sugerencia?
Código (python) [Seleccionar]
a = "Ten a tus amigos cerca, pero mas a tus enemigos."
contador = 0
for i in range(len(a)):
   print a[i]
if chr(32) == range(len(a)):
   contador+=1
print contador


Lo que entiendo que tengo que hacer es, acumular en una variable += la cantidad de espacios que contenga esa cadena de carácteres.

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

criskapunk

Buenas Meta

En el primer codigo:

Código (python) [Seleccionar]
for i in range(len(a)):
    print a[i]


Esto creo que hace lo mismo :P

Código (python) [Seleccionar]
for i in a:
    print i


Podes hacer algo asi:

Código (python) [Seleccionar]
a = "Ten a tus amigos cerca, pero mas a tus enemigos."
j = 0
for i in a:
    if chr(32) == i:
        j += 1
print j


Un saludo ;)

xassiz~

Código (python) [Seleccionar]
#!/usr/bin/env python

cadena = "Ten a tus amigos cerca, pero mas a tus enemigos."

print cadena.count(' ')

Meta

Me funciona y lo entiendo el ejercicio de arriba, muchísimas gracias.  ;-)

Ahora hay que hacer que cuente las mayúsculas.

Código (python) [Seleccionar]
c = "LA muerte esta tAn sEgUra DE su victoria, que noS Da toDA una vida de ventajas."
c = 0
for i in cad:
    if cad.upper() == i:
        c += 1
print c


Que sepa el upper.() detecta las mayúsculas, perdón, las pasa de minúsculas a mayúsculas. Será por eso que no me funciona. Así que lo hago de otra manera.

Código (python) [Seleccionar]

cadena = "LA muerte esta tAn sEgUra DE su victoria, que noS Da toDA una vida de ventajas."
c = 0
for i in cad:
    if  if (cadena >= "A" and cadena <= "Z") == i:
        c += 1
print c

No funciona, resultado es 0.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

xassiz~

Te pongo dos formas:
Código (python) [Seleccionar]
#!/usr/bin/env python

cadena = "LA muerte esta tAn sEgUra DE su victoria, que noS Da toDA una vida de ventajas."

for i in cadena.replace(' ',''):
    if i == i.upper():
        print "%c - mayuscula" % i
    else:
        print "%c - minuscula" %i


Código (python) [Seleccionar]
#!/usr/bin/env python

cadena = "LA muerte esta tAn sEgUra DE su victoria, que noS Da toDA una vida de ventajas."

for i in cadena.replace(' ',''):
if i.isupper():
print "%c - mayuscula" % i
else:
print "%c - minuscula" % i


Mola, hacía tiempo que no programaba en python ;D

Meta

¿Qué significa el %C?

Tengo entendido que el %d, decimal, el %f pare coma flotante, el %s se que está pero no me acuerdo y el %c no tengo idea.

Hay instrucciones que has puesto que no debo usar ya que aún no he llegado con el libro, estoy en l apágina 152, ejercicio 160).

Ver libro.

Sigo intentando de mi manera.
Código (python) [Seleccionar]
cad = "LA muerte esta tAn sEgUra DE su victoria, que noS Da toDA una vida de ventajas."
c = 0
for i in cadena:
    if (ord("A") or ord("Z")) == i:
        c += 1
print c
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

xassiz~

%c es char (carácter).

Tu manera está mal, porque declaras "cad" y utilizas "cadena". Pero sigue siendo érronea la lógica.


Mira mi primer código, no decías que podías usar upper() ?

Meta

Si, pero el tuyo dice: isupper(), no upper().

Si funciona.

Está muy bueno tu ejemplo, como resultado da esto:
L - mayuscula
A - mayuscula
m - minuscula
u - minuscula
e - minuscula
r - minuscula
t - minuscula
e - minuscula
e - minuscula
s - minuscula
t - minuscula
a - minuscula
t - minuscula
A - mayuscula
n - minuscula
s - minuscula
E - mayuscula
g - minuscula
U - mayuscula
r - minuscula
a - minuscula
D - mayuscula
E - mayuscula
s - minuscula
u - minuscula
v - minuscula
i - minuscula
c - minuscula
t - minuscula
o - minuscula
r - minuscula
i - minuscula
a - minuscula
, - mayuscula
q - minuscula
u - minuscula
e - minuscula
n - minuscula
o - minuscula
S - mayuscula
D - mayuscula
a - minuscula
t - minuscula
o - minuscula
D - mayuscula
A - mayuscula
u - minuscula
n - minuscula
a - minuscula
v - minuscula
i - minuscula
d - minuscula
a - minuscula
d - minuscula
e - minuscula
v - minuscula
e - minuscula
n - minuscula
t - minuscula
a - minuscula
j - minuscula
a - minuscula
s - minuscula
. - mayuscula


Lo que pide es la cantidad en números las mayúsculas que hay. En este caso debe mostrar en pantalla 11.

Tu código lo guardo que es interesante, pero debo hacer lo que me piden.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Shell Root

WAIT MOMENT, XD. Aquí se te dan posibles soluciones, en algunos casos ejemplos, ahora te toca implementarlo a tus necesidades.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Meta

Eso hago pero no me sale.

Código (python) [Seleccionar]
cadena = "LA muerte esta tAn sEgUra DE su victoria, que noS Da toDA una vida de ventajas."
contador = 0
for i in cadena:
    if (ord("A") or ord("Z")) == i:
        contador += 1
print contador
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/