Hola:
Ver ejercicio. (http://www.subeimagenes.com/img/sin-titulo-1-5486.jpg)
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.
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?
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.
Buenas Meta
En el primer codigo:
for i in range(len(a)):
print a[i]
Esto creo que hace lo mismo :P
for i in a:
print i
Podes hacer algo asi:
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 ;)
#!/usr/bin/env python
cadena = "Ten a tus amigos cerca, pero mas a tus enemigos."
print cadena.count(' ')
Me funciona y lo entiendo el ejercicio de arriba, muchísimas gracias. ;-)
Ahora hay que hacer que cuente las mayúsculas.
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.
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.
Te pongo dos formas:
#!/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
#!/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
¿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. (http://marmota.act.uji.es/mtp/pdf/python.pdf)
Sigo intentando de mi manera.
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
%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() ?
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.
WAIT MOMENT, XD. Aquí se te dan posibles soluciones, en algunos casos ejemplos, ahora te toca implementarlo a tus necesidades.
Eso hago pero no me sale.
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
Pues,
#!/usr/bin/env python
cadena = "LA muerte esta tAn sEgUra DE su victoria, que noS Da toDA una vida de ventajas."
sContador = 0
for i in cadena.replace(' ',''):
if i.isupper():
sContador += 1
print sContador
Eso lo he entendido, lo que no debo usar algo que aún no te enseña el PDF por ahora como el .replace. jejejeje. Por eso estoy maschuqueándome las neuronas por ello.
Gracias.
Cita de: Meta en 26 Octubre 2010, 18:41 PM
Si, pero el tuyo dice: isupper(), no upper().
Mi primer código dice
upper() no
isupper().
Cita de: Meta en 26 Octubre 2010, 18:41 PM
Lo que pide es la cantidad en números las mayúsculas que hay. En este caso debe mostrar en pantalla 11.
Ponle un contador ahora y listo.
Cita de: Meta en 26 Octubre 2010, 18:54 PM
Eso lo he entendido, lo que no debo usar algo que aún no te enseña el PDF por ahora como el .replace. jejejeje. Por eso estoy maschuqueándome las neuronas por ello.
Lo puse para eliminar espacios, ya que tambien los tomaba
isupper().
Otra forma :P
s = "A los Genios sE les PerDonan muChas coSas. Despues de su EjecUcion"
c = 0
for i in s:
if ord(i) >= 65 and ord(i) <= 90:
c+=1
print c
Un saludo
Cita de: criska en 26 Octubre 2010, 19:06 PM
Otra forma :P
s = "A los Genios sE les PerDonan muChas coSas. Despues de su EjecUcion"
c = 0
for i in s:
if ord(i) >= 65 and ord(i) <= 90:
c+=1
print c
Un saludo
Muchas gracias. ;-)
Estaba ahora intentando hacer lo que dice abajo.
Citar# Haz programa que lea una cadena y visualice en
# pantalla el mensaje "Contiene dígito" si contiene algún
# dígito y "No contiene dígito" en caso contrario.
Hice esto y me da error.
cadena = "gfl 65476 vkhvfdiyu548 gh54ycg54 g5"
for i in cadena:
if chr(i) >= 48 and chr(i) <= 57:
print "%d - Contiene dígito." % i
else:
print "%d - No contiene dígito." % i
CitarTraceback (most recent call last):
File "/home/user/NetBeansProjects/sic/src/sic.py", line 31, in <module>
if chr(i) >= 48 and chr(i) <= 57:
TypeError: an integer is required
ord() no chr()
Verdad.
cadena = "gfl 65476 vkhvfdiyu548 gh54ycg54 g5"
for i in cadena:
if ord(i) >= 48 and ord(i) <= 57:
print "%d - Contiene dígito." % i
else:
print "%d - No contiene dígito." % i
CitarFile "/home/user/NetBeansProjects/t/src/t.py", line 34, in <module>
print "%d - No contiene dígito." % i
TypeError: %d format: a number is required, not str
Cambia estas lineas
print "%d - Contiene dígito." % i
print "%d - No contiene dígito." % i
Por
print "%c - Contiene dígito." % i
print "%c - No contiene dígito." % i
Un saludo ;)
Ahora si. Muchas gracias.