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

For loops

18/49
Recursos

Las iteraciones es uno de los conceptos más importantes en la programación. En Python existen muchas manera de iterar pero las dos principales son los for loops y while loops.

Los for loops nos permiten iterar a través de una secuencia y los while loops nos permiten iterara hasta cuando una condición se vuelva falsa.

for loops:

  • Tienen dos keywords break y continue que nos permiten salir anticipadamente de la iteración
  • Se usan cuando se quiere ejecutar varias veces una o varias instrucciones.
  • for [variable] in [secuencia]:

Es una convención usar la letra i como variable en nuestro for, pero podemos colocar la que queramos.

range: Nos da un objeto rango, es un iterador sobre el cual podemos generar secuencias.

Aportes 89

Preguntas 17

Ordenar por:

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

A partir de Python 3.6 (PEP 498 : https://www.python.org/dev/peps/pep-0498/)
se puede usar format asi para este caso:
elif command == ‘S’:
client_name = _get_client_name()
found = search_client(client_name)

    if found:
        print(f'The client {client_name} is in the client\'s list')
    else:
        print(f'The client {client_name} is not in our client\'s list')

Entiendo que se aplican los conceptos del for, pero yo lo hice de otra forma que seria mas directa, sin necesidad de dividir el string ni realizar el for

def search_client(client_name):
  return client_name in clients

retorna True si encuentra el valor en el string de lo contrario retorna False

Hay algo que no entendí, cuando ponemos "clients.split(’,’) porque en esta funcion no es necesario hacer GLOBAL a la variable CLIENTS?

Mi código actualizado y comentado de este ejercicio, espero les sirva 😎👍

#proyecto_final
clients = 'Rogelio, Paco, Sebastian, Adrian' #creamos el string con los nombres de los clientes

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
	#Mostramos el menu al usuario
	print ('[C]reate client')
	print ('[R]ead client\'s list ')
	print ('[U]pdate client')
	print ('[D]elete client')
	print ('[S]earch client')


def verify_client(client_name):
	"""
	Esta funcion sirve para verificar si un cliente se encuentra en el string o no.
	Recibe un parametro, el nombre del cliente y devuelve un valor positivo si el nombre
	se encuentra en el string y viceversa
	"""
	global clients
	if client_name in clients:
		return True
	else:
		return False


def _client_not_found_tollgate():
	"""
	Esta funcion sirve para mostrar un mensaje preestablecido si un cliente no se encuentra 
	en el string de los clientes
	"""
	print ("Client is not in client\'s list")


def create_client(client_name):
	"""
	Esta función sirve para agregar un cliente al string de la lista
	"""
	global clients  #Utilizamos global para definir que la variable es la global, es decir la que definimos con pablo y ricardo
	if (verify_client(client_name)): #Ejecutamos la funcion verify client, si la cadena del nombre del cliente está en el string etonces...
		print('Client already exists') #Mostramos un mensaje al usuario
	else:
		_add_coma() #Si no, ejecutamos la funcion _add_coma para agregar una coma y un espacio al último nombre
		clients += client_name #adicionamos el nuevo string pero con la funcion capitalize para poner el primer caractér en mayuscula y seguir con el formato


def read_client_list(): 
	"""
	función que imprime la lista de clientes
	"""
	global clients
	print (clients) #imprimimos el string clientes, es decir la lista de clientes


def update_client(client_name):
	"""
	Función que sirve para actualizar el nombre de un cliente, 
	recibe un parametro que es el string del nombre del cliente a editar
	"""
	global clients #Utilizamos global para definir que la variable es la globarl, es decir la que definimos con pablo y ricardo
	if (verify_client(client_name)): #Si el cliente se encuentra registrado entonces...
		updated_client_name = input('What is the updated client name?').capitalize() #Pedimos al usuario que ingrese el nuevo nombre de cliente
		clients = clients.replace(client_name, updated_client_name) #Ejecutamos la funcion replace, la cual recibe dos parametros, el string a reemplazar
		#y el string con el cual se remplazara al anterior
	else:
		_client_not_found_tollgate() #sino, ejecutamos la funcion _client_not_found_tollgate() para mostrar el mensaje que no se ha encontrado el cliente (string)
		

def delete_client(client_name):
	"""
	Función para borrar el cliente (Remplazar por una cadena vacía)
	"""
	global clients
	if (verify_client(client_name)): #Si el cliente está registrado, entonces...
		clients = clients.replace(client_name + ', ', '') #Remplazamos el nombre concatenado con una , y un espacio y lo remplazamos por una cadena vacía
	else:
		_client_not_found_tollgate() #sino, ejecutamos la funcion _client_not_found_tollgate() para mostrar el mensaje que no se ha encontrado el cliente (string)


def search_client(client_name): 
	"""
	Función para buscar a un cliente
	"""
	global clients
	clients_csv = clients.split(', ')  #CSV: comma-separated values | La función split separa los valores cuando encuentra el caracter/string que recibe como parámetro
	for client in clients_csv: #Es como el foreach | Por cada nueva_variable (que usaremos internamente) que esté en CSV(por ejemplo)
		if client != client_name: #Se ejecuta una comparación, si el cliente no coincide entonces...
			continue #continue, fuerza a la siguiente iteración que suceda
		else:
			return True #caso contrario retornamos un valor true


def _add_coma():  #el nombre de la función comienza con un guión bajo para establecer que será una funcion privada
	"""
	Función que sirve para agregar una coma y un espacio para separar los substrings
	"""
	global clients
	clients +=", " #se agrega una coma y un espacio al string para separar los nuevos valores


def _get_client_name():
	"""
	Función que sierve para obtener el nombre del cliente con el formato capitalizado
	"""
	return input('What is the client name?').capitalize()  #guardamos en la variable client_name el valor de los caracteres que ingresa el usuario hasta recibir un enter


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" procedemos a realizar los pasos de create/crear
		client_name = _get_client_name() #Ejecutamos la función para obtener el nombre del cliente
		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
		read_client_list() #Ejecutamos la funcion listar clientes 
	elif command == 'r': #si el comando es igual al caracter "r" procedemos a realizar los pasos de read/leer
		read_client_list()  #Ejecutamos la funcion listar clientes 
	elif command == 'u': #si el comando es igual al caracter "u", procedemos a realizar los pasos de update/actualizar
		client_name = _get_client_name() #Ejecutamos la función para obtener el nombre del cliente
		update_client(client_name)
		read_client_list() #Ejecutamos la funcion listar clientes 
	elif command == 'd': #si el dato ingresado por el usuario es "d" procedemos a realizar los pasos de delete/eliminar
		client_name = _get_client_name() #Ejecutamos la función para obtener el nombre del cliente
		delete_client(client_name)
		read_client_list() #Ejecutamos la funcion listar clientes 
	elif command == 's': ##si el dato ingresado por el usuario es "s" procedemos a buscar al cliente con el nombre ingresado
		client_name = _get_client_name() #Ejecutamos la función para obtener el nombre del cliente
		found = search_client(client_name) #Guardamos en la variable found lo que retrona la función search_client
		if found:
			print (f'The client: {client_name}, has been found') #si la función devuelve un true mostramos el mensaje que se ha encontrado el cliente
		else:
			print (f'The client: {client_name}, has not been found')#viceversa
	else:
		print('ERROR: Invalid command') #Si el usuario no digita alguna de nuestras opciones entonces mostramos un mensaje de error
input() #Escribimos un input para que el programa haga una pausa y no cierre la ventana hasta recibir un enter

Por qué esta vez no necesitó declarar global clients dentro de la función?

Si estás usando Python 3.10 puede hacer uso de la nueva feature match-case.

def main() -> None:
    _print_welcome()

    command = input()
    command = command.upper()

    match command:
        case "C":
            client_name = _get_client_name()
            create_client(client_name)
            list_clients()
        case "L":
            list_clients()
        case "D":
            client_name = _get_client_name()
            delete_client(client_name)
            list_clients()
        case "U":
            client_name = _get_client_name()
            updated_client_name = input("What is the updated client name? ")
            update_client(client_name, updated_client_name)
            list_clients()
        case "S":
            client_name = _get_client_name()
            is_client_found = search_client(client_name)

            if is_client_found:
                print("The client is in the client's list")
            else:
                print(f"The client {client_name} is not in the client's list")
        case _:
            print("Invalid command")

no es más corto el codigo de esta forma?

 for client in clients_list:
        if(client_name == client):
            return True
    return False

Nuevamente dejo mi código… al código que dejo el profe le hice una modificación, cree una función que mira el resultado de la ejecución de la función que hace la búsqueda y determina que imprimir, esto solo para sacar de la función welcome la decision, creo yo que en la bienvenida no debería estar el final de la ejecución del programa:


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 update_client(client_name):
	
	global clients
	
	if client_name not in clients:
		
		print('The name you pick is not in the clienṭ\'s list!!!')
	
	else:

		updated_client_name = input('Enter the new name: ')
		clients.remove(client_name)
		clients.append(updated_client_name)
		print(clients)
		print('Client Updated')

def search_client(client_name):
	
	global clients

	for client in clients:

		if client_name == client:

			return True

		else: 

			continue

def _finder(client_name):
	
	client_finded = search_client(client_name)

	if client_finded :

		print('The client {} is in the client\'s list'.format(client_name))

	else:

		print('The client {} isn\'t in the client\'s list'.format(client_name))


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

	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)

	elif (command == 'U'):
		client_name = input('Please enter the name you want to Update: ')
		update_client(client_name)

	elif (command == 'S'):
		client_name = input('please enter the name you want to Seach: ')
		_finder(client_name)


	else:

		print('Invalid option: ')


		
		
		




if __name__ == '__main__':
	

	welcome()

RECOMENDACION IMPORTANTE:
No crear el string (clients) con espacios después de la coma

clients = ‘Pablo, Ricardo, claudia, yenni’

clients_list = clients.split(’,’)
Esta funcion generaria un error, por que separa con un espacio después del segundo termino. le pega un espacio " " a los elementos del split()

[‘Pablo’, ’ Ricardo’, ’ claudia’, ’ yenni’]``````

Aprende a usar for loops nivel super sayayin 7 - ¡Dios!.

.
Pasa de 🐍 ➡️ 🐉 con for, while y generadores
.
Los loops es de lo más utilizado en la programación por lo que es muy importante aprenderlo bien y sacarle provecho. Les dejo diferentes maneras de aplicar un for loop. No te quedes con lo básico y domina los loops mirando el video increíble de una Pycon.
.
1.- Sintaxis fundamental de un loop for:

for valor in secuencia:
	Body of for

.
2.- Utilizando un rango con range():

# generando un rango con valores de 0 al número indicado
	for i in range(10):	# genera una secuencia 0 - 9
		pass

# estableciendo los valores de la secuencia en range()
	range(start, stop, step_size)

print(range(10))
	# range(0, 10)

print(list(range(10)))
	# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(list(range(2, 8)))
	# [2, 3, 4, 5, 6, 7]

print(list(range(2, 20, 3)))
	# [2, 5, 8, 11, 14, 17]

.
3.- Combinando range() con len()para obtener la longitud de una lista de elementos:

genre = ['pop', 'rock', 'jazz']

for i in range(len(genre)):
    print(i)
	# 0
	# 1
	# 2

.
4.- Generando listas, combinando strings con ‘for loops:’

genre = ['pop', 'rock', 'jazz']

# iterate over the list using index
for i in genre:
    print('I like', i)

# Resultado: 
I like pop
I like rock
I like jazz

.

Solo reformule el condicional para evitar el uso del continue.

def search_client(client_name):
    clients_list = clients.split(',')

    for client in clients_list:
        if client == client_name:
            return True

Leyendo los comentarios me di cuenta de que no es necesario utilizar la palabra reservada global en clients.split, ya que no se modifica, solo se genera otro objeto a partir de este.

excelente curso deberia uno d empezar en python con este, ya que va uno haciendo mientras se va aprendiendo, en un proyecto, en los demas cursos, son teoria y ejemplos que uno no saben para que pueden servir

¿ continua y pass es lo mismo?
Porque puse pass y el código sigue funcionando normal

Para los que tengan dudas sobre la variable “global”

a = 1
  
# Uses global because there is no local 'a' 
def f(): 
    print 'Inside f() : ', a 
  
# Variable 'a' is redefined as a local 
def g():     
    a = 2
    print 'Inside g() : ',a 
  
# Uses global keyword to modify global 'a' 
def h():     
    global a 
    a = 3
    print 'Inside h() : ',a 
  
# Global scope 
print 'global : ',a 
f() 
print 'global : ',a 
g() 
print 'global : ',a 
h() 
print 'global : ',a 

En que momento creo la opción [L]ist client ?

Dejo mi codigo actualizado:

clients = 'Pablo, Ricardo'


def _print_welcome():
    print('WELCOME A PLATZI VENTAS')
    print('*' *50)
    print('What would you like to do today?')
    print('Create client')
    print('[C]reate client')
    print('[L]]ist client')
    print('[U]pdate client')
    print('[D]elete client')
    print('[S]earch client')


def _get_client_name():
    return input('What is the client name?')


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


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


def search_client(client_name):
    client_list = clients.split(',')

    for client in client_list:
        if client != client_name:
            continue
        else:
            return True


def list_clients():
    global clients
    print(clients)


