
AYUDA CON PROBLEMA EN PYTHON
Publicado por zapat (1 intervención) el 20/03/2017 03:52:36
Buenas. Necesito que alguien me de el código correcto que retorne la salida que pide el ejercicio en python que está en el pdf del archivo rar adjunto en este mensaje. Muchas gracias de antemano. el código actual que he hecho es este:
Lo que necesito como salida es imprimir una línea que contenga el número entero que representa el número de veces que aparece la palabra que más se repite en la sopa de letras (matriz).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
N=int(raw_input("Introduzca el numero de filas: "))
M=int(raw_input("Introduzca el numero de columnas: "))
if N >= 1 and M <= 100:
matriz = []
for i in range(N):
matriz.append([0]*M)
for f in range(N):
for c in range(M):
matriz[f][c] = str(raw_input("Ingrese una letra mayuscula en fila: %d, columna: %d: " % (f,c)))
while matriz[f][c] != "A" and matriz[f][c] != "B" and matriz[f][c] != "C" and matriz[f][c] != "D" and matriz[f][c] != "F" and matriz[f][c] != "G" and matriz[f][c] != "E" and matriz[f][c] != "H" and matriz[f][c] != "I" and matriz[f][c] != "J" and matriz[f][c] != "K" and matriz[f][c] != "L" and matriz[f][c] != "M" and matriz[f][c] != "N" and matriz[f][c] != "O" and matriz[f][c] != "P" and matriz[f][c] != "Q" and matriz[f][c] != "R" and matriz[f][c] != "S" and matriz[f][c] != "T" and matriz[f][c] != "U" and matriz[f][c] != "W" and matriz[f][c] != "X" and matriz[f][c] != "Y" and matriz[f][c] != "Z" and matriz[f][c] != "V":
print "DEBEN SER SOLO LETRAS MAYUSCULAS Y DE EN UNA EN UNA"
matriz[f][c] = str(raw_input("Ingrese una letra mayuscula en fila: %d, columna: %d: " % (f,c)))
for k in matriz:
for j in k:
print (j),
K = int(raw_input("Ingrese cantidad de palabras a buscar: "))
a=[]
def ContarLetras (cont):
cont = 0
for i in a[v]:
cont = cont + 1
return cont
if K >= 1 and K <= 1000:
for v in range(K):
palabra = a.append(str(raw_input("Introduzca palabra en mayuscula y de maximo 100 letras: ")))
aux = a[v].isupper()
aux2= ContarLetras(a[v])
if aux==True:
if aux2>=1 and aux2<=100:
print "Tus palabras a buscar son:"
for j in a:
print j
else:
print "LA PALABRA DEBE TENER MAXIMO 100 LETRAS y MINIMO UNA"
break
else:
print "LA PALABRA DEBE ESTAR COMPLETAMENTE EN MAYUSCULAS"
break
def verificando(op,i,j,matriz,a):
if ContarLetras(a)==1:
respuesta=True
return respuesta
else:
if (op==1):
i=i
j=j+1
elif (op==2):
i=i
j=j-1
elif (op==3):
i=i-1
j=j
elif (op==4):
i=i+1
j=j
elif (op==5):
i=i-1
j=j-1
elif (op==6):
i=i+1
j=j-1
elif (op==7):
i=i-1
j=j+1
elif (op==8):
i=i+1
j=j+1
else:
print "ERROR [+]"
try:
if matriz[i][j]==a[0]:
nueva=a[1:]
t=verificando(op,i,j,matriz,nueva)
if t==True:
return t
else:
respuesta=False
return respuesta
except:
respuesta=False
return respuesta
def Ocho_posibilidades(matriz,i,j,a):
posibles={1:"hacia la derecha", 2:"hacia la izquierda", 3:"hacia arriba", 4:"hacia abajo", 5:"en forma Diagonal Superior Izquierda", 6:"en forma Diagonal Inferior Izquierda", 7:"en forma Diagonal Superior Derecha", 8:"en forma Diagonal Inferior Derecha"}
nueva=a[1:]
for x in range(1,9):
veri=verificando(x,i,j,matriz,nueva)
if (veri==True):
return veri
def Posicion_inicial(buscando,matriz,N,M,):
contador = 0
for i in range(0,N):
for j in range(0,M):
if (buscando[0] == matriz[i][j]):
terminado=Ocho_posibilidades(matriz,i,j,buscando)
if (terminado==True):
contador = contador + 1
return contador
for x in a:
Posicion_inicial(x,matriz,N,M)
else:
print "La cantidad de palabras debe ser minimo 1 y maximo 1000"
else:
print "Numero de filas y/o columnas invalido"
print "N debe ser mayor o igual a 1 y M menor o igual a 100"
Lo que necesito como salida es imprimir una línea que contenga el número entero que representa el número de veces que aparece la palabra que más se repite en la sopa de letras (matriz).
- proy2.rar(128,0 KB)
Valora esta pregunta


0