Python - Ayuda por favor que los import modulos

 
Vista:
sin imagen de perfil
Val: 34
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por diego (19 intervenciones) el 27/04/2020 14:02:52
tengo este archivo:
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
import pickle
identificador=[]
suelo=[]
tamanoParcela = 0
respuesta = 'si'
identificadorParcela=[]
sueloCultivo=[]
tamanoCultivo = 0
tamanoCultivoA=[]
tipoSuelo= None
sueloCulti=None
def plots_parcelas():
    tipo=input('introduce el identificador de la parcela, por favor: ')
    if tipo in identificador:
 
        print('la parcela ya existe')
        tipo=input('introduce el identificador de la parcela, por favor')
    else:
 
 
        print('la parcela no está registrada, lo registraremos')
        identificador.append(tipo)
        print(f'el identificador de la parcela es: {tipo}')
 
def tipo_suelo():
    global tipoSuelo
    tipoSuelo= input('introduce el tipo de suelo: A, B, C, D, E : ' )
    if tipoSuelo in suelo:
        print('El cultivo ya existe')
        tipoSuelo=input('introduce otro tipo de suelo, por favor: ')
 
    else:
        print('el suelo no está registrado, lo registraremos')
        suelo.append(tipoSuelo)
        print(f'el tipo de suelo de la parcela es: {tipoSuelo}')
 
 
def hectareas():
    print(f'el suelo elgido es {tipoSuelo}')
    while(True):
        try:
            global tamanoParcela
            tamanoParcela = float(input('Introduzca el tamaño en hectareas: '))
            return tamanoParcela
            print(f'el tamaño de la parcela {tipoSuelo} de los huevos es: {tamanoParcela}')
            tamanoParcela+=tamanoParcela
 
            break#debemos interrumpir la iteración si todo ha salido bien
 
        except:
            print('ha ocurrido introduce un número')
 
def cultivos():
 
 
        tipo = input('introduce el identificador del cultivo, por favor, (ALFANUMÉRICO): ')
        if tipo.isalnum():
 
             print('Correcto has introducido un dato alfanumérico')
 
        if tipo in identificadorParcela:
 
 
            print('El identificador del cultivo  ya existe')
            tipo = input('introduce el identificador del cultivo, por favor')
 
        else:
            print('el cultivo no existe, lo registraremos')
            identificadorParcela.append(tipo)
            print(f'el identificador de la parcela es: {tipo}')
def suelo_cultivo():
    global sueloCulti
    sueloCulti = input('introduce el tipo de suelo: A, B, C, D, E : ')
    sueloCulti =sueloCulti.lower()
 
 
    if sueloCulti in sueloCultivo:
 
 
            print('El identificador del cultivo  ya existe')
            sueloCulti = input('introduce el identificador del cultivo, por favor')
            return sueloCulti
 
    else:
            print('el cultivo no existe, lo registraremos')
            sueloCultivo.append(sueloCulti)
            print(f'el identificador de la parcela es: {sueloCulti}')
 
 
 
    print(f'el tipo de suelo del cultivo es: {sueloCulti}')
 
    global tamanoCultivo
    tamanoCultivo = float(input('Introduzca el tamaño en hectareas del cultivo: '))
    if sueloCulti=="a":
     tamanoCultivoA.append(tamanoCultivo)
 
    print(f'el tamaño del cultivo {sueloCulti} es: {tamanoCultivo}')
 
    if tamanoCultivo > tamanoParcela:
            print("el tamaño del cultivo no puede ser mayor al tamaño de la parcela")
            tamanoCultivo = float(input('Introduzca el tamaño en hectareas: '))
 
            print(f'el tamaño de la parcela es: {tamanoCultivo}')
 
 
def mostrar():
    suelo_cultivo()
    print(f'carajo de suelo: {suelo}')
    print(f'el tamaño de la parcerla es: {tamanoParcela}')
    print(f'el tamaño del cultivo a de los huevos es. {tamanoCultivoA}' )
def width():
    print(f'el tamaño del cultivo es: {tamanoCultivo}')
    print(f'los suelos cultivos elegidos son: {sueloCultivo}')
def tiempoCultivo():
        tiempo = int(input('Digite el números de días: '))
def transformarSuelo():
    transformar= input('¿desea transformar suelo : (si/no) ')
    if transformar == 'si':
        suelo_cultivo()
        tiempoCultivo()
print(f'los suelos cultivos elegidos son: {sueloCultivo}')
mostrar()
suelo_cultivo()
 
"""  def importar():
    print(f'el tamaño del cultivo a de los huevos es. {tamanoCultivoA}' )
    fichero = open('parcelas2.py.pckl','wb')
# Escribe la colección en el fichero
    pickle.dump( tamanoCultivoA, fichero)
    fichero.close()
importar()   """
""" plots_parcelas()
tipo_suelo()
hectareas()  """
 
