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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema con un def (python)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con un def (python)  (Leído 2,310 veces)
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Problema con un def (python)
« en: 4 Febrero 2021, 21:27 pm »

Hola,estoy teniendo un problema basico con un def en python,lo que quiero hacer es que se guarde en una variable fuera el apellido_cliente.
Probé de todo pero nada,se que esto es un problema básico,por ese motivo pido que no me insulten pls   :-( :)

Código
  1.  
  2. import os
  3.  
  4. def clear():
  5.    if os.name == "posix":
  6.        os.system("clear")
  7.    elif os.name == "ce" or os.name == "nt" or os.name == "dos":
  8.        os.system("cls")
  9.  
  10.  
  11. def agregar_apellido_cliente(apellido):
  12.     while True:
  13.        apellido_cliente = input("Ingrese el apellido del cliente: ").capitalize()
  14.        if apellido_cliente == "":
  15.            print("No puedes dejar este campo vacio!")
  16.            clear()
  17.        elif len(apellido_cliente) <= 4:
  18.            print("Minimo 4 letras!")
  19.            input("<INTRO>")
  20.            clear()
  21.        else:
  22.            apellido = apellido_cliente
  23.            break
  24.  
  25.        return  apellido
  26.  
  27.  


« Última modificación: 5 Febrero 2021, 00:12 am por Panic0 » En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Danielㅤ


Desconectado Desconectado

Mensajes: 1.680


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Problema con un def (python)
« Respuesta #1 en: 4 Febrero 2021, 22:19 pm »

Hola, creo entender tu duda, si querés usar la variable apellido_cliente fuera de la función, podes globalizarla:

Código
  1. global apellido_cliente


Saludos


En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Problema con un def (python)
« Respuesta #2 en: 4 Febrero 2021, 23:45 pm »

Hola, creo entender tu duda, si querés usar la variable apellido_cliente fuera de la función, podes globalizarla:

Código
  1. global apellido_cliente


Saludos

Mmm no,mi idea es hacer esto


Código:
def agregar_nombre_cliente():
     while True:
        nombre_cliente = input("Ingrese el nombre del cliente: ").capitalize()
        if nombre_cliente == "":
            print("No puedes dejar este campo vacio!")
            clear()
        elif len(nombre_cliente) <= 2:
            print("Minimo 3 letras!")
            input("<INTRO>")
            clear()
        else:
            break

        return  nombre_cliente


Depues esto,y que apellido_cliente
Código:
nombre_cliente = agregar_apellido_cliente()

Y que nombre_cliente tome el valor de nombre_cliente pero el que esta dentro de la función, no se si me explico jejejej
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Problema con un def (python)
« Respuesta #3 en: 5 Febrero 2021, 01:19 am »

Veamos:
partamos de la base que tenés dos declaraciones de funciones distintas , la primera es apellido
y le pasas un argumento, la segunda es nombre y no le pasas argumentos
Código
  1.     clear()
  2.        else:
  3.            break
  4.  
  5.        return  nombre_cliente
  6.  
  7.  
  8.  

ahora bien, ¿para qué un break si tenés el return? o sea :
Código
  1. else:
  2.           return  nombre_cliente
ya terminaria la función, o en todo caso aunque es un mal uso de la lógica de programación:
 
Código
  1.  while:
  2.        #etc:
  3.          clear()
  4.        else:
  5.            break
  6.  
  7.    return  nombre_cliente
  8.  
  9.  

donde el return está fuera del ciclo porque sino el break termina el bucle y no asigna el nombre

y otra cosa:
Código
  1.     clear()
  2.        elif len(nombre_cliente) <= 2:
  3.            print("Minimo 3 letras!")
  4.            input("<INTRO>")
  5.            clear()
  6.  

¿para que perder tiempo con ese enter, si se puede ir directamente a ingresa el nombre nuevamente? ¿todos los usuarios presionarán [enter] o alguno ingresará nuevamente el nombre?
y por supuesto no pasara nada hasta ingresar el nombre nuevamente

por otra lado lo de variable global también funcionará, pero no es necesario en este caso
« Última modificación: 5 Febrero 2021, 01:22 am por tincopasan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Python
Scripting
kozlak_92 2 2,413 Último mensaje 31 Enero 2014, 09:18 am
por tincopasan
problema en python
Scripting
bygatox 3 2,693 Último mensaje 8 Marzo 2014, 08:23 am
por Príncipe_Azul
[Python + QT4] Problema con barra de navegador hecho con python y QT4
Scripting
darkweb64 3 3,108 Último mensaje 18 Mayo 2015, 17:23 pm
por darkweb64
Python - Problema
Scripting
Xavier118 5 4,118 Último mensaje 13 Octubre 2017, 06:57 am
por engel lex
[Python 3]Problema con excepciones en Python
Scripting
n1sen 2 3,510 Último mensaje 18 Diciembre 2017, 17:51 pm
por JoseluCross
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines