elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] Las constante K.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Las constante K.  (Leído 8,536 veces)
Meta


Desconectado Desconectado

Mensajes: 3.146



Ver Perfil WWW
Re: [Python] Las constante K.
« Respuesta #10 en: 28 Octubre 2010, 22:58 »

En las etiquetas de Python pones una , y el numero de linea a resaltar.

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

Muestra:

Código
  1. print "Prueba"
  2. print "Prueba"
  3. print "Prueba"
  4. print "Prueba"
  5.  

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
  1. cadena = raw_input('Escribe una frase: ')
  2. k = int(raw_input('Introduces un número para la constante K: '))
  3.  
  4. while cadena != '':
  5.    cambios = 0
  6.    anterior = ' '
  7.    for caracter in cadena:
  8.        if caracter == ' ' and anterior != ' ':
  9.            cambios += 1
  10.        anterior = caracter
  11.  
  12.    if cambios == k:
  13.        print cambios [cadena]
  14.  
  15.    if cadena[-1] == ' ':
  16.        cambios = cambios - 1
  17.  
  18.    palabras = cambios + 1
  19.    print 'Palabras:', palabras
  20.    print 'Cambios', cambios
  21.    print 'Caracter', caracter
  22.    print 'Cadena', cadena
  23.  
  24.    cadena = raw_input('Escribe una frase: ')

Otro intento raro.
Código
  1. cadena = raw_input('Escribe una frase: ')
  2. k = int(raw_input('Introduces un número para la constante K: '))
  3.  
  4. while cadena != '':
  5.    cambios = 0
  6.    anterior = ' '
  7.    for caracter in cadena:
  8.        if caracter == ' ' and anterior != ' ':
  9.            cambios += 1
  10.        anterior = caracter
  11.  
  12.    if cadena[-k] >= 0:
  13.        cambios = cambios - k
  14.  
  15. #    if cadena[-1] == ' ':
  16. #        cambios = cambios - 1
  17.  
  18.    palabras = cambios + 1
  19.    print 'Palabras:', palabras
  20.    print 'Cambios', cambios
  21.    print 'Caracter', caracter
  22.    print 'Cadena', cadena
  23.  
  24.    cadena = raw_input('Escribe una frase: ')








Edito:

Este ejercicio se me resiste.

Voy a ponerlo más fácil.
Código
  1. cadena = raw_input('Escribe una frase: ')
  2. while cadena != '':
  3.    blancos = 0
  4.    for caracter in cadena:
  5.        if blancos == ' ':
  6.            blancos += 1
  7.    palabras =blancos + 1 # Hay una palabra mas que blancos.
  8.    print 'Palabra:', palabras
  9.  
  10.    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).
...
...


« Última modificación: 29 Octubre 2010, 01:26 por Meta » En línea

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

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Python] Las constante K.
« Respuesta #11 en: 29 Octubre 2010, 13:48 »

Al fin se me ocurrio una manera de resolverlo :P Te lo dejo por si te sirve:

Código
  1. s = raw_input("Ingrese una cadena: ")
  2. k = int(raw_input("Ingrese el valor de k: "))
  3. j = 0
  4.  
  5. for c in s:
  6.    if (ord(c) >= 65 and ord(c) <= 90) or (ord(c) >= 97 and ord(c) <= 122):
  7.        j += 1
  8.    else:
  9.        if k == j:
  10.            print "La cadena tiene por lo menos una palabra de ", k, " letras"
  11.            break

Un saludo ;)



En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] Las constante K.
« Respuesta #12 en: 29 Octubre 2010, 13:57 »

Código
  1. p = raw_input('Ingresa frase: ')
  2. n = input('Ingresa numero de caracteres: ')
  3. counter = 0
  4. for i in p.split(' '):
  5.    if len(i)==n:
  6.        counter+=1
  7.  
  8. print'Hay %i palabras con %i letras' % (counter,n)
Se podría reemplazar los caractéres que no son letras, pero vaaaaa, es el método más corto :xD ... :P

Saludos
« Última modificación: 29 Octubre 2010, 13:58 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Meta


Desconectado Desconectado

Mensajes: 3.146



Ver Perfil WWW
Re: [Python] Las constante K.
« Respuesta #13 en: 29 Octubre 2010, 15:47 »

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
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace letras
  7. {
  8.    class Program
  9.    {
  10.        static void Main(string[] args)
  11.        {
  12.            while (true)
  13.            {
  14.            Console.Title = "Hola";
  15.            Console.WriteLine("Introduce una frase:");
  16.            string cadena = Convert.ToString(Console.ReadLine());
  17.            Console.WriteLine("Introduce una constante k:");
  18.            int k = Convert.ToInt32(Console.ReadLine());
  19.  
  20.            foreach (string palabra in cadena.Split(" ".ToCharArray()))
  21.            {
  22.                if (palabra.Length == k)
  23.                {
  24.                    Console.WriteLine(palabra);
  25.                }
  26.            }
  27.  
  28.            Console.ReadKey(); // Retener la pantalla.
  29.            }
  30.        }
  31.    }
  32. }

Tu código no me da resultado.
Código
  1. s = raw_input("Ingrese una cadena: ")
  2. k = int(raw_input("Ingrese el valor de k: "))
  3. j = 0
  4.  
  5. for c in s:
  6.    if (ord(c) >= 65 and ord(c) <= 90) or (ord(c) >= 97 and ord(c) <= 122):
  7.        j += 1
  8.    else:
  9.        if k == j:
  10.            print "La cadena tiene por lo menos una palabra de ", k, " letras"
  11.            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.
« Última modificación: 29 Octubre 2010, 16:07 por Meta » En línea

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

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Python] Las constante K.
« Respuesta #14 en: 29 Octubre 2010, 16:06 »

Lo ejecutaste haciendole doble click?
En línea

Meta


Desconectado Desconectado

Mensajes: 3.146



Ver Perfil WWW
Re: [Python] Las constante K.
« Respuesta #15 en: 29 Octubre 2010, 16:11 »

Este código:
Código
  1. p = raw_input('Ingresa frase: ')
  2. n = input('Ingresa numero de caracteres: ')
  3. counter = 0
  4. for i in p.split(' '):
  5.    if len(i)==n:
  6.        counter+=1
  7.  
  8. print'Hay %i palabras con %i letras' % (counter,n)
Citar
Ingresa 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.
En línea

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

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Python] Las constante K.
« Respuesta #16 en: 29 Octubre 2010, 16:15 »

Segun lo que entendi del enunciado, lo unico que hay que haces es informar si alguna de las palabras de la cadena tienen k cantidad de caracteres.

Un saludo ;)
En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] Las constante K.
« Respuesta #17 en: 29 Octubre 2010, 16:17 »

Yo creo que tu problema es de interpretación, donde dice que imprima las palabras? :xD

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Meta


Desconectado Desconectado

Mensajes: 3.146



Ver Perfil WWW
Re: [Python] Las constante K.
« Respuesta #18 en: 29 Octubre 2010, 16:36 »



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

Viendo el código otra vez.
Código
  1. s = raw_input("Ingrese una cadena: ")
  2. k = int(raw_input("Ingrese el valor de k: "))
  3. j = 0
  4.  
  5. for c in s:
  6.    if (ord(c) >= 65 and ord(c) <= 90) or (ord(c) >= 97 and ord(c) <= 122):
  7.        j += 1
  8.    else:
  9.        if k == j:
  10.            print "La cadena tiene por lo menos una palabra de ", k, " letras"
  11.            break

Citar
Ingrese 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.
Citar
Ingresa frase: Una imagen vale mas que mil palabras
Ingresa numero de caracteres: 3
Hay 4 palabras con 3 letras
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] Las constante K.
« Respuesta #19 en: 29 Octubre 2010, 16:43 »

Sip, igual dije además lo de los caracteres que no son letras porque si por ejemplo terminas la frase con punto, te lo cuenta como parte de la última palabra :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Declarar constante privada POO
Programación C/C++
RON06 2 3,378 Último mensaje 23 Abril 2011, 00:48
por RON06
Turbulación constante en la parte del CPU
Hardware
sora_ori 6 3,400 Último mensaje 5 Febrero 2012, 18:49
por Randomize
Cambio de link constante en wiki
Dudas Generales
maxpaynemax 0 434 Último mensaje 19 Abril 2013, 13:42
por maxpaynemax
iniciar constante
Java
mianrojime 5 1,541 Último mensaje 30 Agosto 2014, 14:52
por 0vatsug
Mi internet se cae muy constante
Redes
Xavier118 1 831 Último mensaje 11 Marzo 2018, 05:45
por Machacador
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines