Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Meta

#1371
Scripting / Re: [Python] Las constante K.
29 Octubre 2010, 16:49 PM
Ammmm, al final hay una razón.
Gracias por decirlo para entenderlo. Gracias de nuevo por su tiempo a tod@s.
#1372
Scripting / Re: [Python] Las constante K.
29 Octubre 2010, 16:36 PM


Es verdad, y complicándome las neuronas por mi fallo. Disculpe ustedes.

Viendo el código otra vez.
Código (python) [Seleccionar]
s = raw_input("Ingrese una cadena: ")
k = int(raw_input("Ingrese el valor de k: "))
j = 0

for c in s:
    if (ord(c) >= 65 and ord(c) <= 90) or (ord(c) >= 97 and ord(c) <= 122):
        j += 1
    else:
        if k == j:
            print "La cadena tiene por lo menos una palabra de ", k, " letras"
            break


CitarIngrese una cadena: Una imagen vale mas que mil palabras.
Ingrese el valor de k: 3
La cadena tiene por lo menos una palabra de  3  letras

Hay 4 palabras de 3 letras y son: Una, mas, que y mil.

Este otro código está bien.
CitarIngresa frase: Una imagen vale mas que mil palabras
Ingresa numero de caracteres: 3
Hay 4 palabras con 3 letras
#1373
Scripting / Re: [Python] Las constante K.
29 Octubre 2010, 16:11 PM
Este código:
Código (python) [Seleccionar]
p = raw_input('Ingresa frase: ')
n = input('Ingresa numero de caracteres: ')
counter = 0
for i in p.split(' '):
   if len(i)==n:
       counter+=1

print'Hay %i palabras con %i letras' % (counter,n)

CitarIngresa frase: Una imagen vale mas que mil palabras
Ingresa numero de caracteres: 3
Hay 4 palabras con 3 letras
No es el que pide en el ejercicio. Funciona bien pero no es el que pide.

Para que se hagan una idea, hay que introducir una cadena y después k = 3 por poner un ejemplo.

Lo que hace es que si k = 3, sólo muestra en pantalla palabras que tienen 3 letras.



Gracias su tiempo.
#1374
Scripting / Re: [Python] Las constante K.
29 Octubre 2010, 15:47 PM
Muy buenas:

http://docs.python.org/library/stdtypes.html#str.split

Lo había hecho con C# buscando info por ahí y es así, pero se me adelantaron.
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace letras
{
   class Program
   {
       static void Main(string[] args)
       {
           while (true)
           {
           Console.Title = "Hola";
           Console.WriteLine("Introduce una frase:");
           string cadena = Convert.ToString(Console.ReadLine());
           Console.WriteLine("Introduce una constante k:");
           int k = Convert.ToInt32(Console.ReadLine());

           foreach (string palabra in cadena.Split(" ".ToCharArray()))
           {
               if (palabra.Length == k)
               {
                   Console.WriteLine(palabra);
               }
           }

           Console.ReadKey(); // Retener la pantalla.
           }
       }
   }
}


Tu código no me da resultado.
Código (python,11) [Seleccionar]
s = raw_input("Ingrese una cadena: ")
k = int(raw_input("Ingrese el valor de k: "))
j = 0

for c in s:
   if (ord(c) >= 65 and ord(c) <= 90) or (ord(c) >= 97 and ord(c) <= 122):
       j += 1
   else:
       if k == j:
           print "La cadena tiene por lo menos una palabra de ", k, " letras"
           break

No me muestra nada en pantalla.

De
Edito:
No hay que poner Break o si no no funciona. Vi tu código y no es lo que pide. Pide algo como esto.
#1375
Scripting / Re: [Python] Las constante K.
28 Octubre 2010, 22:58 PM
Cita de: criska en 28 Octubre 2010, 22:26 PM
En las etiquetas de Python pones una , y el numero de linea a resaltar.

[*code=python,2][*/code]

Muestra:

Código (python,4) [Seleccionar]

print "Prueba"
print "Prueba"
print "Prueba"
print "Prueba"


Ya entiendo, muchas gracias. Puse el ,4.

Con este ejercicio sigo en con la curiosidad de como detectar cuando tiene 3 letras.

Sigo intentando como detectar la k si vale 3 al introducirla y que te muestre sólo palabras de 3 letras.

Código (python,2,12,13) [Seleccionar]
cadena = raw_input('Escribe una frase: ')
k = int(raw_input('Introduces un número para la constante K: '))

while cadena != '':
   cambios = 0
   anterior = ' '
   for caracter in cadena:
       if caracter == ' ' and anterior != ' ':
           cambios += 1
       anterior = caracter

   if cambios == k:
       print cambios [cadena]
       
   if cadena[-1] == ' ':
       cambios = cambios - 1

   palabras = cambios + 1
   print 'Palabras:', palabras
   print 'Cambios', cambios
   print 'Caracter', caracter
   print 'Cadena', cadena

   cadena = raw_input('Escribe una frase: ')


Otro intento raro.
Código (python) [Seleccionar]
cadena = raw_input('Escribe una frase: ')
k = int(raw_input('Introduces un número para la constante K: '))

while cadena != '':
   cambios = 0
   anterior = ' '
   for caracter in cadena:
       if caracter == ' ' and anterior != ' ':
           cambios += 1
       anterior = caracter

   if cadena[-k] >= 0:
       cambios = cambios - k
       
#    if cadena[-1] == ' ':
#        cambios = cambios - 1

   palabras = cambios + 1
   print 'Palabras:', palabras
   print 'Cambios', cambios
   print 'Caracter', caracter
   print 'Cadena', cadena

   cadena = raw_input('Escribe una frase: ')









Edito:

Este ejercicio se me resiste.

Voy a ponerlo más fácil.
Código (python) [Seleccionar]
cadena = raw_input('Escribe una frase: ')
while cadena != '':
   blancos = 0
   for caracter in cadena:
       if blancos == ' ':
           blancos += 1
   palabras =blancos + 1 # Hay una palabra mas que blancos.
   print 'Palabra:', palabras

   cadena = raw_input('Escribe una frase: ')


Aquí claramente detecta los espacios en blanco. pero quiero que detecte la K = 3 como pide el enunciado que puedes ver aquí.

Debe haber una manera de detectar tres palabas en una cadena.

Lo que supuestamente hay que hacer.
- Introduce una cadena. Ejemplo: Vale mas una iamgen que mil palabras.
- Intoduce una constante k. Ejemplo. 3.
- Con un bucle for lee cadena "Vale mas una iamgen que mil palabras".
- Comprueba si por cada palabra tiene el valor de la constante k que en este caso es 3. (Aquí ya no se como hacerlo).
...
...
#1376
Scripting / Re: [Python] Las constante K.
28 Octubre 2010, 22:02 PM


Por lo que entiendo if caracter es igual a espacio y anterior es distinto a espacio, si se cumple, cambios += 1, en caso de no cumplirse salta a anterior = caracter.

PD: ¿Cómo marcas ese color en las líneas de código?
#1377
Scripting / Re: [Python] Las constante K.
28 Octubre 2010, 20:34 PM
Haciéndola de esta menera:

Código (python) [Seleccionar]
cadena = raw_input('Escribe una frase: ')
while cadena != '':
    cambios = 0
    anterior = ' '
    for caracter in cadena:
        if caracter == ' ' and anterior != ' ':
            cambios += 1
        anterior = caracter

    if cadena[-1] == ' ':
        cambios = cambios - 1

    palabras = cambios + 1
    print 'Palabras:', palabras
    print 'Cambios',cambios
    print 'Caracter',caracter
    print 'Cadena',cadena


    cadena = raw_input('Escribe una frase: ')


Su resultado es este:
CitarEscribe una frase: Una imagen vale mas que mil palabras
Palabras: 7
Cambios 6
Caracter s
Cadena Una imagen vale mas que mil palabras
#1378
Scripting / Re: [Python] Las constante K.
28 Octubre 2010, 18:22 PM
Con este código sacado del libro.

Código (python) [Seleccionar]
cadena = raw_input('Escribe una frase: ')
while cadena != '':
   cambios = 0
   anterior = ' '
   for i in cadena:
       if caracter == ' ' and caracter != ' ':
           cambios + 1
       anterior = caracter

   if cadena[-1] == ' ':
       cambios = cambios - 1

   palabras = cambios + 1
   print 'Palabras:', palabras, 'palabras y', i, 'carácteres.'
   print 'cambios', cambios


   cadena = raw_input('Escribe una frase: ')


Me da este error.
CitarTraceback (most recent call last):
 File "/home/simi/NetBeansProjects/simi/src/simi.py", line 25, in <module>
   if caracter == ' ' and caracter != ' ':
NameError: name 'caracter' is not defined

Edito:
Ya encontré el error.
Código (python) [Seleccionar]
cadena = raw_input('Escribe una frase: ')
while cadena != '':
    cambios = 0
    anterior = ' '
    for caracter in cadena:
        if caracter == ' ' and anterior != ' ':
            cambios += 1
        anterior = caracter

    if cadena[-1] == ' ':
        cambios = cambios - 1

    palabras = cambios + 1
    print 'Palabras:', palabras


Estoy traquiniando de como detectar los 3 primeros (k) caracter y espacio para que se quede con él.
#1379
Scripting / Re: [Python] Las constante K.
28 Octubre 2010, 16:39 PM
Ya te endiendo. Deja ver com me expreso lo que me cuentas.

Si en este cadena:
Citarcadena = "Una imagen vale mas que mil palabras"
Debo detectar de alguna manera que una palabra que contenga (k) 3 letras y algún espacio por medio para que las detecte. ¿Te refieres a eso? Parece que si.

Parece que hay que hacer algo, por ejemplo que detecte las tres primeras letras y cuando detecte un espacio o una coma o un punto te lo guarda y lo presenta con print.

Ejemplo:
cadena = "Una imagen vale mas que mil palabras"
- Si recorre una cadena "cadena" y detecta tres letras (k) y un espacio.
- Muestra k
-En caso contrario lo ignora su es mayor o menor.

¿Es algo así?

Sigo investigando...
#1380
Scripting / [Python] Las constante K.
28 Octubre 2010, 15:18 PM
Hola:

Viendo este ejercicio.
Ver ejercicio

No se si he interpretado bien lo que me pide y siguiendo los ejemplos del PDF he modificado este código.

Código (python) [Seleccionar]
cadena = raw_input('Escribe una frase: ')
while cadena != '':
    cambios = 0
    for i in range(1, len(cadena)):
        if cadena[i] == ' ' and cadena[i-1] != ' ':
            cambios = cambios + 1

    if cadena[-1] == ' ':
        cambios = cambios - 1

    palabras = cambios + 1
    print 'Palabras:', palabras, 'palabras y', i, 'carácteres.'

    cadena = raw_input('Escribe una frase: ')


Su resultado es este.
CitarEscribe una frase: Vale más una imagen, que mil palabras.
Palabras: 7 palabras y 38 carácteres.
Escribe una frase:

¿Qué opinas?

;)