:)
Ver imagen. (http://www.subeimagenes.com/img/zoom-5962.jpg)
He intentado ordenas las palabras alfabéticamente, al darme cuenta, sólo lo hace por letra.
cadena = raw_input('Introduce palabra alfabética o no: ')
dato = ''
for caracter in cadena:
if (cadena >= 'A' and cadena <= 'Z') or (cadena >= 'a' and cadena <= 'z'):
print 'Es una palabra alfabética.'
else:
print 'No es una palabra alfabética.'
;)
Lo que deberías hacer es comparar la actual letra con la siguiente, si la actual es menor que la siguiente la palabra es alfabética si no no.
¿Cómo haces eso?
¿Todo el rato con if else o elif?
Sólo se me ocurre eso y me puedo pegar un pedazo de código enorme.
Qué tal algo así.
import sys
myString = raw_input('Introduce una palabra alfabetica: ')
charA = myString[0]
for charB in myString[1:]:
if charA > charB:
print "La palabra no es alfabetica"
sys.exit(1)
print "La palabra es alfabetica"
Perdón si está muy mal hecho, pero no soy programado en python.
Saludos.
Puede ser de esta forma:
#Python3
def isAlfab(palabra):
for x in range(len(palabra)):
if x>0:
if ord(palabra[x])<ord(palabra[x-1]):
return False
return True
while True:
palabra = input("Introduce: ")
if isAlfab(palabra):
print("si es una palabra alfabetica")
else:
print("no es una palabra alfabetica")
continuar = input("Desea continuar? s/cualquier otro: ")
if continuar.lower() != 's':
break
print("Saliendo del programa")
pero hay que probarlo...
¿Por qué pones un corchete y un 0 en el medio?
import sys
myString = raw_input('Introduce una palabra alfabetica: ')
charA = myString[0]
for charB in myString[1:]:
if charA > charB:
print "La palabra no es alfabetica"
sys.exit(1)
print "La palabra es alfabetica"
Aquí abajo no estiendo esta parte.
myString[1:]:
import sys
myString = raw_input('Introduce una palabra alfabetica: ')
charA = myString[0]
for charB in myString[1:]:
if charA > charB:
print "La palabra no es alfabetica"
sys.exit(1)
print "La palabra es alfabetica"
Porque los strings también son arrays/listas, así que el índice cero es el primer caracter.
[1:] es para indicar que se toman los caracteres que van desde el índice 1 hasta el último.
Digamos que es algo así:
Citarstring = Novlucker
string[0] = N
string[1:] = ovlucker
Saludos
Ok. Aún no he llegado la parte de usar listas. Ya decía yo que no lo conozco.
En el libro http://marmota.act.uji.es/mtp/pdf/python.pdf voy por la página 159.
Como no lo ha explicado aún, te pide en el ejercicio que uses Cadenes, no listas Lista es para más delante. ;)
Cita de: 43H4FH44H45H4CH49H56H45H en 3 Noviembre 2010, 08:12 AM
Puede ser de esta forma:
#Python3
def isAlfab(palabra):
for x in range(len(palabra)):
if x>0:
if ord(palabra[x])<ord(palabra[x-1]):
return False
return True
while True:
palabra = input("Introduce: ")
if isAlfab(palabra):
print("si es una palabra alfabetica")
else:
print("no es una palabra alfabetica")
continuar = input("Desea continuar? s/cualquier otro: ")
if continuar.lower() != 's':
break
print("Saliendo del programa")
pero hay que probarlo...
Lo he probado y adaptado al Python 2.6.
def isAlfab(palabra):
for x in range(len(palabra)):
if x>0:
if ord(palabra[x])<ord(palabra[x-1]):
return False
return True
while True:
palabra = raw_input("Introduce: ")
if isAlfab(palabra):
print("si es una palabra alfabetica")
else:
print("no es una palabra alfabetica")
continuar = raw_input("Desea continuar? s/cualquier otro: ")
if continuar.lower() != 's':
break
print "Saliendo del programa"
Es preferible hacerlo con un while en vez de preguntar si quiero continuar. Que siempre continúe.
Cita de: Meta en 3 Noviembre 2010, 10:13 AM
import sys
myString = raw_input('Introduce una palabra alfabetica: ')
charA = myString[0]
for charB in myString[1:]:
if charA > charB:
print "La palabra no es alfabetica"
sys.exit(1)
print "La palabra es alfabetica"
Probaste ese code? porque si introduzco una cadena como ABCDFA o abcdea me devuelve que es alfabetica :huh:
Cita de: Meta en 5 Noviembre 2010, 01:21 AM
Lo he probado y adaptado al Python 2.6.
def isAlfab(palabra):
for x in range(len(palabra)):
if x>0:
if ord(palabra[x])<ord(palabra[x-1]):
return False
return True
while True:
palabra = raw_input("Introduce: ")
if isAlfab(palabra):
print("si es una palabra alfabetica")
else:
print("no es una palabra alfabetica")
continuar = raw_input("Desea continuar? s/cualquier otro: ")
if continuar.lower() != 's':
break
print "Saliendo del programa"
Es preferible hacerlo con un while en vez de preguntar si quiero continuar. Que siempre continúe.
Lo probaste con varias cadenas para ver si funciona completamente :huh: porque solo probe un poco :o
Respecto al while, es por costumbre :P
Si funciona así.
def isAlfab(palabra):
for x in range(len(palabra)):
if x>0:
if ord(palabra[x])<ord(palabra[x-1]):
return False
return True
while True:
palabra = raw_input("Introduce: ")
if isAlfab(palabra):
print("si es una palabra alfabetica")
else:
print("no es una palabra alfabetica")
# continuar = raw_input("Desea continuar? s/cualquier otro: ")
# if continuar.lower() != 's':
# break
print "Saliendo del programa"
Citarntroduce: abcd
si es una palabra alfabetica
Introduce: abcdefghijk
si es una palabra alfabetica
Introduce: bacdefg
no es una palabra alfabetica
Introduce: amor
si es una palabra alfabetica
Introduce: chino
si es una palabra alfabetica
Introduce: himno
si es una palabra alfabetica
Introduce: loco
no es una palabra alfabetica
Introduce: ABCDEF
si es una palabra alfabetica
Introduce: LOCO
no es una palabra alfabetica
Introduce:
En el último print quitaste los paréntesis pero en los anteriores no :rolleyes:
Por que habría que quitarlos?
Saludos
Cita de: Novlucker en 5 Noviembre 2010, 14:39 PM
Por que habría que quitarlos?
Saludos
Porque dijo que lo adaptó a 2.6, y solo modificó el último :rolleyes:
Es que en el 2.6 también funciona con paréntesis :rolleyes: en realidad lo único que hizo fue cambiar los input por raw_input :xD
Saludos
Cita de: Novlucker en 5 Noviembre 2010, 15:32 PM
Es que en el 2.6 también funciona con paréntesis :rolleyes: en realidad lo único que hizo fue cambiar los input por raw_input :xD
Ah, pensaba que no, había leído esto (http://docs.python.org/release/3.0.1/whatsnew/3.0.html):
Citar
Old: print "The answer is", 2*2
New: print("The answer is", 2*2)
Y es la página oficial de python >.<