Dunder methods: También conocidos como métodos mágicos (magic métodos) o special methods (métodos especiales).
https://docs.python.org/3/reference/datamodel.html#special-method-names
Básicos del Lenguaje
Guía de instalación y conceptos básicos
Archivos y slides del curso práctico de Python
IMPORTANTE: Instalando Ubuntu Bash en Windows para facilitarte el seguimiento del curso desde Windows.
¿Qué es la programación?
¿Por qué programar con Python?
Operadores matemáticos
Variables y expresiones
Presentación del proyecto
Funciones
Usando funciones en nuestro proyecto
Operadores lógicos
Estructuras condicionales
Uso de strings y ciclos
Strings en Python
Operaciones con Strings en Python
Operaciones con strings y el comando Update
Operaciones con strings y el comando Delete
Operaciones con strings: Slices en python
For loops
While loops
Iterators and generators
Estructuras de Datos
Uso de listas
Operaciones con listas
Agregando listas a nuestro proyecto
Diccionarios
Agregando diccionarios a nuestro proyecto
Tuplas y conjuntos
Tuplas y conjuntos en código
Introducción al módulo collections
Python comprehensions
Búsquedas binarias
Continuando con las Búsquedas Binarias
Manipulación de archivos en Python 3
Uso de objetos y módulos
Decoradores
Decoradores en Python
¿Qué es la programación orientada a objetos?
Programación orientada a objetos en Python
Scopes and namespaces
Introducción a Click
Definición a la API pública
Clients
Servicios: Lógica de negocio de nuestra aplicación
Interface de create: Comunicación entre servicios y el cliente
Actualización de cliente
Interface de actualización
Manejo de errores y jerarquía de errores en Python
Context managers
Python en el mundo real
Aplicaciones de Python en el mundo real
Conclusiones finales
Python 2 vs 3 (Conclusiones)
Clases bonus
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
David Aroesti
Los strings tienen varios métodos que nosotros podemos utilizar.
upper
: convierte todo el string a mayúsculaslower
: convierte todo el string a minúsculasfind
: encuentra el indice en donde existe un patrón que nosotros definimosstartswith
: significa que empieza con algún patrón.endswith
: significa que termina con algún patróncapitalize
: coloca la primera letra en mayúscula y el resto en minúsculain
y not in
nos permite saber con cualquier secuencia sin una subsecuencia o substrings se encuentra adentro de la secuencia mayor.
dir
: Nos dice todos los métodos que podemos utilizar dentro de un objeto.
help
: nos imprime en pantalla el docstrings o comentario de ayuda o instrucciones que posee la función. Casi todas las funciones en Python las tienen.
Aportes 65
Preguntas 5
Dunder methods: También conocidos como métodos mágicos (magic métodos) o special methods (métodos especiales).
https://docs.python.org/3/reference/datamodel.html#special-method-names
MÉTODOS DE CADENAS
METODO CENTRAR
La funcion retorna una ‘cadena’ con rellenado con una cantidad especifica de caractéres
POR EJEMPLO
nombre='Alexander' nombre.center(20,'*')
output = *****alexander******
METODO COUNT
El metodo count() devuelve el numero de coincidencias de una subcadena que contiene la cadena
POR EJEMPLO:
nombre = 'alexander'
nombre.count('a') => 2
nombre.count('a',1,-1) => 1
MÉTODO CAPITALIZE
Devuelve una copia de la cadena con el primer caracter en mayuscula.
POR EJEMPLO :
nombre="alexANder"
nombre.capitalize() => "Alexander"
MÉTODO ENDSWITH
Devuelve verdadero si la cadena finaliza en el sufijo especificado,en caso contrario falso.
POR EJEMPLO:
nombre='Alexander'
nombre.endswith('DER') => false
nombre.endswith('der') => true
MÉTODO FIND
Devuelve el menor índice de la cadena para que el sub se encuentre, también recibe 2 argumentos opcionales de inicio y fin. Nos devuelve -1 si no se halla el substring.
POR EJEMPLO
nombre = 'Alexander'
nombre.find('exa') => 2
nombre.find('exa',5) => -1
MÉTODO ISALNUM
devuelve verdadero si todos los caracteres son alfanuméricos y hay al menos un caracter.
POR EJEMPLO:
nombre = "Alexander"
nombre.isalnum() => true
prueba = ""
prueba.isalnum() => false
test ="alexander@@@"
test.isalnum() => false
- MÉTODO ISALPHA()
devuelve verdadero si todos los caracteres son alfabéticos.
POR EJEMPLO:
```
nombre="alexander"
nombre.isalpha() =>true
nombre="alexander745"
nombre.isalpha() =>false
```
- MÉTODO ISDIGIT
devuelve verdadero si todos los caracteres son dígitos.
por ejemplo:
```
codigo="4785"
codigo.isdigit() => true
```
Method | Description |
---|---|
capitalize() | Convierte el primer carácter en mayúsculas |
casefold() | Convierte una cadena en minúsculas |
center() | Devuelve una cadena centrada |
count() | Devuelve el número de veces que un valor especificado se produce en una cadena |
encode() | Devuelve una versión codificada de la cadena |
endswith() | Devuelve true si los extremos de cadena con el valor especificado |
expandtabs() | Establece el tamaño de la pestaña de la cadena |
find() | Busca la cadena de un valor especificado y devuelve la posición de donde fue encontrado |
format() | Formatos especifican los valores de una serie |
format_map() | Formatos especifican los valores de una serie |
index() | Busca la cadena de un valor especificado y devuelve la posición de donde fue encontrado |
isalnum() | Devuelve verdadero si todos los caracteres de la cadena son alfanuméricos |
isalpha() | Devuelve True si todos los caracteres de la cadena están en el alfabeto |
isdecimal() | Devuelve True si todos los caracteres de la cadena son decimales |
isdigit() | Devuelve verdadero si todos los caracteres de la cadena son dígitos |
isidentifier() | Devuelve True si la cadena es un identificador |
islower() | Devuelve verdadero si todos los caracteres de la cadena son minúsculas |
isnumeric() | Devuelve verdadero si todos los caracteres de la cadena son numéricos |
isprintable() | Devuelve verdadero si todos los caracteres de la cadena son imprimibles |
isspace() | Devuelve True si todos los caracteres de la cadena son espacios en blanco |
istitle() | Devuelve True si la cadena sigue las reglas de un título |
isupper() | Devuelve True si todos los caracteres de la cadena son mayúsculas |
join() | Se une a los elementos de un iterable al final de la cadena |
ljust() | Devuelve una versión justificada izquierda de la cadena |
lower() | Convierte una cadena en minúsculas |
lstrip() | Devuelve una versión de ajuste izquierdo de la cuerda |
maketrans() | Devuelve una tabla de traducción para ser utilizado en traducciones |
partition() | Devuelve una tupla donde la cadena se separó en tres partes |
replace() | Devuelve una serie en un valor especificado es reemplazado con un valor especificado |
rfind() | Busca la cadena de un valor especificado y devuelve la última posición de donde fue encontrado |
rindex() | Busca la cadena de un valor especificado y devuelve la última posición de donde fue encontrado |
rjust() | Devuelve una versión justificada derecha de la cadena |
rpartition() | Devuelve una tupla donde la cadena se separó en tres partes |
rsplit() | Divide la cadena en el separador especificado y devuelve una lista |
rstrip() | Devuelve una versión ajuste correcto de la cadena |
split() | Divide la cadena en el separador especificado y devuelve una lista |
splitlines() | Divide la cadena en los saltos de línea y devuelve una lista |
startswith() | Devuelve true si la cadena comienza con el valor especificado |
strip() | Devuelve una versión recortada de la cadena |
swapcase() | Permutas de los casos, se convierte en minúsculas mayúsculas y viceversa |
title() | Convierte el primer carácter de cada palabra en mayúsculas |
translate() | Devuelve una cadena traducida |
upper() | Convierte una cadena en mayúsculas |
zfill() | Rellena la cadena con un número determinado de valores de 0 a principios |
usando el help(str) en el interpete nos muestra la ayuda de los metodos asociados a la clase str
title() sirve para los nombres, ejemplo:
peter pan -> Peter Pan
Convierte la primera letra de cada palabra a mayúsculas
Un truco para limpiar su consola o el interprete de Python. Pulsen CTRL + L. Funciona en linux y MacOs, no se si en Windows tambien
Para los que les gustaria saber que es "pass"
Aquí pueden ver un ejemplo.
Mi código comentado de este ejercicio, espero les sirva 😎👍
#Métodos para maipular strings
print("#Métodos para maipular strings")
var_string = "var_string = Initial text"
print (var_string)
print('-'*75)
new_string = var_string.upper()
print ("var_string.upper = ", new_string, " | Convert text to capital letters" )
print('-'*75)
new_string = var_string.lower()
print ("var_string.lower = ", new_string, " | Convert text to lowercase letters" )
print('-'*75)
new_string = var_string.find("a")
print ("var_string.find('a') = ", new_string, " | Show the first character´s position in the text string, is case sensitive " )
new_string = var_string.find("i")
print ("var_string.find('i') = ", new_string, " | Remember is case sensitive " )
new_string = var_string.find("z")
print ("var_string.find('z') = ", new_string, " | If there´s not a character the result is -1 " )
print('-'*75)
new_string = var_string.capitalize()
print ("var_string.capitalize = ", new_string, "| Convert the first character of the string into a capital letter")
print('-'*75)
if var_string.startswith('i'):
print("if var_string.endswith('i'): print ('it´s true, te strings starts with: 'i' ')")
print('it´s true, te strings ends with: "i"')
print('-'*75)
if var_string.endswith('t'):
print("if var_string.endswith('t'): print ('it´s true, te strings ends with: 't' ')")
print('it´s true, te strings ends with: "t"')
print('-'*75)
print('-'*75)
#Operadores de pertenencia, nos permiten sabes si un substring, es decir una subsecuencia se encuentra en la secuencia mayor
#Por ejemplo la subsecuencia col esta dentro de colombia
#Distingue entre maysuculas y minusculas
print ("Operadores de pertenencia")
var_string = "Hola"
print ('var_string = "Hola"')
if "Ho" in var_string :
print('if "Ho" in var_string :')
print('The substring "Ho" is into the string "Hola" ')
print('-'*75)
if "mundo!" not in var_string :
print('if "mundo!" not in var_string :')
print('var_string += "mundo!"')
var_string += " mundo!"
print("var_string = ", var_string)
#La función global dir nos dice los métodos que podemos utilizar dentro de un objeto
print('-'*75)
print('The dir() function, show us all the methods that we can use with an element')
print('For example:')
print('dii(car_string)')
print ( dir(var_string) )
print('-'*75)
print('-'*75)
def my_function():
"""Este es un texto de ayuda de como utilizar esta funcion"""
pass
print(help(my_function))
print('-'*75)
print("Presiona enter para salir")
input()
¿Cual sería la diferencia entre usar las comillas triples y el numeral (#) para colocar anotaciones? Supongo que el numeral no responde al comando help.
En Windows para salir del operador ‘help’, y volver a la consola tenemos que pulsar ‘q’.
Estos son metodos de formato en Python:.
Convertir a mayúscula la primera letra
Método: capitalize()
Retorna:
una copia de la cadena con la primera letra en mayúsculas.
cadena = "bienvenido a mi aplicación"
print cadena.capitalize()
Bienvenido a mi aplicación
Convertir una cadena a minúsculas
Método: lower()
Retorna: una copia de la cadena en minúsculas.
cadena = "Hola Mundo"
print cadena.lower()
hola mundo
Convertir una cadena a mayúsculas
Método: upper()
Retorna: una copia de la cadena en mayúsculas.
cadena = "Hola Mundo"
print cadena.upper()
HOLA MUNDO
Convertir mayúsculas a minúsculas y viceversa
Método: swapcase()
Retorna: una copia de la cadena convertidas las mayúsculas en minúsculas y viceversa.
cadena = "Hola Mundo"
print cadena.swapcase()
hOLA mUNDO
Convertir una cadena en Formato Título
Método: title()
Retorna: una copia de la cadena convertida.
cadena = "hola mundo"
print cadena.title()
Hola Mundo
Centrar un texto
Método: center(longitud[, “caracter de relleno”])
Retorna: una copia de la cadena centrada.
cadena = “bienvenido a mi aplicación”.capitalize()
print cadena.center(50, “=”)
=Bienvenido a mi aplicación==
print cadena.center(50, " ")
Bienvenido a mi aplicación
Alinear texto a la izquierda
Método: ljust(longitud[, “caracter de relleno”])
Retorna: una copia de la cadena alineada a la izquierda.
cadena = “bienvenido a mi aplicación”.capitalize()
print cadena.ljust(50, “=”)
Bienvenido a mi aplicación=======================
Alinear texto a la derecha
Método: rjust(longitud[, “caracter de relleno”])
Retorna: una copia de la cadena alineada a la derecha.
cadena = “bienvenido a mi aplicación”.capitalize()
print cadena.rjust(50, “=”)
=======================Bienvenido a mi aplicación
print cadena.rjust(50, " ")
Bienvenido a mi aplicación
Rellenar un texto anteponiendo ceros
Método: zfill(longitud)
Retorna: una copia de la cadena rellena con ceros a la izquierda hasta alcanzar la longitud final indicada.
numero_factura = 1575
print str(numero_factura).zfill(12)
000000001575
Funcion split() en python vs rsplit()
Estuve interactuando con los diferentes metodos de la lista y me gusto los resultados de muchas de ellas aunque en algunas me sale error.
help(): Accedemos a los docstrings que nos explica que hace la función.
La palabra más larga en español es "Anticonstitucionalmente"
La palabra más larga en inglés es: “pneumonoultramicroscopicsilicovolcanoconiosis”
Con la clase he querido probar el avance y decidi hacer una funcion que separe el nombre teniendo en cuenta los espacios, y los concatene con punto y coma, en código puro:
[4, 11, 20, 27]
[0, 5, 12, 21] =[0,4+1,11+1,20+1]
Claro esta, no quiero reinventar la rueda, hay otras formas más sencillas que ya vienen con python, pero he querido entender el funcionamiento interno y hacerlo por mi cuenta para practicar, les dejo también las otras opciones.
#Second way
fname_space = fname.split()
print(f'{fname_space}')
print(f'{";".join(fname_space)}')
#third way
print(fname.replace(' ',';'))
Saludos chicos les dejo este link muy util para enriquezer esta clase.
center, centra la cadena de caracteres entre espacios o en el caracter que le pongamos como parametro
platzi.center(20)
' platzi '
platzi.center(20, 'x')
'xxxxxxxplatzixxxxxxx'
A summary of docstring
⭐ 👀 Docstring in Python
Docstrings are accesible from the doc attribute (__doc__
) for any of the Python objects and also with the built-in help()
function.
Docstrings are great for understanding the functionality of the larger part of the code. They are a descriptive text written by a programmer mainly for themselves to know what the line of code does.
Docstring vs Commenting:
doc
attribute and help
function.One-line Docstring
def square(a):
'''Returned argument a is squared.''' #or you can use """ xxxx """
return a**a
Multi-LineDocstring
def some_function(argument1):
"""Summary or Description of the Function
Parameters:
argument1 (int): Description of arg1
Returns:
int:Returning value
"""
return argument1
Alguien me dice para que sirve pass?
Split en el ejemplo una cadena de caracteres separada por espacios al aplicar la función me los convierte en ,
Strings Methods
capitalize()
casefold()
center(width[, fillchar])
count(sub[, start[, end]])
encode(encoding=“utf-8”, errors=“strict”)
endswith(suffix[, start[, end]])
expandtabs(tabsize=8)
find(sub[, start[, end]])
format(*args, **kwargs)
format_map(mapping)
index(sub[, start[, end]])
isalnum()
isalpha()
isdecimal()
isdigit()
isidentifier()
islower()
isnumeric()
isprintable()
isspace()
istitle()
isupper()
join(iterable)
ljust(width[, fillchar])
lower()
lstrip([chars])
maketrans(x[, y[, z]])
partition(sep)
replace(old, new[, count])
rfind(sub[, start[, end]])
rindex(sub[, start[, end]])
rjust(width[, fillchar])
rpartition(sep)
rsplit(sep=None, maxsplit=-1)
rstrip([chars])
split(sep=None, maxsplit=-1)
splitlines([keepends])
startswith(prefix[, start[, end]])
strip([chars])
swapcase()
title()
translate(table)
upper()
zfill(width)
esta referencia es muy útil!
https://www.carlosramirezflores.com/Python3_reference_cheat_sheet.pdf
Documenyació que nos puede ayudar: https://docs.python.org/3/library/string.html
Dato curioso.
Si le aplicamos la función _.lower() _a una letra mayúscula, esta se convierte en minúscula, pero aún así se guarda en un lugar de memoria diferente al de la letra “original” en minúscula.
¿alguien sabe por que?
Para javascript
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
Veo que no se ha dicho algo importante y es que cuadno se usa help() por ejemplo en nuestra variabel despues del explorarla con dir() debemos usar la variable y la function, ejemplo:
dir(platzi)
este da todo las functions disponibles y para aplciarle el help es conhelp(platzi.FUNCTION)
por ejemplo la function partition() entonces, help(platzi.partition)
Esto me ayudo muchisimo, y me alegra verlo en el curso. La documentación lo enseña.
country=“colombia”
#imprime la ultima letra
print(country[-1])
print(len(country))
#añade la letra S
country+="s"
print(country)
declaré la variable juan
juan = 'juan’
y le apliqué help entre corchetes así:
help([juan])
No puedo negar, que sin duda este es el mejor curso que tienen de Python, la verdad todos son buenos, pero hasta el momento, este es el que mas me gusta
En las triples comillas “”" pueden utilizar los enters sin problemas, pueden escribir en varios renglones sin tener que usar un \n como en las string normales
Muy interesante lo que podemos hacer con el método help()
La función dir(objeto)
nos muestra un listado de las cosas que podemos hacer con ese objeto.
help(objeto)
nos regresa el mensaje que se encuentra en las 6 comillas dobles.
hay bastante métodos para utilizar. muy bueno
Practica de Clase Aqui escribo algunos metodos que pude practicar para esta clase
Casefold: Vuelve minusculas las palabras
emilio = 'EMILIO’
emilio.casefold()
‘emilio’
Center:
emilio.center(24)
’ EMILIO ’
Count: Cuenta cuantas palabras iguales hay en un string
string1 = 'Programmer is awesome’
print(string1.count(“awesome”))
1
Encode:Codifica a uft un texto
string = 'emilio’
print('The string is: ', string)
The string is: emiliostring_utf = string.encode()
print('The encoded string is: ‘, string_utf)
The encoded string is: b’emilio’
EndSwith:Verifica si el final del string coincide
text = 'Python is for learn easy’
result = text.endswith(‘is for learn easy’)
print(result)
True
Expandtabs:Tabula varios string
string = 'xyz\t123456\tabc’
result = string.expandtabs()
print(result)
xyz 123456 abc
Format: Forma distinta de concatenar string
print(“Hi {}. your balance is {}.”.format(“Emilio”, 165.52))
Hi Emilio. your balance is 165.52.
print(“Hi {name}. your balance is {balance}.”.format(name=“Emilio”, balance=165.52))
Hi Emilio. your balance is 165.52.
Format_map:Otra forma distinta de concatenar string
point = {‘x’:5, ‘y’:-67}
print(’{x} {y}’.format(**point))
5 -67
Index: Este no lo logre entender muy bien
phrase = 'Hi mom how are you’
result = phrase.index(‘are you’)
print(result)
11
Isalnum:Verifica si tiene caracteres numeros y alfanumericos
Name = 'Emilio123’
print(Name.isalnum())
True
Si posee otro que no sea ese da falseName = 'Emili??[o’
print(Name.isalnum())
False
Isalpha: Devuelve verdadero si todos los caracteres son del alfabeto, en mi caso como tenia espacio entre palabras dio falso y cuando los uni dio verdadero
Name = 'Emilio Nunez’
print(Name.isalpha())
FalseName = 'EmilioNuñez’
print(Name.isalpha())
True
Isdecimal: Verifica si el valor es decimal
IsOrNot = "253525"
print(IsOrNot.isdecimal())
TrueIsOrNot = "25352kj5"
print(IsOrNot.isdecimal())
False
Isidentifier: Devuelve verdadero si es identificador valido en python
str = 'Python’
print(str.isidentifier())
Truestr = 'ifa’
print(str.isidentifier())
Truestr = 'ifa333’
print(str.isidentifier())
Truestr = 'if a’
print(str.isidentifier())
False
Isprintable:
s = 'Space is a printable’
print(s)
Space is a printableprint(s.isprintable())
True
Isspace: verifica si tiene espacios
s = ’ '
s.isspace()
Trues = ''
s.isspace()
False
Istitle: Verifica si la cadena es un titulo
t = 'Hi How Are’
t.istitle()
Truet = 'Hi how are’
t.istitle()
False
Join: Usando listas y tuplas
list = [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
seperator = ', '
print(seperator.join(list))
1, 2, 3, 4, 5list = {‘1’, ‘2’, ‘3’, ‘4’, ‘5’}
print(seperator.join(list))
1, 2, 4, 3, 5
Ljust:
string = 'dog’
width = 6
print(string.ljust(width))
dog
string = 'dog’
width = 6
fillchar = ''
print(string.ljust(width, fillchar))
dog**
Aqui algunas pruebas que realice con help de python:
help(str)
dir(str)
help(str.splitlines)
import time
help(time)
>>> help('random thing')
>>> help('print')
>>> help('def')```
Función Help (doc string), para crear documentación a una función se asigna las triples comillas dobles.
Ejemplo
def my_function():
"""Este es un texto de ayuda de como utilizar esta función"""
pass
help(my_function)
Genial!!
A que se debe el siguiente error al utilizar “help(my_funtion)”:
more no se reconoce como un comando interno o externo
Entendido y poniendo en práctica.
con triple comillas doble “”“sdfsdfs”"""doy documentacion (docstring) a una funcion creada, con la cual daremos una descripcion de los parametros y de los elementos de salida, accediendo a estos por help(funcion_creada)
Puede ser util en el proyecto string.title(), toda inicial de las palabras las vuelve mayusculas, digo que podria ser util si en la lista de clientes se quiere que se muestre las iniciales con mayusculas y no se escribieron asi
Se explica el porque de los métodos que comienzan y terminan con __metodo__
casefold() Converts string into lower case
center() Returns a centered string
count() Returns the number of times a specified value occurs in a string
| Command | | Action |
| dir | | Muestra todos las funciones accesibles del objeto |
| Help | | imprime la documentación de la función |
Docstrings: Para generar una documentación utilizar triples dobles comillas """
:
def my_function():
""" documentación de la función """
pass
Estas fueron las opciones que me salieron cuando coloque help en my_funtion:
Excelente clase, vamos por mas
len() es muy útil!
Existen diferencias entre la función title() y la función capitalize():
Aquí la explicacion:
title() changes every word, but capitalize() only the first word in a sentence:
a = 'silly question’
a.title()
‘Silly Question’a.capitalize()
‘Silly question’
.find(): Nos devuelve el índice a partir de donde está el patrón.
Para utilizar un método colocas la variable a utilizar seguida de un punto y el método terminandolo con ().
Las triples comillas se utilizan para dar una explicación de como funciona el programa que estas haciendo, o que es lo que realiza la función que lo contiene. A este se le llama docstring, y se le accede a través de la función help(‘la función’)
En vista de la importancia de los Docstring, me gustaría compartir lo siguiente:
Acá un poco más claro:
Under Methods y son los que permiten configurar cómo Python se ejecuta.
Las comparaciones en Python lexicográficas.
Este es un Update de mi comentario anterior hahahaha, descubri otro problema del código, el script marca como un nuevo cliente si antes de escribir el nombre agregamos un espacio por ejemplo: " ricardo ", así que agregue los operadores .lstrip() y .rstrip()
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 _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] create client')
print('[D] delet client')
if __name__ == '__main__':
_print_welcome()
command = input()
if command.upper() == 'C':
client_name = input('What is the client name? ')
create_client(client_name.lstrip().rstrip().capitalize().replace(" ", ""))
list_clients()
elif command == 'D':
pass
else:
print('Invalid command')
Hola, comparto mi código de como he ido arreglando algunas cosas y corrigiendo algún tipo de vulnerabilidad de ingreso de clientes, el código va conforme vamos avanzado en el curso pero con algunos cambios
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 _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] create client')
print('[D] delet client')
if __name__ == '__main__':
_print_welcome()
command = input()
if command.upper() == 'C':
client_name = input('What is the client name? ')
create_client(client_name.capitalize().replace(" ", ""))
list_clients()
elif command == 'D':
pass
else:
print('Invalid command')
el .replace(" ", “”) me ayuda a remplazar los espacios que sean agregados por ejemplo: j o s e
esto probocaria que el sistema ingrese el nombre con todo y espacios, y si es un nombre repetido como: r i c a r d o
Lo agregara ya que con los espacios sera otro tipo de memoria, lo que hará el .replace es eliminar los espacios de: r i c a r d o , y lo convertirá a: Ricardo, ya cuando sea ingresado el nombre Ricardo marcara que ya esta en el string de clientes, a diferencia de como nosotros lo llevamos hasta ahora. hehe si no entienden algo pueden responder el post y yo puedo ayudar UwU<3
un bune repaso sigamos u.u
wowow hay muchas cosas que podemos conocer a mayor profundidad a partir del uso de help() para abrir el
docstring`. No conocía la función pero será de mucha ayuda.
count. Encuentra un caracter dentro de un string y retorna la cantidad que hay del mismo.
platzi.count('a')
1
casefold, es similar a lower
>>> platzi.casefold()
'platzi'
¿Para qué sirve la sentencia pass?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?