Básicos del Lenguaje

1

Guía de instalación y conceptos básicos

2

Archivos y slides del curso práctico de Python

3

IMPORTANTE: Instalando Ubuntu Bash en Windows para facilitarte el seguimiento del curso desde Windows.

4

¿Qué es la programación?

5

¿Por qué programar con Python?

6

Operadores matemáticos

7

Variables y expresiones

8

Presentación del proyecto

9

Funciones

10

Usando funciones en nuestro proyecto

11

Operadores lógicos

12

Estructuras condicionales

Uso de strings y ciclos

13

Strings en Python

14

Operaciones con Strings en Python

15

Operaciones con strings y el comando Update

16

Operaciones con strings y el comando Delete

17

Operaciones con strings: Slices en python

18

For loops

19

While loops

20

Iterators and generators

Estructuras de Datos

21

Uso de listas

22

Operaciones con listas

23

Agregando listas a nuestro proyecto

24

Diccionarios

25

Agregando diccionarios a nuestro proyecto

26

Tuplas y conjuntos

27

Tuplas y conjuntos en código

28

Introducción al módulo collections

29

Python comprehensions

30

Búsquedas binarias

31

Continuando con las Búsquedas Binarias

32

Manipulación de archivos en Python 3

Uso de objetos y módulos

33

Decoradores

34

Decoradores en Python

35

¿Qué es la programación orientada a objetos?

36

Programación orientada a objetos en Python

37

Scopes and namespaces

38

Introducción a Click

39

Definición a la API pública

40

Clients

41

Servicios: Lógica de negocio de nuestra aplicación

42

Interface de create: Comunicación entre servicios y el cliente

43

Actualización de cliente

44

Interface de actualización

45

Manejo de errores y jerarquía de errores en Python

46

Context managers

Python en el mundo real

47

Aplicaciones de Python en el mundo real

Conclusiones finales

48

Python 2 vs 3 (Conclusiones)

Clases bonus

49

Entorno Virtual en Python y su importancia: Python en el mundo real

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Estructuras condicionales

12/49
Recursos

En esta clase seguiremos construyendo nuestro proyecto PlatziVentas haciéndolo un poco más interesante y conoceremos un poco sobre las Estructuras condicionales.

En Python es importante importante la indentación, de esa manera identifica donde empieza y termina un bloque de código sin necesidad de llaves {} como en otros lenguajes.

Aportes 109

Preguntas 15

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Este curso no me gusta,
el profesor da muchas cosas por sentado
y va demasiado rápido sin explicar cada una de las cosas.
Al final vas haciendo todas las cosas sin entenderlas.
me parece una pena porque terminé perdiendo el interés
justamente había venido a platzi para aprender python
y me entusiasmé mucho al iniciar los cursos con el de programación básica que da fredy porque lo hace muy sencillo
después con el de algoritmos en c que también me pareció muy facíl de seguir
entonces inicié este de python y desde la primera clase me perdí completamente
dice que usa vim
pero no dice como usarlo ni como instalarlo
las explicaciones van muy rápidas y aunque las entiendo, no me parecen sentillas de seguir a la velocidad que habla.
he perdido casi medio día entendiendo una par de clases en este curso intentanto buscar por otro lado cómo funcionan las cosas que el profesor pasó por alto
mientras que en los anteriores curso, todo era bastante sencillo

quedé decepcionado de este curso
espero y puedan mejorar esa parte.

recuerden que los cursos los toma gente que no tiene ni idea de programación

saludos

Me parece muy buena la explicación del curso. El profe se toma el tiempo en dar ejemplos bastante detallados para quienes no tienen experiencia programando. Estudiar ‘online’, demanda una actitud diferente del estudiante, pues exige resolver inquietudes o dudas de manera diferente y proactiva. Respecto al interés o motivación, no depende del profesor. Podría tomar una clase magistral con un profesor de Harvard, pero si no es de mi interés o no estoy motivado, no servirá de nada.
Así como en la universidad presencial, también es necesario, muchas veces, buscar información de otras fuentes, para complementar y también (importante) confirmar lo que uno está aprendiendo.
La actitud del estudiante y su motivación, son elementos intrínsecos que el mismo estudiante, deberá aprender a manejar.
Hay personas que aprenden a estudiar privados de libertad o incluso bajo condiciones (externas e internas), profundamente aún más desfavorables.
Lo importante es lograr el objetivo que uno se trazó.

Mi código comentado de este ejrecico, espero a alguien le sirva 👍

clients = 'Pablo, Ricardo' #creamos el string

def _print_welcome(): #funcion para dar el mensaje de bienvenida
	print ('Welcome to Monares POS')
	print ('what would you like to do today?')
	print ('*' * 52)  #imprimimos el caracter "*" 52 veces
	print ('[C]reate client')
	print ('[D]elete client')

def create_client(client_name):
	global clients  #Utilizamos global para definir que la variable es la globarl, es decir la que definimos con pablo y ricardo
	clients_minusculas = clients.lower() #convertimos la cadena de texto en minusculas y la guardamos en otra variable para no diferenciar entre "Pablo" y "Pablo"
	if client_name not in clients_minusculas: #si el nombre del cliente no esta en clients_minusculas
		_add_coma() #ejecutamos la funcion _add_coma para agregar una coma y un espacio 
		clients += client_name  #adicionamos el nuevo string
	else:
		print('Client already exists') #Sino mostramos un mensaje al usuario
def _add_coma():  #el nombre de la función comienza con un guión bajo para establecer que será una funcion privada
	global clients
	clients +=", " #se agrega una coma y un espacio al string para separar los nuevos valores


def list_clients(): #función que muestra la lista de clientes
	global clients
	print (clients) #imprimimos el string clientes


if __name__ == '__main__': #funcion main
	_print_welcome() #ejecutamos la funcion que da el mensaje de bienvenida
	command = input().lower() #guardamos el valor del dato ingresado en la variable command pero lo convertimos a miunsculas para realizar la accion si presiona "C" o "c"
	if command == 'c': #si el comando es igual al caracter "c"
		client_name = input('What is the client name?')  #guardamos en la variable client_name el valor de los caracteres que ingresa el usuario hasta recibir un enter
		create_client(client_name) #ejecutamos la funcion crear cliente y enviamos como parametro el valor de la variable que almacena lo que digitó el usuario
		list_clients() #Ejecutamos la funcion listar clientes 
	elif command == 'd': #si el dato ignresado por el usuario es "d"
		pass
	else:
		print('Invalid command')
input() #Escribimos un input para que el programa haga una pausa y no cierre la ventana hasta recibir un enter

Recomiendo a las personas que jamas programaron absolutamente nada:

  • Hacer antes el de programación básica.

  • Complementar conocimiento siempre es bueno, no quedarse con lo que dice el curso, siempre buscar mas en google, o stackoverflow

  • NO preocuparse por el IDE, ya que en este momento, cuando estas comenzando, no importa tanto, ya después te casas con otro.

  • Intentar darse ánimos con otros que esten empezando, o solo, siempre es difícil al principio, yo cuando aprendí mi primer lenguaje fue difícil, pero cuando tomas el truco, los otros son fáciles.

Un abrazo!!

Para realizar la traduccion podemos hacer uso de la libreria gettext y la herramienta pygettext

Les comento los pasos que segui:

En el codigo se debe encapsular con _() todos los string que se quieren traducir, por ejemplo:

def _print_welcome():
    print('*' * 50)
    print(_('WELCOME TO PLATZI VENTAS'))
    print('*' * 50)
    print(_('What would you like to do today?'))
    print(_('[C]reate client'))
    print(_('[D]elete client'))

Descargar y ejecutar pygettext.py

C:\platzi-ventas> python .\pygettext.py -d main main.py

Esto crea un archivo .pot llamado main.pot. Este es un archivo de texto que lista todos los strings que encontro en el codigo que se encuentran encapsulados entre _()

Para editar el archivo .pot de forma mas facil, descargue el programa Poedit

Antes de la ejecucion del programa, se debe crear la siguiente ruta debajo del directorio del proyecto:

mkdir ./locale/es/LC_MESSAGES/

Abrir el programa y luego de seleccionar el idioma al cual se va a traducir, cargamos el archivo en File -> New from POT/PO file seleccionamos el archivo main.pot generado en la ejecucion del archivo pygettext, procedemos a realizar las traducciones.

Se guarda el archivo con nombre main en la ruta creada previamente /locale/es/LC_MESSAGES/ esto generara dos archivos main.mo y main.po

Luego de esto solo importamos las librerias para poder hacer uso de la traduccion:

import gettext
es = gettext.translation('main', localedir='locale', languages=['es'])
es.install()

El resultado seria lo siguiente, los string que marcamos con _() seran traducidos segun la traduccion que generamos

PS C:\platzi-ventas> python.exe .\main.py
**************************************************
BIENVENIDO A PLATZI VENTAS
**************************************************
Que le gustaria realizar hoy?
[C]rear cliente
[E]liminar cliente

Por si a alguien le interesa informarse sobre internacionalizar el lenguaje de nuestro programa: https://docs.python.org/3/library/i18n.html

Nota : Yo estoy usando version 2.7.15 la que viene por default y la funcion input() no funciona, la cambie por la funcion raw_input() y funciono perfectamente.

Líneas de código agregadas y/o modificadas:

def create_client(client_name):
	global clients

	if client_name not in clients:
		clients += client_name
		_add_comma()
	else:
		print ('Client already is in the client\'s list')

def _print_welcome():
	print ('WELCOME TO PLATZI VENTAS')
	print ('*' * 50)
	print ('What would you like to do today ? ')
	print ('[C]reate client')
	print ('[D]elete client')

if __name__ == '__main__':
	_print_welcome()

	command = input()

	if command == 'C':
		client_name = input ('What is the client name ?')
		create_client(client_name)
		list_clients()
	elif command == 'D':
		pass
	else:
		print ('Invalid command')

una pequeña modificacion en el if name==… para que funcione en bucle

if __name__=='__main__':
    print('[I]to initiate')
    init=input()
    while init=='I':
        _print_welcome()
        command = input()
        if command == 'C':
            client_name = input('cual es el nombre del nuevo cliente?')
            create_client(client_name)
            list_clients()
        elif command =='D':
            pass
        else:
            print('Invalid command')```

El curso va perfecto, me está gustando mucho

hola buenos dias, para los que dicen que no les gusta este curso, se respeta , pero en mi opinion si no sabes algo que algunas clases o cursos no hablan a profundida como lo de vim hay otro que si lo hace, en platzi puedes aprender mucho como dice freddy es educacion efectiva osea en todo el entorno de la plataforma de platzi puedes encontrar las respuestas .

Recomendación para el curso:
Este profesor es bueno pero extremadamente rápido, si es tú primer curso de python, para aquí y ve con Facundo (imparte el curso básico-intermedio-avanzado de python) y despúes vuelves aquí. Este curso ees un reforzamiento (en mi opinión)

Lo que logro observar es que hast este punto, no hay persistencia de los clientes nuevos que vamos registrando, supongo que mas adelante, se solucionara este bug

#💡Algunos comandos útiles para aplicar a los strings son:
.

  • nombre_variable.upper() ➡️ Convierte el string a mayúsculas.
  • nombre_variable.capitalize(). ➡️ Convierte la primera letra del string en Mayúscula.
  • nombre_variable.lower() ➡️ Convierte el string a minúsculas.
  • nombre_variable.title() ➡️ La primera letra de cada palabra a Mayúscula.
    .
    Con esto pueden transformar la letra que el usuario elija evitando errores al momento de utilizar mayúsculas o minúsculas:
# Se puede aplicar de la siguiente forma:

if command.upper() == 'C':	
        client_name = input('What is the client name?: ')
        create_client(client_name)
        list_clients()

Utilzar formato para imprimir facilmente

.
Otra cosa muy útil es aplicar formato a lo que queremos imprimir utilizando `print(f’Todo lo que esté dentro puede mezclar un string con resultados de una variable’.
.


--- Para dar formato debemos de comenzar con la letra "f" seguida de comillas '', pueden ser simples o dobles.

# Ejemplo:

def _print_welcome():
    print(f'\n {"*" * 50}')
    print(f'\n\t\tWelcome to ECOmmerce')
    print(f'\n\tThe most sustainable E-Commerce')
    print(f'\n {"*" * 50}')
    print(f'\n\t What would you like to do today?')
    print(f'\n\t\t [C]reate client')
    print(f'\n\t\t [D]elete client')

--- nota:
\n --> Genera un salto de línea
\t --> Genera un salto de 4 espacios

.
Resultado:
.

.
Utilizar formato es muy útil, ya que podemos incluir el resultado de diferentes variables y combinarlas dentro de un string lo cuál nos ahorra tiempo y código. Para poder introducirlas simplemente nombramos a la variable dentro de llaves {}. Ejemplo:

# Función que imprime la lista de clientes
def list_clients():
    global clients
    print(f' >>> The list of clients is: {clients}')
# El resultado será el siguiente:
>>> The list of clients is: pablo, ricardo, daniel, 


formulas = 'Formula 5kg,Formula Parche,'
materiales ='Enable2010,92020,'


def crear_formula(nombre_formula):
	global formulas

	if nombre_formula not in formulas:
		formulas += nombre_formula
		_add_coma()
	else:
		_mensaje_error()



def nuevo_material(nombre_material):
	global materiales

	if nombre_material not in materiales:
		materiales += nombre_material
		_add_coma()
	else:
		_mensaje_error()


def lista_formulas():
	global formulas

	print(formulas)


def lista_materiales():
	global materiales

	print(materiales)


def _mensaje_error():
	print('Revisa tu lista!!!\n Ya se encuentra en BD')


def _add_coma():
	global formulas
	global materiales
	
	formulas += ','
	materiales += ','



def _bienvenida():
	print('FOMULAS PLASTICOS CANTABRIA')
	print('QUE VAS A REALIZAR?')
	print('^' * 50)
	print('[C]rear formula')
	print('[N]uevo material')
	print('[L]ista de formulas')
	print('[ML]ista materiales para formular')
	print('[E]limminar formulario')
	print('[ME]limniar material')
	print('[A]ctualizar formulario')
	print('[B]uscar formula')


if __name__ == '__main__':
	_bienvenida()
	
	comando = input()
	comando = comando.upper()

	if comando == 'C':
		nombre_formula = input('Cual es la nueva formula?: ')
		crear_formula(nombre_formula)
		lista_formulas()

	elif comando == 'N':
		nombre_material = input('Cual es el nombre del material?: ')
		nuevo_material(nombre_material)
		lista_materiales()

	elif comando == 'L':
		lista_fomulas()

	elif comando == 'ML':
		lista_materiales()

	elif comando == 'E':
		pass

	elif comando == 'ME':
		pass

	elif comando == 'A':
		pass

	elif comando == 'B':
		pass

	else:
		print('Comando INVALIDO!!!\n ...Revisa las opciones y comandos disponibles ^')

Me salia un error como el siguiente que no entiendo, con python2

may@may:~/python_ex/crud_platzi$ python main.py 
WLCOME TO PLATZI VENTAS
**************************************************
What would you like to do today?
[C]reate client
[D]elete client
C    
Traceback (most recent call last):
  File "main.py", line 28, in <module>
    command = input()
  File "<string>", line 1, in <module>
NameError: name 'C' is not defined

Luego ejecute con python3 y funciono normal

may@may:~/python_ex/crud_platzi$ python3 main.py 
WLCOME TO PLATZI VENTAS
**************************************************
What would you like to do today?
[C]reate client
[D]elete client
C
What is the client name?mariley
pablo,ricardo,mariley,
may@may:~/python_ex/crud_platzi$ 

Si desean que su aplicación de terminal no lusca tan aburrida, pueden usar una librería llamada colorama.

Esta librería le da color a sus textos en print() y en input(). No viene instalada junto con los módulos de Python, por lo tanto es necesario instalarla con pip.

Instalación de Colorama:

pip install colorama

Les pongo un ejemplo de lo que pueden hacer con el modulo.

from colorama import Fore, init #Importamos los módulos que ocupamos 

#Colorama settings
init() #Es necesario para empezar a colorear
FR = Fore.RESET
FRED = Fore.RED
FGREEN = Fore.GREEN
FGREENX = Fore.LIGHTGREEN_EX
FYE = Fore.YELLOW
FYEX = Fore.LIGHTYELLOW_EX
FCYAN = Fore.CYAN

def _print_welcome():
    print('Welcome to' + FGREEN +' PLATZI VENTAS' + FR)
    print('-' * 25)
    print(FGREENX + 'What would you like to do today?' + FR)
    print('[C]reate client')
    print('[D]elete client') 


El output de eso seria:



Ahí disculpen si escribí algo mal, tengo pésima ortografía. :p

Este curso es de lo mejor!

En la condición de agregar al cliente es necesario también poner en minúsculas el valor de entrada en la función

def create_client(client_name):
    	global clients  
	clients_minusculas = clients.lower() 
	if client_name.lower() not in clients_minusculas: 
		_add_coma()  
		clients += client_name 
	else:
		print('Client already exists') 

Recuerden: Es un curso intermedio, hay que tener conocimientos previos para poder entender varios conceptos.

otra forma de ver el ejercicio del profe.

BD_client=['pablo','david']

def add_client(client_name):
    global BD_client
    
    if client_name not in BD_client:
        BD_client.append(str(client_name))
    else:
        print('The Client already is in the client\'s list')

def list_clients_DB():
    global BD_client
    print( str(BD_client))

    
def _print_welcome():
    print('hola que hace?')
    print('*'*5)
    print('what would you like to do today?')
    print('[C]reate client')
    print('[D]elete client')
    
if __name__ == '__main__':
    
    _print_welcome()
    
    command = input()
    if command == 'C':
        client_name = input('What is the client name?: ')
        add_client(client_name)
        list_clients_DB()
        
    elif command == 'D':
        pass
    else:
        print('Invalid command')

✅ No te pierdas el comentario de abajo ⬇️ Está de lujo 👌🏽

.
Esto es solo mikodigo 🙈 pero el comentario que siguete será muy útil.

'''
A Pythobn Project to develop a CRUD(create, read, update, delete)
'''

clients = 'pablo, ricardo, '

# Función que añade un nuevo cliente a la variable clients
def create_client(client_name):
    global clients              # La función global aumenta el alcance de la función y permite 
                                # utilizar     la variable clients
    if client_name not in clients:
        clients += client_name
        _add_comma()
    else:
        print("Client already is in the client's list")


# Función que imprime la lista de clientes
def list_clients():
    global clients
    print(f' >>> The list of clients is: {clients}')


# Creación de función privada que será auxiliar para separar por comas los nombres
def _add_comma():
    global clients
    clients += ', '


def _print_welcome():
    print(f'\n {"*" * 50}')
    print(f'\n\t\tWelcome to ECOmmerce')
    print(f'\n\tThe most sustainable E-Commerce')
    print(f'\n {"*" * 50}')
    print(f'\n\t What would you like to do today?')
    print(f'\n\t\t [C]reate client')
    print(f'\n\t\t [D]elete client')


if __name__ == '__main__':
    _print_welcome()

    command = input(f'\n\tChoose an option from above C/D: ')

    if command.upper() == 'C':
        client_name = input(f'\n\tWhat is the client name?: ')
        create_client(client_name)
        list_clients()
    
    elif command == 'D':
        pass

    else:
        print('Invalid command')`

Acá les dejo mi código:

Como implemento que perciba entre minusculas y mayusculas ? para evitar una lista
Piña , piña , PIÑA

El mac tiene instalado una versión de 2.x de python por lo que se debería instalar una versión de 3.x la cual puede convivir con la otra versión, pues si la actualizan se pueden romper algunos programas por lo que lo mejor es no actualizarla. En la siguiente página pueden encontrar el instalador https://www.python.org/downloads/

<h1>Estructuras condicionales</h1>

En python las estructuras condicionales que se utilizan son if, elif y else. Como su nombre lo dice, son estructuras que evalúan sentencias lógicas y determinan si se cumplen o no.

NOTA: Es muy importante la identacion en estas estructuras, pues es la forma en la que python interpreta la forma en la que se ejecutaran las sentencias de instrucciones

if

Es una estructura condicional que evalua una sentencia la cuál se evalúa de forma booleana (regresa true o false).Si el if se cumple, se realizan una serie de instrucciones. Su estructura es la siguiente:

#if sentencia:
if a > b:
  #se realizan una serie de instrucciones
  print('la variable a es mayor que la b')

else

En dado caso que el if no se cumpla podemos controlar el resultado con la sentencia else. Por ejemplo:

#if sentencia:
if a > b:
  #se realizan una serie de instrucciones
  print('la variable a es mayor que la b')
else:
  #Si no cumple el if, se realizan las instrucciones 
  #del else
  print('la variable b es mayor que la a')

elif

Por último podemos usar una última estructura condicional, que es el elif. Con el podemos controlar lo que ocurre si no se cumple el if, pero además se le puede inponer una condición. Por ejemplo:

#if sentencia:
if a > b:
  #se realizan una serie de instrucciones
  print('la variable a es mayor que la b')
elif a==b:
  #Si no cumple el if, se realizan las instrucciones 
  #del elif solo si se cumple la condición que pusimos
  print('la variable a y b son iguales')

Una cosa que veo es que python reconoce minusculas y mayusculas, por lo que si coloco c el programa termina

Código con una sintaxis más legible (a mi parecer)
Utiliza python3 main.py para ejecutar el código (en python2, es decir, el python por defecto de la terminal de ubuntu, no funcionará debido a que el sep="" no estaba implementado)

clients = ['Pablo', 'Ricardo']

def welcome():
        print('Welcome!',
              '*'*20,
              'What would you like to do?',
              'C -> Create client',
              'D -> Delete client',
              '>>>',
              sep='\n', end=' ')


def create_client(client_name):

    global clients # Take global variable clients to use it
    if client_name not in clients:
        clients.append(client_name) # Add element client_name to the list
    else:
        print('{client} is already in the client\'s list'.format(client=client_name))

def list_clients():
    """Join the elements of the list clients through the string ', ' """
    print(', '.join(clients))

if __name__ == '__main__':
    welcome()

    user_decision = input()

    if user_decision == 'C' or user_decision == 'c':
        client_name = input('What is the client name?:\n>>> ')
        create_client(client_name)
        list_clients()
    elif user_decision == 'D' or user_decision == 'd':
        pass
    else:
        print('Invalid command')

Para cualquier duda del código, preguntar.

#Investigar como poner para varios idiomas
#Que no distinga entre mayusculas y minusculas --> LISTO
clients = 'Pablo, ricardo, '

def create_client(client_name):
    global clients #Con esto tomamos la variable global clients
    
    if client_name not in clients:
        clients += client_name
        _add_comma()
    else:
        print(client_name,' already is in the client\'s list') #La otra comilla es para que el codigo agregue la comilla con el \ como texto


def list_clients():
    global clients
    print(clients)


def _add_comma():
    global clients
    clients+= ','


def _print_welcome():
    print('*'* 50)
    print('What would you like to do today?')
    print('[C]reate client')
    print('[D]elete  client')

if __name__ == '__main__':
    _print_welcome()
    command = input()
    command = command.upper()
    if command == 'C':
        client_name = input('What is the client name? ')
        create_client(client_name)
        list_clients()
    elif command == 'D':
        pass #Placeholder 
    else:
        print('Invalid command')

¿Por que en ciertas funciones le agrega un “_” al inicio del nombre de la funcion?

Para controlar aun más el programa es recomendable utilizar los metodos de formateo:

str.upper(') => 'Convierte todo el texto a Mayuscula'
str.lower() => 'Convierte todo el texto a Minuscula'

El código podría quedar así:

command = str.upper(input())
	
if command == 'C':
	pass
elif command == 'B':
	pass
else:
	pass

HELP!!!:
Este es mi código–

pero en consola me tira un error con relación al input. Igreso la selección (A, B, C) y me dice que no están definidas.

5 años después del curso, puedo decir que va muy bien, excelente el primer módulo.


Adicional en el input, le agregue la function .upper() y al client_name .capitalize(), para tener mejor calidad de datos.

Yo lo realize de esta manera con una funcionalidad añadida apartir de python 3.10 que es basicamente un “Switch”, adicionalmente agrege la validacion del input en una funcion aparte, y resolvi el tema de si el usuario utilizo mayusculas o minusculas con el “capitalizer” de la opcion del usuario

clients = 'pablo,ricardo,'

def create_client(client_name):
    global clients
    if(client_name) not in clients:
        clients += client_name
        _add_comma()
    else:
        print('Client already is in the clients')

def list_clients():
    global clients
    print(clients)


#utils begin
def _add_comma():
    global clients
    clients +=','
def _check_option_user(option):
        match option:
            case 'C':
                client_name = input('What is the client name?: ')
                create_client(client_name)
            case 'D':
                print('DELETE')
            case _:
                print('Invalid command')
#utils ends

def _print_welcome():
    print('Welcome to platzi ventas');
    print('*'*50)
    print('What would you like to do today')
    print('[C]reate client')
    print('[D]elete client')

if __name__ == '__main__':
    _print_welcome()
    
    command = (input()).capitalize()

    _check_option_user(command)

    list_clients()
clients = "Pablo,Ricardo,"

def create_client(client_name):
    global clients

    if client_name not in clients:
        clients += client_name
        _add_comma()
    else:
        print("Client already is in client's list")

def list_clients():
    global clients

    print(clients)

def _add_comma():
    global clients

    clients += ","



def _add_comma():
    global clients

    clients += ","

def _print_welcome():
    print("WELCOME TO PLATZI VENTAS")
    print("*" * 50)
    print("What would you like to do today?")
    print("[C]reate client")
    print("[D]elete client")

if __name__ == '__main__':
    _print_welcome()

    command = input()

    if command == "C":
        client_name = input("What is the client name? ")
        create_client(client_name)
        list_clients()

    elif command == "D":
        pass
    else:
        print("Invalid command")

    #list_clients()

    #create_client('David')

    #list_clients()

Este curso ¡Me encanta!! Facundo explicaba los conceptos bien pero este profesor explica y crea proyectos pa el Git Hub

Mi código, pensando en que el usuario puedo poner “c” en lugar de “C” y poniendo la primera letra de los nombres en mayúscula:

clients = "David, Angeles, "

def create_client(client_name):
    global clients
    if client_name not in clients:
        clients += client_name.capitalize()
        _add_comma()
    else:
        print("The client is already in the clients list")


def list_clients():
    global clients
    print(clients)

def _add_comma():
    global clients
    clients += ", "


def _print_welcome():
    print("Welcome to my store page:")
    print("*" * 50)
    print("What would you like to do today?")
    print("[C]reate")
    print("[D]elete")

if __name__ == '__main__':
    _print_welcome()
    command = input().upper()
    if command == "C":
        client_name = input("What is the client name?")
        create_client(client_name)
        list_clients()
    elif command == "D":
        pass
    else: 
        print("Invalid command")

Mi Código Aplicando unas Cosas Mas Para que se Vea Mejor y también agregue un Función _get_cliente_name para ingresar el nombre del cliente agregar y liste los futuras acciones

clients:str = 'Jesus, Daniel'

def create_client(client_name): # create_client crea un nuevo cliente
    global clients
    if client_name not in clients: # Si el cliente no existe, lo crea
        _add_comma()
        clients += client_name
        print (f'Cliente {client_name} Creado Satisfactoriamente')
    else: # Si el cliente ya existe, lo informa
        print(f'El Cliente {client_name} Ya Existe')

    
def list_cleints(): # list_cleints muestra los clientes que existen
    global clients
    print('clientes:',clients)
   

def _add_comma(): # Agrega una coma al final de la lista de clientes
    global clients
    clients += ', '


def _print_welcome(): # Imprime un mensaje de bienvenida al usuario 
    print(' _________________________________________ ')
    print('|        Bievenido a Platzi Ventas        |')
    print('|-----------------------------------------|')
    print('|[C] - Crear cliente                      |')
    print('|[E] - Eliminar cliente                   |')
    print('|[A] - Actualizar cliente                 |')
    print('|[B] - Buscar cliente                     |')
    print('|[S] - Salir                              |')
    print('|_________________________________________|')


def _get_client_name(): # Creo una Función para que el usuario ingrese el nombre del cliente
    _print_welcome()
    command = input('Ingresa una opcion: ')
    if command == 'C':
        client_name = input('Ingresa el nombre del cliente: ')
        create_client(client_name)
        list_cleints()
    elif command == 'E':
        pass
    elif command == 'A':
        pass
    elif command == 'B':
        pass
    elif command == 'S':
        pass
    else:
        print('                                         ')
        print(' __________Comando no encontrado__________')
      
        _get_client_name()

if __name__== '__main__':
    _get_client_name() 

Cualquier Critica es Aceptada. Espero Le pueda Servir a Varios Que recién empiezan

Hola, tengo un error y no sé a qué se deba, ¿alguien podría ayudarme?

estaria buenisimo un curso de heramientas para programar, que muestres como convertir en un editor poderoso, las mejores extensiones para vs code, esas cosas muchas veces cuando empezamos no las conocemos y realmente facilitan un montonal la vida

En esta parte dle código le hice un par de cosas, usé la interpolación de variables, y elimine la función que agrega la coma

clients = 'Pablo, Ricardo'

def create_client(client_name):
    global clients

    if client_name not in clients:
        clients += f', {client_name},'
       
    else:
        print(f"Client {client_name} already is in the client's list")


def list_clietns():
    global clients
    print(clients)

El comentario de varias líneas se puede realizar de la siguiente manera:

usaria “”" “”" triple comilla para no estar escribiendo cada rato print

“”“
Welcome to platzi
What would you like to day
”""

Como se ve , igual tmb se imprime

IMPORTANTE La funcion input() siempre retorna valores “str”

Hola amigos, necesito vuestra ayuda:

Al intentar compilar mi código (pego aquí la parte que da problemas), me da un error que dice: command imput is not defined

if name == ‘main’:
_print_welcome()

command = imput()

if command == 'C':
    client_name = imput('Name:')
    create_client(client_name)
    list_clients()
elif command == 'D':
    pass
else:
    print('Invalid command')

eso significa que me falta instalar algún paquete de Python?

Hola a todos compis, a ver si sabeis porque me pasa esto.
Al abrir el codigo desde la terminal me aparece este error:

what would you like to do today?
[C]reate client
[D]elete client
C
Traceback (most recent call last):
File “main.py”, line 34, in <module>
command = input()
File “<string>”, line 1, in <module>
NameError: name ‘C’ is not defined

Pero sin embargo si lo ejecuto desde la terminal de visual studio code, funciona sin ningun tipo de problema.

Porque puede ser esto?

agregué un cicloa mi código

clients = 'Pablo, Ricardo, '


def print_clients():
    global clients
    print('-'*50)
    print(clients)
    print('-'*50)


def add_clients(client_name):
    global clients
    if client_name.capitalize() not in clients:
        clients += client_name.capitalize()
        _add_comma()
    else:
        print('El cliente ya se encuentra registrado')


def _add_comma():
    global clients
    clients += ', '


def run():
    while True:
        print('Bienvenido a Platzi Ventas')
        commant = int(input('''-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
        ¿Qué deseas haces?
            [1] Añadir un cliente
            [2] Imprimir lista de clientes
            [3] salir
        '''))
        if commant == 1:
            add_clients(client_name=str(input('nombre: ')))
        elif commant == 2:
            print_clients()
        elif commant == 3:
            print('hasta luego...')
            break
        else:
            print(commant)
            print('Esa opción no es valida')
    

if __name__ == '__main__':
    run()

Muy buen comienzo al utilizar los métodos privados y las variables globales.

Vamos muy bien con la aplicación que estamos creando, esto me tiene muy motivado.

Para los compañeros que al llegar a este curso se sienten un poco perdidos, les recomiendo el curso básico de Python con el profe Facundo, así al llegar acá van a estar más cómodos y van a seguir con gran facilidad cada clase. Leí algunos comentarios de otros compañeros de tiempo atrás, en donde manifestaban no estar a gusto con la forma en que el profesor da por sentado que ellos ya sabían algunas cosas, lo que les puedo decir en mi opinión, es que por favor persistan, aguanten, no tiren la toalla aún, si es necesario busquen otras fuentes de información, y luego regresen para continuar.

Recuerden que lo importante es aprender, animo y un saludos a todo el que lea este mensaje.

Me ha encantado este curso hasta ahora.

Trate de crear la funcion de eliminar clientes pero me salen errores, pero voy a seguir intentandolo hasta lograrlo.

A mi no me ha funcionado lo de command = input() y he tenido que poner command = raw_input() para que me funcione. ¿ por que pasa eso?

Algo que noto es que no mencionas algo bien importante que es el retorno de las funciones; le hice una modificación a la función _add_comma y solamente retorne el valor del string ‘,’ y funcionó.

pregunta, por que no estan los archivos de lo que el profesor va escribiendo en cada curso ??

Muy buen curso realmente básico como para aprender bien yo utilizo pycharm y no me complica en nada, ademas que el desde el inicio dijo que si no conocemos vim utilicemos otra herramienta.

Que significa cuando se coloca [C] o el [D]… por lo que entiendo, estoy obligando que el usuario asigne o bien la C o la D… esto es algo como un input?? solo que ya predefinido dos valores por defecto???

def _print_welcome():
	print("Welcome")
	print("*" * 50)
	print("What would you like to do today?")
	print('[C]reate cliente')
	print('[D]elete cliente')

Este es mi código hasta ahora

clients = []

def list_clients():
    global clients
    print(clients)


def create_clients(client_name):
    global clients
    if client_name not in clients:
        clients.append(client_name)
        list_clients()
    else:
        print('Client is in list, not added')
        
def menu():
    print("""
       CLIENTES
       ========
       [A]dd client
       [D]elete client
       
       [Q]uit program
       
    """)

if __name__ == '__main__':
    menu()
    command = input('Command: ')
    if (command == 'A') or (command == 'a'):
        client_name = input('Enter customer name: ')
        create_clients(client_name)
    else:
        print('Command not defined')

Debian tiene por defecto python 2.7.13 y python 3.5.3
Entonces tienen que estar SEGUROS de utilizar la version 3.5.3 para que no tengan problemas con los ejercicios. pueden hacerlo de la siguiente manera

$ python --version
Python 2.7.13
$ echo 'alias python="/usr/bin/python3.5"' >> ~/.bashrc
$ . .bashrc 
$ python --version
Python 3.5.3

les dejo el link de donde lo saque
[https://linuxconfig.org/how-to-change-default-python-version-on-debian-9-stretch-linux]

para enfatizar

Pass

Tal como su nombre lo indica es una operación nula, o sea que no pasa nada cuando se ejecuta. Se utiliza cuando se requiere por sintaxis una declaración pero no se quiere ejecutar ningún comando o código. También se utiliza en lugares donde donde el código irá finalmente, pero no ha sido escrita todavía (utilizándolo como un relleno temporal, hasta que se escriba el código final).

Excelente. Bien explicado 😉

Que bien explicaste este capitulo, carnal 😉

Veo a la gente que se queja y en cierto punto los entiendo… este no es un curso del todo “básico”… pero IMO me está gustando.

es main porque asi se llama el programa main.py ???

El CLIENT_NAME del MAIN es distinto al CLIENT_NAME de la FUNCION CREATE_NAME?

clients = 'Tomas,Juan,'

def create_client(client_name):
    global clients
    if client_name not in clients:
        clients += client_name 
        _add_comma()
    else:
        print("Client already is in the client\'s list!")
    


def list_clients():
    global clients
    print(clients)

def _add_comma():
    global clients
    clients +=','

def _print_welcome():
    print("WELCOME TO PLATZI VENTAS")
    print("-" * 50)
    print("what would you like to do today!")
    print("[C]reate a CLient")
    print("[D]elete a Client")

    

if __name__ == '__main__':
    
    _print_welcome()

    command = input()
    if command.upper() == "C":
       client_name = input("What is the client name?: ")
       create_client(client_name.title())
       list_clients()

    elif command == "D":
        pass
    else:
        print("Invalid command")

Me esta gustando mucho el curso 😃

Genial!!

Tengo un problema con mi código

if __name__ == '__main__':
    _print_welcome()

    command = input() #Esta función detiene la ejecución del programa hasta que el usuario provee un valor

    if command == 'C':
         client_name = input('What is the client name? ')
         create_client(client_name)
         list_clients()
         elif command == 'D':
              pass
              else:
                   print('Invalid command')

Es el mismo del profesor, pero no entiendo por qué me da este error

λ python main.py
File “main.py”, line 35
elif command == ‘D’:
^
SyntaxError: invalid syntax

Para los que tienen Debian 9 y tienen la versión 2.7.1 y la 3.5 instalada pero usan de manera predeterminada la 2.7.1 aquí un manual para cambiar la versión 3.5 por default:

Para los que tienen Debian 9 y tienen la versión 2.7.1 y la 3.5 instalada pero usan de manera predeterminada la 2.7.1 aquí un manual para cambiar la versión a 3.5:

https://proyectosbeta.net/2017/12/utilizar-python-3-en-debian-stretch/

Para usar la comilla dentro de una oración otra vez también pueden sustituir las comillas simples con comillas dobles, así si incluye la comilla de client’s

Pueden realizar un salto de linea cuando les pida el nombre de cliente de la siguiente forma

client_name = input('Cual es el nombre de cliente? \n')

\n Es el caracter de salto de linea y funciona en muchos lenguajes de programación.

Aquí mi código

aqui inicie con una lista de clientes mayor a la del video, en este programa puedes escoger cuantos clientes agregar usando un bucle for, ademas de implementar la funcion eliminar.

clients = 'pablo, ricardo, camilo, juan, '

def create_client (client_name):
    global clients
    
    if client_name not in clients:
        clients += client_name
        _add_coma()
    else:
        print ('##############el cliente ya esta creado##############')
        print ('')


def delete_client(client_name):
    global clients
    
    if client_name in clients:
        clients -= client_name
    else:
         pass



def list_clients():
    print(clients)


def _print_welcome():
    print('WELCOME TO PAGUE MAS')
    print('*' * 50)
    print ('por el momento tenemos estos clientes: ')
    list_clients()
    print('*' * 50)    
    print('what would you like to do?' +
          ' [C] create or[D] delete')
    
    
def crud():   
    _print_welcome()
    
   
    command = input()        

    
    if command == ('c' or 'C'):
        num_clients= int (input('cuatos clientes ingresara?: '))
        
        for i in range(num_clients): 
            
            print('dijiste el '+str(i+1)+' cliente nuevo: ')
            client_name = input()
            
            create_client(client_name)
            print('*' * 50)
            print ('por el momento tenemos estos clientes: ')
            
            list_clients()
            print('*' * 50) 
        
    elif command == ('d' or 'D'):
        num_clients= int (input('cuatos clientes eliminara?: '))
        
        for i in range(num_clients): 
            
            print('dijiste el '+str(i+1)+' cliente eliminado: ')
            client_name = input()
            
            delete_client(client_name)
            print('*' * 50)
            print ('por el momento tenemos estos clientes: ')
            
            list_clients()
            print('*' * 50) 
    else:
        print('invalid command')


def _add_coma():
    global clients
    clients +=', '


if __name__ == '__main__':
    
     crud()
clients = 'pablo,ricardo,'


def create_client(client_name):
    global clients
    if client_name not in clients:
       clients += client_name
       _add_coma()
    else:
      print('Client already is in the client\'s list')

def list_clients():
    global clients

    print(clients)

def _add_coma():
  global clients 
  clients += ','

def _print_welcome():
    print ('Welcome to platzi ventas')
    print('*' * 50)
    print('What would you like to do today?')
    print('[C]reate client')
    print('[D]elete client')



if __name__== '__main__':
    _print_welcome()
    
    command = input()

    if command == 'C':
        client_name = input('What is the client name?')
        create_client(client_name)
        list_clients()
    elif command == 'D':
        pass
    else:
        print('Invalid command')

porque algunas funciones las escribe con _ y otras no??

def _add_coma()
def _print()
def lits_clients()

a ver pausa, que diferencia hay entre algo escrito con doble __ y otra con _ ???

Que onda shavos a mi me daba este error:
Traceback (most recent call last):
File “main.py”, line 32, in <module>
commando = input()
File “<string>”, line 1, in <module>
NameError: name ‘C’ is not defined

Lo solucione cambiado input por raw_input en el codigo

hola gentre, alguien podria ayudarme por favor, aparece un error en la linea 40, ya he provado con raw_input pero no funciona, trabajo con python 3.7.3

![](

clients = 'pablo,ricardo,'


def create_client(client_name):

    # The global reserve word is to use the clients variable,because when we declared a variable out off scope function,
    # we cant have access to it.
    global clients
    if client_name not in clients:
        clients += client_name

        _add_comma()
    else:
        print('Client already is in the cliente\'s list')


def list_clients():
    global clients

    print(clients)


def _add_comma():
    global clients

    clients += ','


def _print_welcome():
    print('WELCOME TO PLATZI SALES')
    print('*' * 50)
    print('What would you like to do TODAY')
    print('[C]reate client')
    print('[D]elete client')


if __name__ == '__main__':
    _print_welcome()
    # This command to stop programm execution, because we need an human intervetion to continue
    command = input()

    if command == 'C':
        client_name = input('What is the client name? ')
        create_client(client_name)
        list_clients()
    elif command == 'D':
        pass
    else:
        print('Invalid Command')```

Hola, estoy siguiendo el curso pero en este capitulo, mi programa me entrega el siguiente error: Traceback (most recent call last):
File “main.py”, line 31, in <module>
command = input()
File “<string>”, line 1, in <module>
NameError: name ‘F’ is not defined
Lo estoy escribiendo en ATOM y ejecutando en el Terminal
El error ocurre cuando en la función input entrego una C de Create client

clients = []

def create_clients(clients):
    name = str(input('Enter the Client Name: '))
    clients.append(name)

def list_clients(clients):
    print(clients)

def _print_welcome():
    while True:
        print('WELCOME TO PLATZI VENTAS')
        print('*---'*6)
        print('')
        print('What do you want to do?')

        option_selected = str(input('''
         Select an option
         [a] Add Client Name
         [b] List Clients
         [c] Salir
        '''))

        if option_selected == 'a':
            create_clients(clients)
        elif option_selected == 'b':
           list_clients(clients)
        else:
            break

if __name__ == '__main__':
    _print_welcome()
    
    

Este fue el código que hice antes de ver la clase

clients = []

def create_clients(clients):
    name = str(input('Enter the Client Name: '))
    clients.append(name)

def list_clients(clients):
    print(clients)

def _print_welcome():
    while True:
        print('WELCOME TO PLATZI VENTAS')
        print('*---'*6)
        print('')
        print('What do you want to do?')

        option_selected = str(input('''
         Select an option
         [a] Add Client Name
         [b] List Clients
         [c] Salir
        '''))

        if option_selected == 'a':
            create_clients(clients)
        elif option_selected == 'b':
           list_clients(clients)
        else:
            break

if __name__ == '__main__':
    _print_welcome()
    
    ```

Codigo


namesList = []

def clientCreate(clientName):
	global namesList
	namesList.append(clientName)


def showList():
	global namesList
	
	for name in namesList:
		print('{}, '.format(name))

def _run():
	while True:
		command = str(input('''

Bienvenido al registro de usuarios

	[a] Agregar un cliente
	[l] Lista de clientes
	[s] Salir

	Ingrese su opción: '''))

		if command == 'a':
			client_name = str(input('Nombre: '))
			clientCreate(client_name)
		
		elif command == 'l':
			showList()
		
		elif command == 's':
			print('Hasta otra!!!')
			break

		
if __name__ == '__main__':
	_run()

Hola, en la terminal me imprime what would you like to do today
[C]reate client
[D]elete client
invalid commad

Repl Closed se cierra y no me deja singresar el nombre

Hola
¿Me pueden ayudar? , me arroja este error, saludos.

Hola, llevaba media hora peleándome pues al ingresar algún valor en el input() me aparecía

Traceback (most recent call last):
File “main.py”, line 36, in <module>
command = input()
File “<string>”, line 1, in <module>
NameError: name ‘s’ is not defined

Puse raw_input() y funcionó correctamente. Estoy actualizando a python 3, tenía Python 2.7.10.

Algún comentario?

yo e sentido bien el curso al único que deplano no le entendí fue al Entorno Virtual en Python y su importancia

solo vi que escribió y escribio y derepente ya tenia un servidor y avia puesto un mensaje

¿Qué viene a ser el condicional if name == ‘main’? ¿Qué se evalúa?

Estoy utilizando visual estudio code y la verdad se hace bastante sencillo identificar la indentación y los errores. Super recomendado!

por acá dejo mi código:

#!/usr/bin/env python
"""
Platzi Ventas Project
"""

def create_client(name, clients):
    """
    Summary: \n
    \t Creates and add a new client to the client list \n
    Arguments: \n
    \t name (str) : Name of the new client \n
    \t clients (str) : List of clients \n
    """
    if name not in clients:
        clients += ',' + name
    else:
        print('Client already is in the client list')
    print(clients)
    return clients


def welcome():
    """
    Summary: \n
    \t Shows the starting menu of the App \n
    """
    print('WELCOME TO PLATZI VENTAS')
    print('*' * 30)
    print('What would you like to do today?')
    print('[C]reate client')
    print('[D]elete client')


if __name__ == '__main__':
    CLIENTS = 'Pablo,Ricardo'
    welcome()
    COMMAND = input()
    if COMMAND == 'C':
        CLIENT_NAME = input('What\'s the client name? ')
        CLIENTS = create_client(CLIENT_NAME, CLIENTS)
    elif COMMAND == 'D':
        pass
    else:
        print('Invalid command')

Aqui mi aporte

<clients ="pablo, ricardo, alan "


def crear_cliente(nombre_cliente):
    global clients

    if nombre_cliente not in clients: #Si el nombre del cliente no esta en tu lista, entonces:
        clients += nombre_cliente      #Agrega el cliente
        _crear_coma()   #Aqui se agrega la funcion agregar coma
    else:
        print("El nombre que intentas ingresar, ya esta en tu lista") #Si ya esta en tu lista, imprime esto


def listar_clientes(): #Le estamos diciendoq que ordene la lista de clientes
    global clients
    print(clients)


def _crear_coma():  #Se crea esta funcion para agregar coma al final
    global clients
    clients += ", "


def print_wellcome():
    print("Wellcome to paltzi ventas")
    print("*" * 50)
    print("What would  you like to do today")
    print("[C] Create Client")
    print("[D] Delete Client")


if __name__ == "__main__": #Indica el inicio del codigo

    print_wellcome()
    commando = input()

    if commando == "C":
        nombre_cliente = input("What is the name client")
        crear_cliente(nombre_cliente)
        listar_clientes()
    elif commando == "D":
        pass
    else:
        print("comando invalido")
>
clients = 'osvaldo, ricardo,'

def create_client(client_name):
    global clients
    if client_name not in clients:
        clients += client_name
    else:
        print('Client already is in the client\'s list')


    _add_comma()

def _add_comma():
    global clients

    clients += ','


def list_clients():
    print(clients)


def print_welcome():
    print('Welcome to platzi sales')
    print('*' * 50)
    print('What would you like doing today?')
    print('[C]reate client: ')
    print('[D]elete client: ')


if __name__ == '__main__':
    print_welcome()

    command = input().upper()

    if command == 'C':
        client_name = input('What is client name? : ')
        create_client(client_name)
        list_clients()
    elif command == 'D':
        pass
    else:
        print('Invalid comman')

Pueden colocar los input asi si quieren tener mayor control sobre el tipo de dato

name = str(input('Ingresa tu nombre: '))
age = int(input('Ingresa tu edad: '))

Así evitamos errores otra cosa es que para que sin importar si el comando esta en mayúscula o minúscula pueden convertir la entrada a minúsculas o mayúsculas con la función lower() o upper()

comamnd = str(input).lower()
comamnd = str(input).upper()

Aqui esta mi codigo incluyo mas control en el manejo de los datos


clients = 'Pablo ,Ricardo ,'


def create_client(client_name):
    global clients

    if client_name not in clients:
        clients += client_name
        _add_comma()
    else:
        print('The client already is in the client\'s list')

def list_clients():
    global clients
    print(clients)


def _add_comma():
    global clients
    
    clients += ' ,'

def _print_welcome():
    print('WELCOME TO PLATZI VENTAS')
    print('*' * 50)
    print('What would you like to do today?')
    print('[C]reate client')
    print('[D]elete client')
    

if __name__ == '__main__':
    _print_welcome()
    
    comamnd = str(input()).lower()

    if comamnd == 'c':
        client_name = str(input('What is the client name? ')).title()
        create_client(client_name)
        list_clients()
    elif comamnd == 'd':
        pass
    else:
        print('Comamnd Ivalid')

Agregue la función .upper a la asignación de la variable command, de esta forma no nos importa si el usuario escribe la selección en minúscula

if __name__ == '__main__':
    _ptint_welcome()

    command = input().upper()

    if command == 'C':
        client_name = input('What is the client name?')
        create_client(client_name)
        lis_clients()
    elif command == 'D':
        pass
    else:
        print('Invalid command')```

Alguien sabe porque no me imprime la bienvenida? cuando lo corro en la terminar, tengo que poner C o D, para que continue. Hice algo mal?
Gracias!

clients = "Rodri, Juan,"

def create_client(client_name):
    global clients
    if client_name not in clients:
        clients += client_name 
        _add_coma()
    else:
        print("este cliente ya esta en la lista")

def list_clients():
    global clients
    print(clients)

def _add_coma():
    global clients
    clients += ","

def _print_welcome():
    print("Bienvenidos a adowy ventas")
    print("-" * 50)
    print("Que deseas hacer hoy?")
    print("[C]rea un cliente")
    print("[E]limina cliente")

if __name__ == "__main__":
    command = input()
    if command == "C":
       client_name = input("como se llama el cliente?")
       create_client(client_name)
       list_clients()

    elif command == "D":
        pass
    else:
        print("la opcion es incorrecta")

buenas tardes, compañeros sigo con fallos en vise code, no se que pasa si es el código o lago me falta

Mi código como va por ahora… cambie cllients por un arreglo para poder hacer el delete

clients = ['Pablo', 'Ricardo']

def Create_Cliente(client_name):
	global clients
	
	if client_name not in clients:

		clients.append(client_name)
		print(clients)
		print('Client added')

	else:

		print('The name already is in clienṭ\'s list!!!')

def delete_client(client_name):
	global clients
	clients.remove(client_name)
	print(clients)
	print('Client removed')



def print_welcome():
	
	global clients
	print('Welcome to Platzi Sales')
	print('*' * 50)
	print('What would you like to do today?')
	print('[C]reate Client')
	print('[D]elete client')
	command = input('Please tell us your option: ')

	if (command == "C"):

		client_name = input('Please enter the name you want to create: ')
		Create_Cliente(client_name)

	elif (command == "D"):
		
		client_name = input('Please enter the name you want to delete: ')
		delete_client(client_name)

	else:

		print('Invalid option: ')


		
		
		




if __name__ == '__main__':
	

	print_welcome()