# cultivos()
 
""" width()
transformarSuelo() """
 
 
# Escribe la colección en el fichero
 
 
 
while respuesta != "no":
    respuesta= input('Deseas seguir añadiendo Parcela:? (si/no) ')
    respuesta =respuesta.lower()
    if respuesta=='no':
        from menu import menu
    else:
 
        plots_parcelas()
        tipo_suelo()
        hectareas()
        mostrar()
        cultivos()


y quiero sacar los resultados en un nuevo archivo:

1
2
3
4
5
6
7
8
import parcelas2
 
 
parcelas2.mostrar()
 
print(f'carajo de suelo: {suelo}')
print(f'el tamaño de la parcerla es: {tamanoParcela}')
print(f'el tamaño del cultivo a de los huevos es. {tamanoCultivoA}' )

pero no me reconoce las variables, sabéis porque?:
Perdón y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por tincopasan (1082 intervenciones) el 27/04/2020 15:36:27
hola:
así como has puesto el código , duele leerlo.
por lo que se ve, la función mostrar no devuelve nada, así no hay forma de usar las variables
mínimo deberías agregar en la función un return y las variables que te interesen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por diego (19 intervenciones) el 27/04/2020 17:58:27
subo los scripts para que no duelan los ojos.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por tincopasan (1082 intervenciones) el 27/04/2020 22:06:03
en realidad el dolor no es por la indentación en sí, sino por la lógica y desarrollo, pero bueno. Voy a poner un ejemplo reducido para que compares con esos códigos:

supongamos que este es parcelas2py

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
#-*- coding: utf -8 -*-
suelo=[]
 
tamanoParcela = 0
tamanoCultivo = 0
tamanoCultivoA=[]
 
def tipo_suelo():
     tipoSuelo= input('introduce el tipo de suelo: A, B, C, D, E : ' )
     suelo.append(tipoSuelo)
 
def hectareas():
     global tamanoParcela
     Parcela = float(input('Introduzca el tamaño en hectareas: '))
     tamanoParcela += Parcela
 
def cultivos():
     tamanoCultivo = float(input('Introduzca el tamaño en hectareas del cultivo: '))
     tamanoCultivoA.append(tamanoCultivo)
 
def suelo_cultivo():
     tipo_suelo()
     hectareas()
     cultivos()
 
def mostrar():
     print(f'carajo de suelo: {suelo}')
     print(f'el tamaño de la parcela es: {tamanoParcela}')
     print(f'el tamaño del cultivo a de los huevos es. {tamanoCultivoA}' )
.

y ahora este es el archivo que lo llama:

1
2
3
4
5
6
7
8
9
10
11
12
#-*- coding: utf -8 -*-
import parcelas2
 
parcelas2.suelo_cultivo()
 
suelo = parcelas2.suelo
tamanoParcela = parcelas2.tamanoParcela
tamanoCultivoA = parcelas2.tamanoCultivoA
 
print(f'carajo de suelo: {suelo}')
print(f'el tamaño de la parcerla es: {tamanoParcela}')
print(f'el tamaño del cultivo a de los huevos es. {tamanoCultivoA}' )

Hay muchos errores y omisiones, deberías revisarlo y organizarlo.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 34
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por diego (19 intervenciones) el 28/04/2020 06:54:05
Ante todo muchas gracias, pero mi cuestión es la siguiente, se puede mostrar por pantalla el resultado final sin tener que hacer ninguna tipo de pregunta:
introduce el tipo de suelo: A, B, C, D, E : (por ejemplo), una vez almacenados los datos en variable presentar en otro archivo el resultado.
Gracias eternas y perdón si le he molestado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por tincopasan (1082 intervenciones) el 28/04/2020 23:26:13
hace una cosa, cambia los valores de las variables del primer archivo(parcelas) de forma manual o sea tamanoparecela = 150
comentá en el segundo archivo #parcelas2.suelo_cultivo() y fijate el resultado.
El problema me parece es que estás copiando y pegando sin entender lo básico del uso de módulos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por diego (19 intervenciones) el 29/04/2020 07:53:52
si eso ya lo sabía. y sale perfecto el valor de la variable,
si pongo un valor constante (a=25) me muestra el valor de la variable , perfecto.
1
2
3
4
def hectareas():
     global tamanoParcela
     Parcela = float(input('Introduzca el tamaño en hectareas: '))
     tamanoParcela += Parcela
¿porque no me guarda el valor de tamaño parcela?
En el ejemplo que tu pusiste tambien pregunta el tamaño de la parcela.
Yo necesito almacenar esa variable para poder mostrarla en otro archivo pero sin volver a preguntar por ese valor.
gracias y perdona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda por favor que los import modulos

Publicado por diego (19 intervenciones) el 29/04/2020 11:51:38
Gracias de antemano ayudame hombre, el que ayuda a otro que no sabe se hace mejor persona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar