Python - Ayuda con error en script de Python

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

Ayuda con error en script de Python

Publicado por Sergio (11 intervenciones) el 07/08/2018 21:14:29
Hola, estoy comenzando a aprender con Python y estoy haciendo un script pero tengo errores y se supone que todo debería estar bien, este es el script:

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
#! /usr/bin/python3
 
print("Introduce un numero del 0 al 10")
num=int(input())
 
while num<=10:
	print("Introduce tu fecha de nacimiento:")
	valor1=int(input("Su dia de nacimiento" ))
	valor2=int(input("Su mes de nacimiento" ))
	valor3=int(input("Su ano de nacimiento" ))
	break
 
 
lista=[valor1, valor2, valor3]
dia,mes,ano=lista
print("Naciste el",dia,"del mes",mes,"del ano",ano,)
 
def fami():
	print("Pon el nombre de 3 tus amigos o familiares en un orden, pon comas entre ellos")
	f1=input()
	f2=input()
	f3=input()
	lista=[f1, f2, f3,]
 
 
def fami2():
	print("Indica que posicion de las 3 quieres ver")
	selec=int(input())
 
	if selec==1:
		print("La posicion 1 es de");print(lista.index(f1))
 
	if selec==2:
		print("La posicion 2 es de");print(lista.index(f2))
 
	if selec==3:
		print("La posicion 3 es de");print(lista.index(f3))
 
 
fami()
fami2()
 
print("1 Para introducir nuevas personas e indicar posocion")
print("2 Para volver a indicar posocion sin anadir nuevas personas")
decision=int(input())
 
if decision==1:
	fami()
	fami2()
 
elif decision==2:
	fami2()

Al ejecutar el script en la terminal de linux aparece esto:

Traceback (most recent call last):
File "./prueba2.py", line 41, in <module>
fami2()
File "./prueba2.py", line 37, in fami2
print("La posicion 3 es de");print(lista.index(f3))
NameError: name 'f3' is not defined

Este error me aparece después de:

Indica que posicion de las 3 quieres ver
3 (El valor que puse)
La posicion 3 es de (después de esto aparece el error)
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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con error en script de Python

Publicado por algoritmo (245 intervenciones) el 07/08/2018 23:42:30
Hola

Las variables definidas dentro de una función, sólo tienen validez dentro de esa función.
lista, f1, f2,f3 sólo existen en la función fami()

Solución: Defínelas fuera, por ejemplo, en la fila 5:

lista = f1 = f2 = f3 = ''"

Saludos :)
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: 16
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con error en script de Python

Publicado por Sergio (11 intervenciones) el 09/08/2018 16:09:12
Gracias por tu respuesta!! Pero que significa un valor=""?
Lo e visto mucho pero no sé para que es
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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con error en script de Python

Publicado por algoritmo (245 intervenciones) el 09/08/2018 18:02:56
Hay que darle cualquier valor previo. Se me ha ocurrido darle valor vacío ""
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