def update_client(client_name,updated_client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', updated_client_name + ',')
    else:
        print('Client is not in client list')


def delete_client(client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', '')
    else:
        print('CLient is not in the client list')


if __name__ == '__main__':
    _print_welcome()    

    command = input('Command: ')
    command =  command.upper()

    if command == 'C':
        client_name = _get_client_name()
        create_client(client_name)
        #list_clients()
        print(clients)

    elif command == 'L':
        list_clients()
    
    elif command == 'D':
        client_name = _get_client_name()
        delete_client(client_name)
        list_clients()    
    
    elif command == 'U':
        client_name = _get_client_name()
        updated_client_name = input('What is te updated client name?')
        update_client(client_name,updated_client_name)
        list_clients()
   
    elif command == 'S':
        client_name = _get_client_name()
        found = search_client(client_name)
        if found:
            print('The client is in the client list')
        else:
            print('The client: {} is not in the client\'s list'.format(client_name))
    else:
        print('ERROR Invalid command')```

No seria mejor:

def search_client(client_name):
clients_list = clients.split(’,’)

if client_name in clients_list:
    return True

return False

Excelente clase!!

Código de esta clase con comentarios incluidos de lo que se ha creado clase por clase

clients = 'pablo,ricardo,'


def create_client(client_name):
    global clients

    if client_name not in clients:                          
#Clase13 Condicional para verificar que el cliente no este en la lista
        clients += client_name                              
#Clase13
        _add_comma()
    else:                                                   
#Clase13
        print('Client already is in the client\'s list')    
#Clase13 - imprime en la terminal que el cliente ya se encuentra en la lista de clientes


def list_clients():   
#esta funcion no recibe ningún parámetro, solo lista los clientes
    global clients

    print(clients)

def update_client(client_name, update_client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', update_client_name + ',')
    else:
        print('Clients is not in clients list')


def delete_client(client_name):                                 
#Clase17 solo necesitamos el nombre del cliente
    global clients                                              
#Clase17

    if client_name in clients:                                  
#Clase17
        clients = clients.replace(client_name + ',', '')        
#Clase17: seleccionamos el nombre del cliente con su coma y lo sustituimos por un string vacio                      
 #Clase17
    else:
        print('Clients is not in clients list')                 #Clase17

def search_client(client_name):                                 
# Clas19 función que recibe como argumento/parametro client_name
    client_list = clients.split(',')                            
#Clase19 funcion split nos permite dividir un string en una lista --los objetos de una lista ---- mejor usar un CSV

    for client in client_list:                                  #Clase19
        if client != client_name:                           #Clase19
            continue                                              #Clase19
        else:                                                        #Clase19
            return True                                         #Clase19


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


def __print_welcome():                                          #Clase13
    print('*'*8)
    print('Welcome')                                                 #Clase13
    print('*'*8)                                                           #Clase13
    print('What would you like to do today? ')          #Clase13
    print('[C]reate client')                                         #Clase13
    print('[L]ist clients')
    print('[U]pdate client')                                         #Clase16
    print('[D]elete client')                                          #Clase13
    print('[S]earch client')                                         #Clase19

#refactorizamos, donde generamos un metodo auxiliar que regresa el nombre del cliente
def _get_client_name():                                                #Clase16
    return input('What is the client name?')                    #Clase16

if __name__ == '__main__':
    __print_welcome()
    command = input()
    command = command.upper()                        #Clase16
    if command == 'C':                                          #Clase13
#        client_name = input ('What is the client name? ')      #Clase13
        client_name = _get_client_name()               #Clase16
        create_client(client_name)                           #Clase13
        list_clients()                                                   #Clase13

    elif command == 'L':
        list_clients()

    elif command == 'D':                                        #Clase
        client_name = _get_client_name()               #Clase17
        delete_client(client_name)                            

 #Clase17 - funcion que borre el nombre del cliente: delete_client
        list_clients()

    elif command == 'S':                                                                #Clase19
        client_name = _get_client_name()                                                #Clase19 queremos encontrar el nombre del cliente
        found = search_client(client_name)                                              #Clase19 funcion search client va a tener un valor de regreso
        if found:                                                                       #Clase19
            print('The client is in the client\'s list')                                #Clase19
        else:
            print('The Client: {} is not our client\'s list'.format(client_name))       #Clase19 manipulación de string con format, si el cliente no esta en nuestra lista de clientes replazar con


    elif command == 'U':
#        client_name = input()
        client_name = _get_client_name()
        update_client_name = input('What is the update client name')                    #Clase16
        update_client(client_name, update_client_name)
        list_clients()                                                                  #Clase16


    else:
        print('Invalid command')

Mi repositorio con el codigo:

https://github.com/sango09/CRUD-Projects

✌✌✌

les dejo el código:


clients = 'luis,juan,'
def create_client(client_name):
    global clients

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

def list_clients():   
    global clients
    print(clients)

def update_client(client_name, update_client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', update_client_name + ',')
    else:
        print('Clients is not in clients list')

def delete_client(client_name):
    global clients

    if client_name in clients:
        clients=clients.replace(client_name+',','')
    else:
        _not_in_list()

def search_client(client_name):
    client_list= clients.split(',')
    for client in client_list:
        if client != client_name:
            continue
        else:
            return True

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

def _get_client_name():
    return input('What is the client name?')


def _not_in_list():
    print('Client not in list')

def _print_welcome():
    print('WELCOME TO SALES')
    print('*'*50)
    print('What would like to do? ')
    
    print('[C]reate client')
    print('[L]ist clients')
    print('[U]pdate client')
    print('[D]elete client')
    print('[S]earch client')

if __name__ == "__main__":
    _print_welcome()

    command = input()
    command= command.upper()
    if command == 'C':
        client_name= _get_client_name()
        create_client(client_name)
        list_clients()
    elif command=='L':
        list_clients()
    elif command=='U':
        client_name= _get_client_name()
        updated_name=input('Whats the new client name')  
        update_client(client_name,updated_name) 
        list_clients()
    elif command == 'D':
        client_name= _get_client_name()
        delete_client(client_name)
        list_clients()
    elif command == 'S':
        client_name= _get_client_name()
        found=search_client(client_name)
        if found:
            print('{} is in the clients list' .format(client_name))
        else:
            print('{} is NOT in the clients list'.format(client_name))
    else:
        print('Invalid command!! ')```

Excelente clase, Algo que debe haber notado: nuestros programas a menudo muestran repeticiones. Python posee un concepto poderoso, hace uso del llamado looping (ciclos, o en herga iteraciones), el cual podemos usar para acortar el código repetitivo! Por ahora intente este fácil ejemplo:

for name in "John", "Sam", "Jill": print("Hello " + name)

Solo me encuentra el primer nombre que tengo en la lista, si realizo la comparación con los otros usuarios respectando sus mayúsculas nunca los encuentra, no ingresa al True, creería que el problema puede estar en la funcion split al separar el string en una lista, lamentablemente no he podido encontrar la solución
Se puede cambiar el format(client\_name) por la siguiente linea de código.  print(f"The client: {client\_name} is not in our client's list") ```js print(f"The client: {client_name} is not in our client's list") ```

Otra forma de insertar variables en nuestros strings es:

f'The client:{client_name} is not in our client\'s list'

Muy bueno. Tener en cuenta los espacios del string clients.split(', ') con un espacio, aunque normalmente un .csv no debería venir con espacio.

¿Porque en este caso no se declaro la variable global ‘clients’ al principio del metodo (search_client)?

De hecho por costumbre lo hice de esta manera y curiosamente la busqueda no la realizo satisfactoriamente.

Otra Forma de hacer lo que el profesor realizo en el curso

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 delete_client(client_name): # Creo una funcion para eliminar un cliente
    global clients
    if client_name in clients:
        _add_comma()
        clients = clients.replace(client_name + ',', '')
        print (f'Cliente {client_name} Fue Eliminado Satisfactoriamente')
    else:
        print(f'El Cliente {client_name} No Existe')

def update_client(client_name, update_client_name): # Creo una funcion para actualizar el nombre del cliente
    global clients
    if client_name in clients:
        _add_comma()
        clients = clients.replace(client_name + ',', update_client_name + ',')
        print (f'Cliente {client_name} Fue Actualizado Satisfactoriamente a {update_client_name}')
    else:
        print(f'El Cliente {client_name} No Existe')

def search_client(client_name): # Creo una funcion para buscar un cliente
    global clients
    found = False
    if client_name in clients:
        found = True
    return found

def list_cleints(): # list_cleints muestra los clientesa 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('|_________________________________________|')
    
    global command
    command = input('Ingresa una opcion: ').upper()
       
    return _get_client_action(command) # retorno el valor de la variable command y lo paso a la funcion _get_client_action

def _get_client_action(command): # Creo una Función para ejecutar las acciones de los clientes
      
    if command == 'C':
        list_cleints()
        client_name = _get_client_name()
        create_client(client_name)
        list_cleints()

    elif command == 'E':
        list_cleints()  
        client_name = _get_client_name()
        delete_client(client_name)
        list_cleints()
        pass

    elif command == 'A':
        list_cleints()
        client_name = _get_client_name()
        update_client_name = input('Ingresa el nuevo nombre del cliente: ')
        update_client(client_name ,update_client_name)
        list_cleints()
        

    elif command == 'B':
        list_cleints()
        client_name = _get_client_name()
        found = search_client(client_name)
        if found:
            print(f'El cliente {client_name} se encuentra en la lista')
        else:
            print(f'El cliente {client_name} no se encuentra en la lista')
        list_cleints()
    

    elif command == 'S':
        pass
    else:
        print('                                         ')
        print(' __________Comando no encontrado__________')
      
        _print_welcome()

def _get_client_name(): # Creo una funcion para pedir el nombre del cliente
    client_name = input('Ingresa el nombre del cliente: ')
    return client_name


if __name__== '__main__':
    _print_welcome()

Mi modificación a la function list_clients() fue que imprimiera por separado los nombres, utilice la built-in function split() y un for loop

def list_clients():
    global clients

    clients_list = clients.split(',')
    for i in clients_list:
        print(i)

me gusta mucho este curso

puedes usar también esta sentencia para pasar variables dentro de una string

print(f'cant found the client {client_name} in our client list')

code


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 is ready register')


def list_clients():
    global clients
    print(clients)


def update_client(client_name,update_client_name):
    global clients
    if client_name in clients:
        clients = clients.replace(client_name + ',', update_client_name + ',')
    else:
        print('client is not in client list')

def delete_client(client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', '')
    else:
        print('client is not in clients list')


def search_client(name_client):
    global clients
    clients_list = clients.split(',')

    for cilient in clients_list:
        if clients != client_name:
            continue
        else:
            True


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




def _print_welcome():
    print('welcome to platzi sells')
    print('*' * 50)
    print('what woul you like to do')
    print('[C]create client')
    print('[D]delete client')
    print('[U] update')
    print('[S] search client')

def _get_client_name():
    return input('what is the client name ')

if __name__ == '__main__':
    _print_welcome()

    command = input()
    command = command.upper()

    if command == 'C':
        client_name = _get_client_name() 
        create_client(client_name)
        list_clients()

    elif command == 'D':
        client_name = _get_client_name()
        delete_client(client_name)
        list_clients()

    elif command == 'U':
        client_name = _get_client_name()
        update_client_name = input('what is the updated client name')
        update_client(client_name,update_client_name)
        list_clients()

    elif command == 'S':
        client_name = _get_client_name()
        found = search_client(client_name)
        if found:
            ('the client is in the list')
        else:
            print(f'cant found the client {client_name} in our client list')
    else:
        print('invalid command')




El GOTO lo ‘prohibieron’ hace años porque generaba código espagueti muy difícil de seguir y corregir, yo lo use bastante en mis tiempos. Menos mal que ya paso a la historia.

pueden intentar este format string

print(f"The client: {client_name} is not in our client's list")

este es el ejemplo que yo hice para llegar del 1 al 20

Este es el ejemplo para llegar del 1 al 10

Y por ultimo este es solo un chiste para hacerlos reir como ami pero es como llegar al cero 😂

Potente el Github Copilot

Los CSV son los valores separados por coma en una cadena de texto. Es una forma de organizar datos tabulares.

Código de la clase, con el comentario dentro del código que permite saber que se trabajo por clase y que partes son las que vamos incluyendo a medida que avanzamos.

<print('The client: {} is not in our client\'s list'.format(client_name)>

Para evitar las llaves y el format:

<print('The client:', client_name, 'is not in our client\'s list')>


utilizar FOR

Actualización de mi codigo

clients = 'Pablo, Ricardo, Pepe, Julio, '  # creamos el string


def create_client(client_name):
    global clients  # Utilizamos global para definir que la variable es la global, es decir la que definimos con pablo y ricardo
    if client_name not in clients:  # Condicion para saber si un cliente ya existe o no
        clients += client_name  # adicionamos el nuevo string
        _add_comma()  # ejecutamos la funcion _add_coma para agregar una coma y un espacio
    else:
        print('Client already is in the client\'s list')


def list_clients():
    """
        Función que muestra la lista de clientes
    """
    global clients

    print(clients)  # imprimimos el string clientes


def update_client(client_name):
    global clients

    if client_name in clients:
        updated_client_name = input('What is the updated client name?: ')
        clients = clients.replace(client_name + ', ', updated_client_name.capitalize() + ', ')
    else:
        _not_client_list(client_name)


def delete_cliente(client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ', ', '')
    else:
        _not_client_list(client_name)


def search_client(client_name):
    # La función split separa los valores cuando encuentra el caracter/string que recibe como parámetro
    clients_list = clients.split(', ')

    for client in clients_list:
        if client != client_name:  # Se ejecuta una comparación, si el cliente no coincide entonces...
            continue  # Continue, fuerza a la siguiente iteración que suceda
        else:
            return True  # Caso contrario retornamos un valor


def _add_comma():
    """
        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 _print_welcome():
    print('WELCOME TO PLATZI VENTAS')
    print('*' * 50)
    print('What would yo like to do today?')
    print('[C]reate cliente')
    print('[U]pdate cliente')
    print('[D]elete cliente')
    print('[S]earch cliente')
    print('')


def _get_client_name():
    """
        Guardamos en la variable client_name el valor de los caracteres que
        ingresa el usuario hasta recibir un enter
    """
    return input('What is the client name?: ')


def _not_client_list(client_name):
    print(f'The client: {client_name} is not in client\'s list')


if __name__ == '__main__':  # funcion main
    _print_welcome()

    command = input()
    command = command.upper()

    if command == 'C':
        client_name = _get_client_name()
        create_client(client_name.capitalize())
        list_clients()
    elif command == 'D':
        client_name = _get_client_name()
        delete_cliente(client_name.capitalize())
        list_clients()
    elif command == 'U':
        client_name = _get_client_name()
        update_client(client_name.capitalize())
        list_clients()
    elif command == 'S':  # Si el dato ingresado por el usuario es "s" procedemos a buscar al cliente con el nombre ingresado
        client_name = _get_client_name()  # Ejecutamos la función para obtener el nombre del cliente
        # Guardamos en la variable found lo que retrona la función search_client
        found = search_client(client_name)

        if found:
            # si la función devuelve un true mostramos el mensaje que se ha encontrado el cliente
            print('The client is in the client\'s list')
        else:
            _not_client_list(client_name.capitalize())
    else:
        print('Invalid command')

Código actualizado:


clients = 'luisa, 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 updated_client(client_name, updated_client_name):
	global clients

	if client_name in clients :
		clients = clients.replace (client_name + ',', updated_client_name + ',' )
	else:
		print ('Client is no it client\'s list')


def delete_client(client_name):
	global clients

	if client_name in clients:
		clients = clients.replace(client_name + ',', '')
	else:
		print('Client is not in client\'s list')

def search_client(client_name):
	clients_list = clients.split(',')

	for client in clients_list:
		if client != client_name:
			continue
		else:
			return True

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 ('[L]ist client')
	print ('[U]pdated client')
	print ('[D]elete client')
	print ('[S]earch client')


def _get_client_name ():
	return str.lower(input('What is the client name ? '))


if __name__ == '__main__':
	_print_welcome()

	command = input()
	command = command.upper()

	if command == 'C':
		client_name = _get_client_name()
		create_client(client_name)
		list_clients()
	elif command == 'L':
		list_clients()
	elif command == 'U':
		client_name = _get_client_name()
		updated_client_name = str.lower(input ('What is the updated client name ? '))
		updated_client(client_name, updated_client_name)
		list_clients()
	elif command == 'D':
		client_name = _get_client_name()
		delete_client(client_name)
		list_clients()
	elif command == 'S':
		client_name = _get_client_name()
		found = search_client(client_name)

		if found:
			print('The client is in the client\'s list')
		else:
			print('The client: {} is not in our client\'s list'.format(client_name))

	else:
		print ('Invalid command')

He implementado dos métodos diferentes para encontrar clientes

def _encontrar_cliente(nombre_cliente):
    global clientes

    return clientes.find(nombre_cliente) > -1

def _encontrar_cliente_tabulados(nombre_cliente):
    global clientes
    encontrado = False 

    listado_cliente = clientes.split(",")

    for cliente in listado_cliente:
        if(cliente != nombre_cliente):
            continue
        else:
            encontrado = True
            break
    return encontrado

Muy bien explicado.

listas

El comando “GOTO” se usa en el lenguaje Assembler.

"""Simpre hay que utilizar range() y dentro de los parentesis
lo que queremos recorrer en el for"""

for i in range(10):
	print(i)

print('-' *20)


nombre = 'Mario'
for i in range(len(nombre)):
	print(nombre[i])

print('-' *20)


for i in range(len(nombre)):
	if nombre[i] == 'r':
		print(nombre[i])

print('-' *20)


encontrado = False
for i in range(len(nombre)):
	if nombre[i]  == 'r':
		encontrado = True
	if encontrado:
		print(nombre[i])

print('-' *20)```

Aquí esta una forma distinta de crear la función search_client usando la variable clients como global ademas de prescindir del else

def search_client(client_name):
	global clients

	clients = clients.split(",")
	for i in clients:
		if i == client_name:
			return True

Por que en el for el difine una variable como client, en que momento esa variable toma los valores que tiene guardados en clients_list

for client in clients_list:
        if client != client_name:
            continue

Excelente metodología para enseñar, gracias!

Men ajajaj Me siento Dios cuando encuntro un error y solucino de mi codigo jajajaajjajajajajajja

La condicion puede reducirse sin el else, cambiando la condicion.

def searchClient(nombre):
    global clients
    clientList = clients.split(',')
    for client in clientList:
        if nombre == client:
            return True
    return False

me parece

¿En que parte creo la opción L? O_O

Buena clase!!

Yo todavía utilizo las declaraciones GOTO en SQL xD

El método .split() devuelve una LISTA aquí un enlace por si desean ampliar

https://www.google.com/amp/s/jolthgs.wordpress.com/2012/02/12/metodos-join-y-split-en-python/amp/

Nose porque no encuentra nada la funcion search si alguien sabe por q se lo agradeceria 😃


clients = 'Pablo, Ricardo'

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

def list_clients():
	global clients
	print(clients)


def update_client(client_name, updated_client_name):
	global clients

	if client_name in clients:
		clients = clients.replace(client_name, updated_client_name)
	else :
		print('Client is not in client list')


def delete_client(client_name):
	global clients

	if client_name in clients:
		clients = clients.replace(client_name,'')
	else:
		print('Client is not in clients list')


def search_client(client_name):
	clients_list = clients.split(',')

	for client in clients_list:
		if client != clients_list:
			continue
		else:
			return True


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


def _print_welcome():
	print('WELCOME TO PLATZI VENTAS')
	print('*'*50)
	print('What would you like to do today?')
	print('[C] create client')
	print('[U] update client')
	print('[D] delete client')
	print('[L] delete client')
	print('[S] search client')


def _get_client_name():
	return input('What is the client name?   ')



if __name__ == '__main__':  #si el nombre del arhivo es main haz esto 
							#se suele poner esto al incio de los archivos
	
	_print_welcome()

	command = input()
	command = command.upper()


	if command == 'C':
		client_name = _get_client_name()
		create_client(client_name)
		list_clients()
	elif command == 'D':
		client_name = _get_client_name()
		delete_client(client_name)
		list_clients()
	elif command == 'U':
		client_name = _get_client_name()
		updated_client_name = input('What is the updated client name ?  ')
		update_client(client_name, updated_client_name)
		list_clients()
	elif command == 'L':
		list_clients()
	elif command == 'S':
		client_name = _get_client_name()
		found = search_client(client_name)

		if found:
			print('The client is in the client\'s list')
		else:
			print('The client : {} is not in our client\'s list'.format(client_name))

	else:
		print('Invalid Comand')

		```

Si alguno va llevando el código a la par del tutor, es recomendable agregarle comentarios con
"#esto es un comentario" entre funciones, variables, etc.
Particularmente me ayudo mucho en el estudio del código.

el porque podamos hacer split a clients dentro de la funcion search_client sin hacer referencia a global clients es quiza, porque en funciones anteriores ya se ha hecho global client y clients esta en memoria haciendo caso omiso a no colocar global clients?

Lo coloque así ya que me repetia 3 veces el string (cuando utilizaba :continue: )

<def search_client(name_new_client):
    global clients
    client_ls = clients.split(',')

    for client in client_ls:
        if client != name_new_client :
            print('The client: {} is not in the client´s list'.format (name_new_client))
            return False
        else:
            print('The client: {} is in the client´s list'.format (name_new_client))
            return True>

Utilizando listas quedaría:

elif user_decision == 'S':
        client_name = _get_client_name()
        search_client(client_name)
def search_client(client_name):
    global clients
    client_name = client_name.lower()

    if client_name in clients:
        print('The client is in the client\'s list')
        return
    print('The client: {} is not in the client\'s list'.format(client_name))

Help me please

¿En que momento del este ciclo se llena el indice client que se compara con client_name en el ford?
La verdad no veo como se le asignan los valores de la client_list.
De antemano gracias por su ayuda.

def search_client(client_name):
client_list = clients.split(’,’)

for client in client_list:
    print (client)
    if client != client_name:
        continue
    else:
         return True

Hola, una acotación: La variable found puede ser True o None, en ningún momento se le indica en la función search_client que retorne un valor False.

Estoy aprendiendo bastante con este curso

Iteraciones: En python hay muchas formas de iterar, pero las principales son, atravez de los For lops y While loops

*For Lops(Secuencia)

*While Lops(Condicion falsa)

split()

Les dejo mi repo por si quieres tomar el codigo hasta este video

GITHUB

Por accidente, mi navegador empezó a correr el video a velocidad de 0.5x me ayudó mucho a seguir los ejemplos en mi propia cosnola sin hacer tanta pausa y sin regresar tantas veces el video (como bonus extra, el profe se escucha como borracho, pero se le entiende más bien)

Tengo un detalle que supongo sabré resolver en los siguientes videos:
Si uso el primer nombre de la lista, sí lo encuentra, pero si uso el segundo, me dice que no existe, no estoy seguro que esté funciondo el comando for, no sé si está bien escrito o si tengo algún error que aún no veo

Hice un poco diferente la función search

def search_customer(customer_name):
    global customers
    aux=0
    string_customers=customers.split(",") #La función split() transforma un string en una lista o un
    #arreglo divididos por un separador, en este caso una coma
    if customer_name not in string_customers:
        print("Customer not in list, please check it")
    else:
        for customer in string_customers:
            if customer_name == customer:
                print("Customer ", customer," was found in ", aux," position")
                break
            aux=aux+1

Buena clase

share my code

clients = 'pablo,ricardo,'

def create_client(client_name):
    global clients
    if client_name not in clients:
        clients += client_name
        _add_comma()
    else:
        get_message_client_exist(True)

def list_clients():
    global clients

    print(clients)

def update_client(client_name, updated_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', updated_name + ',')
    else:
        get_message_client_exist(False)

def delete_client(client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',' ,"")
    else:
        get_message_client_exist(False)


def search_client(client_name):
    clients_list = clients.split(',')

    for client in clients_list:
        if client != client_name:
            continue
        else:
            return True


def _add_comma():
    global clients

    clients += ','

def _get_client_name():
    return input('What is the client name?')

def get_message_client_exist(mod):
    if (mod):
        return print('Client already in client\'s list')
    else:
        return print('Client not in 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('[L]ist client')
    print('[U]pdate client')
    print('[D]elate client')
    print('[S]earch client')


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

    if command == 'C':
        client_name = _get_client_name()
        create_client(client_name)
        list_clients()

    elif command == 'L':
        list_clients()

    elif command == 'D':
        client_name = _get_client_name()
        delete_client(client_name)
        list_clients()

    elif command == 'U':
        client_name = _get_client_name()
        updated_name = input('What is the new client name?')
        update_client(client_name, updated_name)
        list_clients()
    elif command == 'S':
        client_name = _get_client_name()
        found = search_client(client_name)
        if found:
            print('The client is in the client\'s list')
        else:
            print('The client: {} is not in out client\'s list'.format(client_name))
    else:
        print('Invalid command')

duda,

porque se puede utilizar clients.split(’,’) dentro de la funcion search_client si no se esta instanceando como variable global dentro de la funcion?

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 client\'s list')

def list_clients():
    global clients

    print(clients)


def update_client(client_name, update_client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', update_client_name + ',')
    else:
        print('Client is not in clients list')


def delete_client(client_name):
    global clients

    if client_name in clients:
        clients = clients.replace(client_name + ',', '')
    else:
        print('Client is not in clients list')


def search_client(client_name):
    clients_list = clients.split(',')

    for client in clients_list:
        if client != client_name:
            continue
        else:
            return True


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('[L]ist clients')
    print('[U]pdate client')
    print('[D]elete client')
    print('[S]earch client')


def _get_client_name():
    return input('What is the client name?')

if __name__ == '__main__':
    _print_welcome()

    command = input()
    command = command.upper()

    if command == 'C':
        client_name = _get_client_name()
        create_client(client_name)
        list_clients()
    elif command == 'L':
        list_clients()
    elif command == 'D':
        client_name = _get_client_name()
        delete_client(client_name)
        list_clients()
    elif command == 'U':
        client_name = _get_client_name()
        update_client_name = input('What is the updated client name')
        update_client(client_name, update_client_name)
        list_clients()
    elif command == 'S':
        client_name = _get_client_name()
        found = search_client(client_name)

        if found:
            print('The client is in the client\'list')
        else:
            print('The client: {} is not in our client\'s list'.format(client_name))
    else:
        print('Invalid command')


        


CSV

Hasta ahora no conocía que el formato CSV significaba Comma Separated Values, lo había visto ya que es un formato bastante común para guardar datos para que puedan transportarse, suele utilizarse cuando se desea pasar datos de una aplicación a otra.

split()

El método split() permite convertir un string en una lista, se puede como en nuestro cual es el separador, el que se usa por defecto es el espacio.
Se puede declarar un número máximo de divisiones que se puede realizar.

For loops

Nos permite iterar dentro de una lista, un string o un rango de números, entonces se declara el for la variable iterador y la secuencia por la que vamos a pasar seguido de dos puntos y el statement.

    for client in clients_list:
        if client != client_name:
            continue
        else:
            return True

Les dejo mi código hasta el momento:

clients = 'Pablo,Ricardo,'

# Welcome Message
def _print_welcome():
	print('WELCOME TO PLATZI VENTAS')
	print('*' * 50)
	print('What would you like to do today?')
	print('[C]reate client')
	print('[R]ead clients list')
	print('[U]pdate client')
	print('[D]elete client')
	print('[S]earch client')


# Utils
def list_clients():
	global clients
	print(clients)


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


def _get_client_name():
	client_name = input('What is the client name? ')
	client_name = client_name.capitalize()
	return client_name


# Actions
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 list')


def update_client(client_name):
	global clients

	if client_name in clients:
		update_client_name = input('What is the updated client name? ')
		clients = clients.replace(client_name, update_client_name)
	else:
		print(f'{client_name} is not in clients list')


def delete_client(client_name):
	global clients

	if client_name in clients:
		clients = clients.replace(client_name + ',', '')
	else:
		print(f'{client_name} is not in clients list')


def search_client(client_name):
	global clients

	clients_list = clients.split(',')

	for client in clients_list:
		if client != client_name:
			continue
		else:
			return True


# Entry Program
if __name__ == '__main__':
	_print_welcome()

	command = input('Select option: ')
	command = command.upper()

	if command == 'C':
		client_name = _get_client_name()
		create_client(client_name)
		list_clients()
	elif command == 'R':
		list_clients()
	elif command == 'U':
		client_name = _get_client_name()
		update_client(client_name)
		list_clients()
	elif command == 'D':
		client_name = _get_client_name()
		delete_client(client_name)
		list_clients()
	elif command == 'S':
		client_name = _get_client_name()
		found = search_client(client_name)

		if found:
			print(f'{client_name} is in the clients list')
		else:
			print(f'The client {client_name} is not in our clients list')
	else:
		print('Invalid option')

return siempre termina la ejecución de una función. #Datazo

Una forma mucho más legible de usar format:
print(f'The client {client_name} is not in our client\'s list')

Aquí les dejo vídeos de ejercicios de bucles en Python

Antes del for existia el go to.

La función range es nueva desde Python 3, que hace que tengamos que utilizar menos memoria.

IMPORTANTE Tal cual como el keyword return termina la ejecucion de una funcion, tenemos el keyword break que finaliza la iteracion que estemos efectuando!

que bien , estupendo u.u

Mi código

def seach_client(client_name):
    global clients
    client_list = clients.split(',')

    for client in client_list:
        if client != client_name:
            continue
        else:
            return True

Les comparto mi codigo, hice dos metodos search, uno se llama read() y el otro search() si quieren, comparenlo y me dicen cual usarian o si lo mejorarian };|)

clients = 'andres,pedro,'


def create_clients(client_name):
	"""
	client_name: Nombre del cliente a agregar
	Añade nombre de clientes al final del string clients
	global = le dice a python que tome variables global
	return: un string con el nombre añadido
	"""
	global clients
	if client_name not in clients:
		clients += client_name
		_add_comma()
		list_clients(clients)
	else:
		print('¡WARNING! This user exists')


def delete_client(c_name):
	"""
	c_name: is a str object to delete
	delete the client name that retrieves
	"""
	global clients
	if c_name not in (clients):
		print('The name is not in client\'s list')
	else:
		clients = clients.replace(c_name,'')
		if clients.startswith(','):
			clients = clients.replace(',', '', 1)
			list_clients(clients)
		else:
			pass


def update_client(c_NameToU, newName):
	"""
	c_NameToU: str object to be updated
	newName: str object to update
	"""
	global clients
	if c_NameToU not in (clients):
		print('The name is not in client\'s list')
	else:
		clients = clients.replace(c_NameToU, newName)
		list_clients(clients)


def read_client(c_name):
	global clients
	if c_name not in clients:
		print(f'The name: "{c_name}" is NOT in client\'s list')
	else:
		print(f'¡The name: "{c_name}" is in the client\'s list!')


def search_client(c_name):
	Lclients = clients.split(',')
	for client in Lclients:
		if client != c_name:
			continue
		else:
			print(client)
			return True


def _get_client_name(action):
	"""
	action: define the action to do
	return a input with the question accord the action
	"""
	return input(f'What is the client name to {action}? ').lower()


def list_clients(mylist):
	"""
	Print a list with the clients
	"""
	print(mylist)


def _print_welcome():
	"""
	Print the welcome and options in the program
	"""
	print('WELCOME TO PLATZI VENTAS')
	print('*' * 50)
	print('What would you like to do today?')
	print('[C]reate clients')
	print('[R]ead clients')
	print('[U]pdate clients')
	print('[D]elete clients')
	print('[S]earch clients')
	print('[L]ist clients')


def _add_comma():
	"""
	Añade una coma al string clients
	return string de clients con una coma al final
	"""
	global clients
	clients += ','


if __name__ == "__main__":
	_print_welcome()
	command = input()
	command = command.upper()
	if command == 'C':
		command = 'create'
		c_name = _get_client_name(command).lower()
		create_clients(c_name)
	elif command == 'R':
		command = 'read'
		c_name = _get_client_name(command).lower()
		read_client(c_name)
	elif command == 'U':
		command = 'update'
		c_NameToU = _get_client_name(command).lower()
		newName = input('What is the new client name?: ').lower()
		update_client(c_NameToU, newName)
	elif command == 'D':
		command = 'delete'
		c_name = _get_client_name(command).lower()
		delete_client(c_name)
	elif command == 'S':
		command = 'search'
		c_name = _get_client_name(command).lower()
		found = search_client(c_name)
		if found:
			print(f'The client: "{c_name}" is in the clients list')
		else:
			print(f'The client: "{c_name}" is NOT IN the clients list')
	elif command =='L':
		list_clients(clients)

	else:
		print('Invalid command')