miércoles, 31 de octubre de 2018

Unidad No.3: Practica #20: Mostrando imagenes al azar con sonido y etiquetas

Archivo de Python:


Ejecución del programa:

Nota: Se recomienda descargar el archivo desde el link proporcionado y ejecutarlo desde un IDE como pycharm para verificar los sonidos que se escuchan al momento de ejecutar el programa


Código: 
from Tkinter import * #para crear la GUI
from PIL import Image, ImageTk #despliegue de imagenes
import os #para dar una ruta path de una carpeta o directorio
import random #para seleccionar y dar numeros aleatorios
import pygame
import threading

dir = os.path.dirname(__file__) #lo utilizo para dar una ruta de donde estan mis imagenes
fotos = dir + "/Imagenes/"
Csonido=dir + "/Sonidos8/" #establece la ruta hacia los sonidos
root = Tk() #lo uso para la ventana de app de tkinter

arreglo = [1,2,3,4,5,6,7,8] #crear un areglo con el numero de las imagenes
eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))+1) #se toma un elemento del array al azar y se hace string
figura = fotos + eleccion_aleatoria + ".png" #asignas la extension png a al imagen
sonido = Csonido + eleccion_aleatoria + ".mp3"

def reproducirsonido(sonido):
    pygame.init()
    pygame.mixer.music.load(sonido)
    pygame.mixer.music.play()

#Como despliego el archivo en la ventana tk
img = Image.open(figura) #va a la ruta de la imagen y la abre
tkimage = ImageTk.PhotoImage(img) #despliega la imagen
etiqueta = Label(root,image=tkimage,command=reproducirsonido(sonido)) #la imagen se pone en una etiqueta
etiqueta.pack() #la etiqueta se despliega

imagenes=["Cat","Dog","House","Pencil","Holy Hand Granade","3D","Flower","Car"]
nombre_img = Label(text = imagenes [int (eleccion_aleatoria)-1],font=("Times New Roman",20,"bold")).place(x=100,y=300)

root.geometry("500x500")
root.mainloop()

Unidad No.3: Practica #19: Utilizando hilos con start y join

Archivo de Python:


Ejecución del programa:


Código: 
import threading #libreria para hacer hilos
import time #liberia para usar un timer

def  hola_mundo(nombre):
    print ("Hola Mundo" + nombre)
    time.sleep(15)

if __name__ == "__main__": #va a entrar con el nombre del programa main
    hilos = threading.Thread(target=hola_mundo,args=(" Ivan",)) #se creo un objeto de tipo hilo y con la clase target
    #mandamos llamarle al metodo que va a ser un hilo y que va a llevar un argumento que va a ser un nombre
    #para que lo reciba el metodo 1
    hilos.start()
    hilos.join() #detiene el hilo hasta que termine
    print "Se esta haciendo el hilo"
    print "Datos 1"
    print ("Dame el valor n1")
    n1 = input()
    print ("Dame el valor n2")
    n2 = input()
    suma = n1 + n2
    print suma


Unidad No.3: Practica #18: Utilizando hilos con start

Archivo de Python:


Ejecución del programa:


Código: 
import threading #libreria para hacer hilos
import time #liberia para usar un timer

def  hola_mundo(nombre):
    print ("Hola Mundo" + nombre)
    time.sleep(15)

if __name__ == "__main__": #va a entrar con el nombre del programa main
    hilos = threading.Thread(target=hola_mundo,args=(" Ivan",)) #se creo un objeto de tipo hilo y con la clase target
    #mandamos llamarle al metodo que va a ser un hilo y que va a llevar un argumento que va a ser un nombre
    #para que lo reciba el metodo 1
    hilos.start()
    print "Se esta haciendo el hilo"
    print "Datos 1"
    print ("Dame el valor n1")
    n1 = input()
    print ("Dame el valor n2")
    n2 = input()
    suma = n1 + n2
    print suma


martes, 30 de octubre de 2018

Unidad No.3: Practica #17: Utilizando hilos(video 51)

Archivo de Python:


Ejecución del programa:


Código: 
import time
import thread

def imprimir_mensaje(mensaje):
    while True:
        print(mensaje)
        time.sleep(1)


def main():
    mensaje="Thread1"
    mensaje2="Thread2"
    #empiezo el thread
    thread.start_new_thread(imprimir_mensaje,(mensaje,))
    thread.start_new(imprimir_mensaje,(mensaje2,))
    x = raw_input("Estoy esperando que presiones enter...\n")

    print("Termino la funcion main")

main()

Unidad No.3: Practica #16: Mostrando una imagen al azar con sonido(gato)

Archivo de Python:


Ejecución del programa:

Nota: Se recomienda descargar el archivo desde el link proporcionado y ejecutarlo desde un IDE como pycharm para verificar los sonidos que se escuchan al momento de ejecutar el programa


Código: 
from Tkinter import * #para crear la GUI
from PIL import Image, ImageTk #despliegue de imagenes
import os #para dar una ruta path de una carpeta o directorio
import random #para seleccionar y dar numeros aleatorios
import pygame #ayuda a reproducir sonido mp3,ogg
import time #sleep para dormir la computadora unos seg...

dir = os.path.dirname(__file__) #lo utilizo para dar una ruta de donde estan mis imagenes
fotos = dir + "/Imagenes/"
sonidos = dir +"/Sonidos3/"
root = Tk() #lo uso para la ventana de app de tkinter

arreglo = [1] #crear un areglo con el numero de las imagenes
eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))+1) #se toma un elemento del array al azar y se hace string
print eleccion_aleatoria
figura = fotos + eleccion_aleatoria + ".png" #asignas la extension png a al imagen
print figura

#Para reproducir sonido
sonido=sonidos + "s_(" + eleccion_aleatoria + ").mp3"
print sonido
pygame.mixer.init()
pygame.mixer.music.load(sonido) #abre el archivo
pygame.mixer.music.play() #reproduce el sonido

"Como despliego el archivo en la ventana tk"
img = Image.open(figura) #va a la ruta de la imagen y la abre
tkimage = ImageTk.PhotoImage(img) #despliega la imagen
etiqueta = Label(root,image=tkimage) #la imagen se pone en una etiqueta
etiqueta.pack() #la etiqueta se despliega

root.geometry("500x500")
root.mainloop()

Unidad No.3: Practica #15: Juego de los orcos con interfaz grafica

Archivo de Python:


Ejecución del programa:


Código: 
# -*- coding: utf-8 -*-

import sys
import random

if sys.version_info < (3, 0):
    from Tkinter import Tk, Label, Radiobutton, PhotoImage, IntVar
    import tkMessageBox as messagebox
else:
    from tkinter import Tk, Label, Radiobutton, PhotoImage, IntVar
    from tkinter import messagebox


class JuegoChozas:
    def __init__(self, parent):
        self.imagen_fondo = PhotoImage(file="Jungle_small_2.gif")
        self.imagen_choza = PhotoImage(file="Hut_small_2.gif")

        self.ancho_choza = 60
        self.alto_choza = 140
        self.container = parent

        self.Chozas = []
        self.result = ""

        self.ocupar_chozas()

        self.setup()

    def ocupar_chozas(self):
        ocupantes = ['enemigo', 'amigo', 'vacia']
        while len(self.Chozas) < 5:
            computer_choice = random.choice(ocupantes)
            self.Chozas.append(computer_choice)
        print("Los ocupantes de las chozas son:", self.Chozas)

    def entrar_choza(self, numero_choza):
        print("Entrando en la choza #:", numero_choza)
        ocupante_choza = self.Chozas[numero_choza-1]
        print("El ocupante de la choza es: ", ocupante_choza)

        if ocupante_choza == 'enemigo':
            self.result = "Enemigo visto en la choza # %d \n\n" % numero_choza
            self.result += "Has perdido :( Mucha suerte la próxima vez!"
        elif ocupante_choza == 'vacia':
            self.result = "La Choza # %d está vacia\n\n" % numero_choza
            self.result += "Enhorabuena! Has ganado!!!"
        else:
            self.result = "Amigo visto en la choza # %d \n\n" % numero_choza
            self.result += "Enhorabuena! Has ganado!!!"

        self.anunciar_ganador(self.result)

    def crear_widgets(self):

        self.var = IntVar()
        self.background_label = Label(self.container,
                                      image=self.imagen_fondo)
        txt = "Selecciona una choza en la que entrar. Ganarás si:\n"
        txt += "La choza está vacia o si su ocupante es tu aliado, de lo contrario morirás"
        self.info_label = Label(self.container, text=txt, bg='white')
        # Creamos un dicionario con las opciones para las imagenes de las chozas
        r_btn_config = {'variable': self.var,
                        'bg': '#8AA54C',
                        'activebackground': 'green',
                        'image': self.imagen_choza,
                        'height': self.alto_choza,
                        'width': self.ancho_choza,
                        'command': self.radio_btn_pressed}

        self.r1 = Radiobutton(self.container, r_btn_config, value=1)
        self.r2 = Radiobutton(self.container, r_btn_config, value=2)
        self.r3 = Radiobutton(self.container, r_btn_config, value=3)
        self.r4 = Radiobutton(self.container, r_btn_config, value=4)
        self.r5 = Radiobutton(self.container, r_btn_config, value=5)

    def setup(self):
        self.crear_widgets()
        self.setup_layout()

    def setup_layout(self):
        self.container.grid_rowconfigure(1, weight=1)
        self.container.grid_columnconfigure(0, weight=1)
        self.container.grid_columnconfigure(4, weight=1)
        self.background_label.place(x=0, y=0, relwidth=1, relheight=1)
        self.info_label.grid(row=0, column=0, columnspan=5, sticky='nsew')
        self.r1.grid(row=1, column=0)
        self.r2.grid(row=1, column=2)
        self.r3.grid(row=1, column=4)
        self.r4.grid(row=4, column=2)
        self.r5.grid(row=4, column=0)

    def anunciar_ganador(self, data):
        messagebox.showinfo("¡Atención!", message=data)

    # Handle Events
    def radio_btn_pressed(self):
        self.entrar_choza(self.var.get())

if __name__ == "__main__":

    mainwin = Tk()
    WIDTH = 1280
    HEIGHT = 700
    mainwin.geometry("%sx%s" % (WIDTH, HEIGHT))
    mainwin.resizable(0, 0)
    mainwin.title("Ataca a los orcos V 2.0.0 - El Videojuego")
    game_app = JuegoChozas(mainwin)
    mainwin.mainloop()


viernes, 26 de octubre de 2018

Unidad No.3: Practica #14: Mostrando imagenes al azar con sonidos

Archivo de Python:


Ejecución del programa:

Nota: Se recomienda descargar el archivo desde el link proporcionado y ejecutarlo desde un IDE como pycharm para verificar los sonidos que se escuchan al momento de ejecutar el programa



Código: 
from Tkinter import * #para crear la GUI
from PIL import Image, ImageTk #despliegue de imagenes
import os #para dar una ruta path de una carpeta o directorio
import random #para seleccionar y dar numeros aleatorios
import pygame

dir = os.path.dirname(__file__) #lo utilizo para dar una ruta de donde estan mis imagenes
fotos = dir + "/Imagenes/"
Csonido=dir + "/Sonidos8/" #establece la ruta hacia los sonidos
root = Tk() #lo uso para la ventana de app de tkinter

arreglo = [1,2,3,4,5,6,7,8] #crear un areglo con el numero de las imagenes
eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))+1) #se toma un elemento del array al azar y se hace string
figura = fotos + eleccion_aleatoria + ".png" #asignas la extension png a al imagen
sonido = Csonido + eleccion_aleatoria + ".mp3"

def reproducirsonido(sonido):
    pygame.init()
    pygame.mixer.music.load(sonido)
    pygame.mixer.music.play()

#Como despliego el archivo en la ventana tk
img = Image.open(figura) #va a la ruta de la imagen y la abre
tkimage = ImageTk.PhotoImage(img) #despliega la imagen
etiqueta = Label(root,image=tkimage,command=reproducirsonido(sonido)) #la imagen se pone en una etiqueta
etiqueta.pack() #la etiqueta se despliega


root.geometry("500x500")
root.mainloop()

miércoles, 24 de octubre de 2018

Unidad No.3: Practica #13: Mostrando imagenes al azar

Archivo de Python:


Ejecución del programa:



Código: 
from Tkinter import * #para crear la GUI
from PIL import Image, ImageTk #despliegue de imagenes
import os #para dar una ruta path de una carpeta o directorio
import random #para seleccionar y dar numeros aleatorios

dir = os.path.dirname(__file__) #lo utilizo para dar una ruta de donde estan mis imagenes
fotos = dir + "/Imagenes/"
root = Tk() #lo uso para la ventana de app de tkinter

arreglo = [1,2,3,4,5,6,7,8] #crear un areglo con el numero de las imagenes
eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))+1) #se toma un elemento del array al azar y se hace string
print eleccion_aleatoria
figura = fotos + eleccion_aleatoria + ".png" #asignas la extension png a al imagen
print figura
"Como despliego el archivo en la ventana tk"
img = Image.open(figura) #va a la ruta de la imagen y la abre
tkimage = ImageTk.PhotoImage(img) #despliega la imagen
etiqueta = Label(root,image=tkimage) #la imagen se pone en una etiqueta
etiqueta.pack() #la etiqueta se despliega

martes, 23 de octubre de 2018

Unidad No.3: Practica #12: Abriendo una imagen

Archivo de Python:


Ejecución del programa:


Código: 
import Tkinter as tk
from PIL import Image, ImageTk

root=tk.Tk() #se uso para hacer una ventana
img = Image.open("Android.gif") #se usa el objeto image de la libreria pil para abrir un archivo gif
img.thumbnail((500, 300), Image.ANTIALIAS) #establezco sus dimensiones y la propiedad antialiasado
imagen = ImageTk.PhotoImage(img) #la convierto a un formato soportado por los widgets de tkinter

#tkimage = ImageTk.PhotoImage(img)
tk.Label(root,image=imagen).pack()
root.mainloop()


jueves, 18 de octubre de 2018

Unidad No.3: Practica #11: Juego de BlackJack(Programa de Antonio Huerta)

Archivo de Python:


Ejecución del programa:



Código: 
#Librerias
import random
import time

#Variables Globales
global cartas
cartas = ["A",2,3,4,5,6,7,8,9,10,"J","Q","K"]

global nombrejugadores
nombrejugadores = []

#Funciones
def TurnoCartas(nombre):
    total = 0
    eleccion = 1
    i = 1
    deck = []
    print "-Turno de ",nombre,": "

    while (eleccion!=0 & total<21 0="" 11="" 1="" break="" deck.append="" elif="" else:="" i="" if="" ncarta="" numero="" numerosnaturales="[2,3,4,5,6,7,8,9,10]" por="" print="" que="" quieres="" return="" tenga="" time.sleep="" total="" tramposo="" tu="" u="" ue="" valor="">1):
            print "-Total: ", total,"\n"

        if(total<21 0="" 1="" 2="" 3="" 72="" artas:="" blackjack="" carta="" cartas="" deck.append="" deck="" def="" del="" el="" eleccion="0" elif="" else:="" es:="" for="" ganador2j="" ganador="" has="" hecho="" i="" if="" in="" inalizar="" jugador="" l="" mala="" mirar="" n="" nombre="" nombrejugadores.append="" nombrejugadores="" ntroduce="" numero="" numjugadores="" otra="" pedir="" perdido="" print="" range="" respuesta="=2):" return="" suerte="" time.sleep="" total="" turno="" tus="" un="" while="">J2):
        print nombre[0]," Con un Total de ",J1
    elif(J2>J1):
        print nombre[1]," Con un Total de ",J2
    elif(J1==J2):
        print "\nHay un EMPATE!! con un Total de ",J1," en Ambos Jugadores!!"
    else:
        print "\nLos 2 Jugadores PERDIERON!"

def Ganador3J(J1,J2,J3, nombre):
    print "El Ganador es: ",
    time.sleep(3)

    if (J1 > J2 and J1>J3):
        print nombre[0], " Con un Total de ", J1
    elif (J2 > J1 and J2>J3):
            print nombre[1], " Con un Total de ", J2
    elif (J3 > J1 and J3>J2):
            print nombre[2], " Con un Total de ", J3
    elif(J1==J2 and J1!=J3 and J2!=J3):
        print "\nHay un EMPATE!! entre ",nombre[0]," y ",nombre[1]," con un Total de ", J1, " en los Jugadores!!"
    elif (J2 == J3 and J2 != J1 and J3!=J1):
        print "\nHay un EMPATE!! entre ", nombre[1], " y ", nombre[2], " con un Total de ", J2, " en los Jugadores!!"
    elif (J1 == J3 and J1 != J2 and J3!=J2):
        print "\nHay un EMPATE!! entre ", nombre[0], " y ", nombre[2], " con un Total de ", J1, " en los Jugadores!!"
    elif (J1 == J2 and J2 == J3):
        print "\nHay un EMPATE!! con un Total de ", J1, " en TODOS los Jugadores!!"
    else:
        print "\nLos 3 Jugadores PERDIERON!"

#MAIN
continuar = 1
while continuar != 0:
    print "JUEGO DE BLACK JACK"
    print "-"*72
    numjugadores = input("Numero de Jugadores: 1) 1 Jugador  2) 2 Jugadores  3) 3 Jugadores\n")
    NombreJugadores(numjugadores)

    if(numjugadores==1):

        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        print "Inicia el Jugador numero 1"
        time.sleep(2)
        Jugador1 = TurnoCartas(nombrejugadores[0])
        print "Total del Jugador = ",Jugador1,"\n"
        time.sleep(3)
        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]
        print "-" * 72

    elif(numjugadores==2):

        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        Jugador1 = 0
        Jugador2 = 0
        for i in range(numjugadores):
            print "Inicia el Jugador numero ",i+1
            time.sleep(2)
            if(i==0):
                Jugador1 = TurnoCartas(nombrejugadores[i])
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            else:
                Jugador2 = TurnoCartas(nombrejugadores[i])
                print "Turno Finalizado.\n"

        time.sleep(2)
        print "Eligiendo Ganador",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".\n"
        time.sleep(2)

        Ganador2J(Jugador1,Jugador2,nombrejugadores)
        #jugadores = {nombrejugadores[0]: Jugador1 , nombrejugadores[1]: Jugador2}
        # print "\nEl Ganador es",
        #time.sleep(3)
        #print max(jugadores, key=jugadores.get), " con un Total de ",max(jugadores.values())
        #time.sleep(3)

        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]
        print "-" * 72

    elif(numjugadores == 3):
        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        Jugador1 = 0
        Jugador2 = 0
        Jugador3 = 0
        for i in range(numjugadores):
            print "Inicia el Jugador numero ", i + 1
            time.sleep(2)
            if (i == 0):
                Jugador1 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            elif(i == 1):
                Jugador2 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            else:
                Jugador3 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado.\n"

        time.sleep(2)
        print "Eligiendo Ganador",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".\n"
        time.sleep(2)

        Ganador3J(Jugador1, Jugador2, Jugador3, nombrejugadores)
        #jugadores = {nombrejugadores[0]: Jugador1, nombrejugadores[1]: Jugador2, nombrejugadores[2]: Jugador3}
        #print "\nEl Ganador es",
        #time.sleep(3)
        #print max(jugadores, key=jugadores.get), " con un Total de ", max(jugadores.values())
        #time.sleep(3)
        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]

        print "-" * 72

Unidad No.3: Practica #10: Juego de la loteria con interfaz grafica (Programa de ambrocio)

Archivo de Python:


Ejecución del programa:


Código: 
import os
import random
import threading
from Tkinter import *
import PIL
from PIL import Image, ImageTk
import time
import pygame

"""Variables globales"""
imagen=0
stop=0
dir = os.path.dirname(__file__)
Ccartas=dir+"/Cartas/" #establece la ruta hacia las imagenes de cartas
Csonido=dir+"/Sonidos/" #establece la ruta hacia los sonidos
play=1
"""--------------------------------------------------------"""

def setimagen(nombre,x,y): #carga la imagen
    global imagen #Declaro el uso de una variable global
    img = Image.open(nombre) #cargo la imagen mandada como parametro
    img.thumbnail((x, y), Image.ANTIALIAS) #establezco sus dimensiones y la propiedad antialiasado
    imagen = ImageTk.PhotoImage(img) #la convierto a un formato soportado por los widgets de tkinter
    return imagen #retorno el objeto con la imagen

def play():
    global stop,play,TBoton #Declaro el uso de las variables stop y play
    """play: sirve para controlar la pulsasion del boton, si se pulsa una vez el boton jugar en pantalla deberia iniciar el juego
    pero si se vuelve a pulsar deberia detenerse y dado que se usa el mismo boton para ambas acciones la uso para controlar las acciones
    stop: se usa para controlar el hilo de ejecucion declarado, si stop vale 1 debera terminar el hilo, si vale 0 debera continuar hasta que se le indique"""
    if play==1:
        TBoton.set("Pausar")
        t=threading.Thread(target=hilo)
        t.start()
        stop=0 #El hilo continua con normalidad
        play=0 #La proxima vez que se pulse el boton debera entrar en el else
    else:
        TBoton.set("Jugar")
        play=1 #La proxima vez que se pulse el boton debera entrar en el if
        stop=1 #Se detiene el hilo

def reproducirsonido(nombre):
    pygame.init()
    pygame.mixer.music.load(nombre)
    pygame.mixer.music.play()


def hilo():
    global tiempo, cartas, Limagen,stop,Tetiqueta,spin
    cartas = ["EL GALLO", "EL DIABLITO", "LA DAMA", "EL CATRIN", "EL PARAGUAS", "LA SIRENA", "LA ESCALERA",
              "LA BOTELLA", "EL BARRIL", "EL ARBOL", "EL MELON",
              "EL VALIENTE", "EL GORRITO", "LA MUERTE", "LA PERA", "LA BANDERA", "EL BANDOLON", "EL VIOLINCELLO",
              "LA GARZA", "EL PAJARO", "LA MANO", "LA BOTA",
              "LA LUNA", "EL COTORRO", "EL BORRACHO", "EL NEGRITO", "EL CORAZON", "LA SANDIA", "EL TAMBOR",
              "EL CAMARON", "LAS JARAS", "EL MUSICO", "LA ARANA",
              "EL SOLDADO", "LA ESTRELLA", "EL CAZO", "EL MUNDO", "EL APACHE", "EL NOPAL", "EL ALACRAN", "LA ROSA",
              "LA CALAVERA", "LA CAMPANA", "EL CANTARITO",
              "EL VENADO", "EL SOL", "LA CORONA", "LA CHALUPA", "EL PINO", "EL PESCADO", "LA PALMA", "LA MACETA",
              "EL ARPA", "LA RANA"]

    # tiempo=time*1000
    x = 0
    reproducirsonido(Csonido + "inicio.ogg")
    time.sleep(3)
    while True:
        nombre=str(cartas.index(random.choice(cartas))+1)
        carta = Ccartas + nombre + ".png"
        Limagen.config(image=setimagen(carta,400,400))
        Tetiqueta.set("Salio: "+cartas[int(nombre)-1])
        sonido=Csonido+"s_("+nombre+").ogg"
        reproducirsonido(sonido)
        time.sleep(float(spin.get()))
        x = x + 1
        if stop==1:
            break


ventana=Tk()
ventana.config(bg="gray")
contenedor=Frame(ventana,width=700,height=700)
contenedor.pack()
Etitulo=Label(contenedor,text="Loteria Mexicana",font=("Arial",40,"bold")).place(x=120,y=20)
Etiempo=Label(contenedor,text="Tiempo entre cartas: ",font=("Arial",12,"bold"))
Etiempo.place(x=130,y=100)
spin=Spinbox(contenedor,values=[2,3,4,5,6,7,8,9,10,11,12],font=("Arial",12,"bold"))
spin.place(x=295,y=101)
Limagen=Label(contenedor)
Limagen.place(x=300,y=180)

TBoton=StringVar()
TBoton.set("Jugar")
Bplay=Button(contenedor,textvariable=TBoton,command=play)
Bplay.place(x=500,y=98)

Tetiqueta=StringVar()
Enombre=Label(contenedor,textvariable=Tetiqueta,font=("Arial",40,"bold"))
Enombre.place(x=80,y=400)
pygame.init()
ventana.mainloop()



martes, 16 de octubre de 2018

Unidad No.3: Practica #9: Programando un juego propio (Adivina el numero)

Archivo de Python:


Ejecución del programa:




Codigo:
from random import *
import random
import time
import textwrap


msg = ("El siguiente juego consiste en adivinar el numero en que esta pensando la computadora"
       " es importante mencionar que el numero de intentos se establece conforme a la suerte"
       " en el caso de que menciones un numero por debajo del que se busca aparece un mensaje"
       " diciendo que tu estimacion es muy baja, de igual manera sucede en sentido contrario"
       " solo que aparece un mensaje diciendo que la estimacion es muy alta"
       " si llegas a agotar el numero de intentos pierdes el juego, y si lo deseas puedes volver a jugar mucha suerte")

print(textwrap.fill(msg, width = 70))
print("\nBienvenido al juego adivina el numero")
n=raw_input ("Ingresa tu nombre: ")

back=1
while back==1:
    linea_punteada = 70 * '-'
    print(linea_punteada)

    print(n+" estoy pensando en un numero entre 1 y 5 " + "crees poder adivinarlo?")
    print("La suerte va a decir el numero de intentos que tienes")
    time.sleep(2)
    print "*"
    time.sleep(2)
    print "**"
    time.sleep(2)
    print "***"

    aux=0
    arr=[1,2,3,4,5]
    intentos=random.choice(arr)
    num=randint(1,5)
    print ("Tienes "+str(intentos)+" intentos")


    while aux<intentos:
         est=int(input("Intenta adivinar: "))
         aux+=1
         if est<num:
           print("Tu estimacion es muy baja")
         elif est>num: 
            print("Tu estimacion es muy alta")

         elif est==num:
            break
    if num==est:
        print("Good Job "+n+" has adivinado el numero")
    elif num!=est:
        print("Perdiste "+n+" el numero que estaba pensando es:",num)

    print ("Desea volver a jugar? 1.-Si/2.-No")
    back=input("Respuesta: ")





Unidad No.3: Practica #8: Programando un juego (Ataca a los orcos V 0.0.1)

Archivo de Python:


Ejecución del programa:


Código:
# -*- coding: utf-8 -*-

import random
import textwrap

if __name__ == '__main__':
    seguir_jugando = 1
    ocupantes = ['enemigo','amigo','no ocupada']
    ancho_linea = 72 #variable de tamano 72
    linea_punteada = ancho_linea * '-'
    print(linea_punteada)
    print("\033[1m"+ "Ataca a los Orcos V0.0.1" + "\033[0m") #033,1m,0m se utiliza para letras negritas

#Aqui narra la historia del juego y en que consiste...
    msg = ("La guerra entre los humanos y sus arqueros enemigos, los Orcos, estaba en el aire."
          "Un enorme ejército de orcos se dirigía hacia los territos de los humanos. Destruían"
          "prácticamente todo en su camino. Los grandes reyes de la raza humana, se unieron para"
          " derrotar a su peor enemigo, era la gran batalla de su tiempo. Sir Gandorel, uno de los "
          "valientes caballeros que guardan las llanuras meridionales, inició un largo viaje hacia el este"
          ", a través de un desconocido bosque espeso. Durante dos días y dos noches, se movió con cautela "
          "a través del grueso bosque. En su camino, vio un pequeño asentamiento aislado. Cansado y con "
          "la esperanza de reponer su stock de alimentos, decidió tomar un desvío. Cuando se acercó al pueblo,"
          "vio cinco chozas. No había nadie alrededor. En ese instante, decidió entrar en un choza...")

    print(textwrap.fill(msg, width = ancho_linea)) #para respetar las lineas punteadas y que el texto se encuentre en el
    #con el mismo ancho de las lineas punteadas
    print("\033[1m"+"Misión:"+"\033[0m")
    print("Elige una choza donde poder descansar...")
    print("\033[1m"+"NOTA:"+"\033[0m")
    print("¡Cuidado! Hay enemigos rondando la zona")
    print(linea_punteada)

    while seguir_jugando == 1:
        chozas = [] #definimos un vector vacio en donde se estaran llenando las chozas
        while len(chozas) < 5: #Definimos un número de asentamiento para establecerlo como amigo o enemigo
            eleccion_aleatoria = random.choice(ocupantes) #random.choice toma uno de los elementos del vector
            chozas.append(eleccion_aleatoria) #lo agrega al vector

        msg = "\033[1m" + "Elige una choza, introduce un número entre 1 y 5: " + "\033[0m"
        decision_usuario = input("\n"+msg)
        idx = int(decision_usuario)

        #Pasamos a descubrir cuales son los ocupantes del emplazamiento

        print("Descubriendo los ocupantes...")
        msg=""
        for i in range(len(chozas)):
            ocupantes_info = "<%d:%s>"%(i+1, chozas[i])
            if i+1 == idx:
                ocupantes_info = "\033[1m" + ocupantes_info + "\033[0m"
            msg += ocupantes_info + " "
        print("\t" + msg)
        print(linea_punteada)
        print("\033[1m" + "Entrando en la choza %d..." %idx + "\033[0m")

        if chozas[idx-1] == 'enemigo':
            print("\033[1m" + "Sir Gandorel ha muerto asesinado por una manada de orcos (Mucha suerte la próxima vez)" + "\033[0m")
        else:
            print("\033[1m" + "¡Felicidades! Sir Gandorel ha podido descansar con éxito" + "\033[0m")
        print(linea_punteada)
        seguir_jugando = input("¿Quieres jugar de nuevo? Si(1)/No(0):")


jueves, 11 de octubre de 2018

Unidad No.3: Practica #7: Programa punto de venta

Archivo de Python:


Ejecución del programa:



Código:
from Tkinter import *
import tkMessageBox


def SumMul():
    try:
        _e0 = int(v0.get())
        _e0 = _e0 * .50
        _e1 = int(v1.get())
        _e1 = _e1 * 1
        _e2 = int(v2.get())
        _e2 = _e2 * 2
        _e3 = int(v3.get())
        _e3 = _e3 * 5
        _e4 = int(v4.get())
        _e4 = _e4 * 10
        _e5 = int(v5.get())
        _e5 = _e5 * 20
        _e6 = int(v6.get())
        _e6 = _e6 * 50
        _e7 = int(v7.get())
        _e7 = _e7 * 100
        _e8 = int(v8.get())
        _e8 = _e8 * 200
        _e9 = int(v9.get())
        _e9 = _e9 * 500
        _e10 = _e0 + _e1 + _e2 + _e3 + _e4 + _e5 + _e6 + _e7 + _e8 + _e9
        tkMessageBox.showinfo("El resultado es", _e10)
    except ValueError:
        etiqueta.config(text="Introduce un numero entero")


v = Tk()
v.title("")
v.geometry("200x350")

vp = Frame(v)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10))
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)

ET0 = Label(vp, text="MONEDAS")
ET0.grid(column=2, row=1)

e0 = Label(vp, text="0.50")
e0.grid(column=1, row=3)

e1 = Label(vp, text="1.00")
e1.grid(column=1, row=4)

e2 = Label(vp, text="2.00")
e2.grid(column=1, row=5)

e3 = Label(vp, text="5.00")
e3.grid(column=1, row=6)

e3 = Label(vp, text="10.00")
e3.grid(column=1, row=7)

v0 = ""
v0 = Entry(vp, width=5, textvariable=v0)
v0.grid(row=3, column=2)

v1 = ""
v1 = Entry(vp, width=5, textvariable=v1)
v1.grid(row=4, column=2)

v2 = ""
v2 = Entry(vp, width=5, textvariable=v2)
v2.grid(row=5, column=2)

v3 = ""
v3 = Entry(vp, width=5, textvariable=v3)
v3.grid(row=6, column=2)

v4 = ""
v4 = Entry(vp, width=5, textvariable=v4)
v4.grid(row=7, column=2)

ET1 = Label(vp, text="BILLETES")
ET1.grid(column=2, row=9)

e4 = Label(vp, text="20.00")
e4.grid(column=1, row=11)

e5 = Label(vp, text="50.00")
e5.grid(column=1, row=12)

e6 = Label(vp, text="100.00")
e6.grid(column=1, row=13)

e7 = Label(vp, text="200.00")
e7.grid(column=1, row=14)

e8 = Label(vp, text="500.00")
e8.grid(column=1, row=15)

v5 = ""
v5 = Entry(vp, width=5, textvariable=v5)
v5.grid(row=11, column=2)

v6 = ""
v6 = Entry(vp, width=5, textvariable=v6)
v6.grid(row=12, column=2)

v7 = ""
v7 = Entry(vp, width=5, textvariable=v7)
v7.grid(row=13, column=2)

v8 = ""
v8 = Entry(vp, width=5, textvariable=v8)
v8.grid(row=14, column=2)

v9 = ""
v9 = Entry(vp, width=5, textvariable=v9)
v9.grid(row=15, column=2)

b = Button(vp, text="TOTAL", command=SumMul)
b.grid(row=17, column=2, padx=(20, 20), pady=(20, 20))

v.mainloop()

Unidad No.3: Practica #6: Programa sobre clases y objetos (Segundo video)

Archivo de Python:


Ejecución del programa:


Código:
class Humano:
    def __init__(self,edad):
        self.edad=edad


    def hablar(self,mensaje):
        print mensaje

pedro=Humano(26)
raul=Humano(21)

print "Soy pedro y tengo" , pedro.edad
print "Soy Raul y tengo" , raul.edad

pedro.hablar("Hola")

raul.hablar("Hola, pedro")

Unidad No.3: Practica #5: Programa sobre clases y objetos (Primer video)

Archivo de Python:


Ejecución del programa:


Código:
class operaciones:
    def __init__(self,num1,num2):
        self.num1 =num1
        self.num2= num2
    def suma(self):
        return self.num1+self.num2
    def resta(self):
        return self.num1-self.num2
obj=operaciones(3,7)

print obj.suma()
print obj.resta()

Unidad No.3: Tarea #3: Programa utilizando clases

Archivo de Python:


Ejecución del programa:

Código:
class smartphones():
    modelo = ""
    marca = ""

    def __init__(self):
        self.modelo = "Pixel 3"
        self.marca = "Google"


    def modoretrato(self):
        print "tomar fotos en modo retrato"
        return " "

    def video(self):
        print "grabar video en camara lenta a 960 FPS"
        return " "


pixel = smartphones()
xz3 = smartphones()

print "El primer objeto es un", pixel.modelo, "de la marca", pixel.marca, "el cual tiene la funcion de" ,pixel.modoretrato()

xz3.modelo = "Xperia XZ3"
xz3.marca = "Sony"

print "El segundo objeto es un", xz3.modelo, "de la marca", xz3.marca, "el cual tiene la funcion de" ,xz3.video()

miércoles, 10 de octubre de 2018

Unidad No.3: Practica #4: Programa de Antonio Huerta (Menu con arreglos)

Archivo de Python:

#Variable Global
global array
array = []

#Metodos

def IngresarDatos():
    print "Ingresa 5 numeros para un arreglo: "
    i=0
    while i<5: ain="" array.__len__="" array.append="" array.reverse="" array="" arreglo="" contador-="1" contador="len(array)" def="" del="" dios="" elif="" else:="" enu--="" enumerate="" for="" i="" if="" in="" index="=array.__len__()-1):" ingresardatos="" invertedarray.append="" invertedarray="" invertir="" j="" metodo="" metodos="" n="" ningrese="" numero="" numeroactual="" opc="=3):" opcion1="" opcion2="" opcion3="" opcion:="" para="" pre="" print="" reverse="" reversed="" salir="" sin="" su="" un="" while="">

martes, 9 de octubre de 2018

Unidad No.3: Practica #3: Programa de Lyvan (Archivos)

Archivo de Python:


Ejecución del programa:


Código:
import time
from colorama import Fore, Style

opc = 1
while opc != 4:
    print (
                Fore.CYAN + "\t\tMENU\n\n1.- Capturar nuevo registro\n2.- Mostrar registros\n3.- Eliminar registro\n4.- Salir" + Style.RESET_ALL)
    opcion = raw_input("Elige la opcion:\n")

    if opcion == "1":
        op = "si"
        x = 0
        while op != "no":
            rc = "no"
            while rc != "si":
                print (Fore.BLUE + "\t\tNUEVO REGISTRO\n" + Style.RESET_ALL)
                archivo = open("Ejemplo.csv", "a")
                nombre = raw_input("Ingresa un nombre:\n")
                apellido = raw_input("Ingresa un apellido\n")
                print (
                            Fore.BLUE + "\t\tEL REGISTRO INGRESADO ES : " + nombre + " " + apellido + "\n\t\tES CORRECTO? si/no\n" + Style.RESET_ALL)
                rc = raw_input()
                while x != 1:
                    if rc != "si" and rc != "no":
                        print (Fore.RED + "\t\tINGRESE UNA RESPUESTA CORRECTA si/no\n" + Style.RESET_ALL)
                        rc = raw_input()
                    else:
                        x = 1
                if rc == "si":
                    rc = "si"
                else:
                    rc = "no"

            print (Fore.RED + "\t\tSE A CAPTURADO EL REGISTRO : " + Style.RESET_ALL + nombre + " " + apellido)
            archivo.write(nombre + "," + apellido + "\n")
            print (Fore.BLUE + "\t\tREQUIERE INGRESAR OTRO REGISTRO? si/no" + Style.RESET_ALL)
            op = raw_input()

    elif opcion == "2":
        print (Fore.GREEN + "\t\tMOSTRAR REGISTROS\n" + Style.RESET_ALL)
        archivo = open("Ejemplo.csv")
        r = archivo.read()
        if r == "":
            print (Fore.RED + "\t\tEL ARCHIVO ESTA VACIO\n\n")
            archivo.close()
            time.sleep(3)
        else:
            print "Cargando.."
            time.sleep(2)
            print (Fore.GREEN + "Carga lista:" + Style.RESET_ALL)
            print r
            archivo.close()
            time.sleep(3)

    elif opcion == "3":
        print Fore.RED + "\t\tBORRAR\n"
        archivo = open("Ejemplo.csv", "a")
        a = open("Ejemplo.csv")
        r = a.read()
        if r == "":
            print ("\t\tEL ARCHIVO ESTA VACIO\n\n")
            archivo.close()
            time.sleep(3)
        else:
            archivo.truncate()
            print (Fore.RED + "\t\tLOS REGISTROS HAN SIDO BORRADOS\n" + Style.RESET_ALL)
            archivo.close()
            time.sleep(3)

    elif opcion == "4":
        print (Fore.RED + "\t\tSALIR DEL PROGRAMA")
        print ("\t\tADIOS" + Style.RESET_ALL)
        opc = 4

Unidad No.3: Practica #2: Programa de Carlos (Archivos)

Archivo de Python:


Ejecución del programa:


Código:
import sys
from Tkinter import *

#suma funcion

def sumafuncion():
    valor1=int(entrada1.get())
    valor2=int(entrada2.get())
    sumas=str(valor1+valor2)
    Wonder = Label(ventana, text='el resultado es:'+ sumas ,fill="blue", font=("agency fb",14)).place(x=40, y=150)
#funcion introducir datos

def introducirdatos():
    archivo = open('ejemplo1.csv', 'a')
    nombre =entrada1.get()
    apellido =entrada2.get()
    archivo.write(nombre + ',' + apellido + '\n')
    anadir= Label(ventana ,text = 'se ha introducido el nombre '+nombre+' con el apellido : '+apellido,background="green",font=("agency fb",14)).place(x=100,y=200)


def mostrardatos():
    archivo = open('ejemplo1.csv')
    add = Label(ventana, text='mostrar registros \n'+archivo.read(),background="blue",font=("agency fb", 14)).place(x=100, y=200)
    archivo.close()

def eliminardatos():
    archivo = open('ejemplo1.csv', 'a')
    archivo.truncate()
    elminar = Label(ventana, text='Los archivos existentes han sido eliminados            ',background="red", font=("agency fb", 14)).place(x=100, y=200)
    archivo.close()

def Limpiaretiquetas():
    anadir.config(text='')
    add.config(text='')
    eliminar.config(text='')

#ventana
ventana=Tk()#Creando la ventana de la aplicacion con un objeto TK()
ventana.geometry("500x500")#Ancho y alto en pixeles
ventana.title('Ventana TK')#Titulo del objeto ventana

#labels y texttfield para introducir nombre
label1=Label(text="Nombre").place(x=10,y=10)
entrada1=StringVar()#Declarando una variable para el textfield
txtuser1=Entry(ventana,textvariable=entrada1).place(x=70, y=20)#Objeto de entry

#para el apellido label y textfielda
label1=Label(text="Apellido", font=("agency fb", 14)).place(x=10, y=40)
entrada2=StringVar()
txtuser2=Entry(ventana, textvariable=entrada2).place(x=70, y=50)

#boton para agregar nuevos
Agregar=Button(ventana,text='registrar datos',command=introducirdatos).place(x=50, y=100)#Objeto Butto, donde de despliega, coordenadas y a que procedimiento va si se hace clic en el
#boton para mostrar registros:
mostrar=Button(ventana,text='mostrar datos',command=mostrardatos).place(x=150,y=100)
#boton para eliminar registros:
Borrar = Button(ventana,text= 'Borrar registros', command=eliminardatos).place(x=250,y=100)
#boton para limpiar labels:
limpiar = Button(ventana,text='limpiar label',command=Limpiaretiquetas).place(x=350,y=100)

anadir=Label(ventana,text='')
add=Label(ventana,text='')
eliminar=Label(ventana,text='')

#la suma que hizo posible todo esto :)
#suma=Button(ventana,text='calcular suma',command=sumafuncion).place(x=40, y=100)

ventana.mainloop()


Unidad No.3: Tarea #2: Clases y objetos en python

Un Programa Orientado a Objetos (POO) se basa en una agrupación de objetos de distintas clases que interactúan entre sí y que, en conjunto, consiguen que un programa cumpla su propósito.
En este paradigma de programación se intenta emular el funcionamiento de los objetos que nos rodean en la vida real. En Python cualquier elemento del lenguaje pertenece a una clase y todas las clases tienen el mismo rango y se utilizan del mismo modo.

Clases, atríbutos y métodos

Las clases en este contexto permiten definir los atributos y el comportamiento, mediante métodos, de los objetos de un programa. Una clase es una especie de plantilla o prototipo que se utiliza para crear instancias individuales del mismo tipo de objeto.

Los atributos definen las características propias del objeto y modifican su estado. Son datos asociados a las clases y a los objetos creados a partir de ellas.

De ello, se deducen los dos tipos de atributos o de variables existentes: variables de clase y variables de instancia (objetos).

Los métodos son bloques de código (o funciones) de una clase que se utilizan para definir el comportamiento de los objetos.

Tanto para acceder a los atributos como para llamar a los métodos se utiliza el método denominado de notación de punto que se basa en escribir el nombre del objeto o de la clase seguido de un punto y el nombre del atributo o del método con los argumentos que procedan: clase.atributo, objeto.atributo, objeto.método([argumentos]).

Un ejemplo característico de objeto Python donde se identifican fácilmente los métodos son las listas. Una lista es un objeto que permite contener una colección o secuencia de datos. Los datos de una lista deben ir separados por comas (,) y todo el conjunto entre corchetes. Una lista es una estructura mutable porque no sólo se puede acceder a los datos, además, es posible agregar nuevos elementos o suprimir aquellos que no sean necesarios. La clase lista (List) incorpora varios métodos para facilitar este trabajo:

# coding=utf-8
lista = ['c', 'a', 'b'] # Declara lista con tres elementos
lista.append('d') # Agrega elemento al final de lista con append()
lista.pop() # Borra último elemento de lista con método pop()
lista.sort() # Ordena la lista con el método sort()
print(lista) # ['a', 'b', 'c']


Variables de Clases y Variables de Instancias

En lenguajes que crean objetos a partir de clases, un objeto es una instancia de una clase. Y de una misma clase se pueden mantener activas en un programa más de una instancia al mismo tiempo.

Una variable de clase es compartida por todas las instancias de una clase. Se definen dentro de la clase (después del encabezado de la clase) pero nunca dentro de un método. Este tipo de variables no se utilizan con tanta frecuencia como las variables de instancia.

Una variable de instancia se define dentro de un método y pertenece a un objeto determinado de la clase instanciada.



Crear clases

Una clase consta de dos partes: un encabezado que comienza con el término class seguido del nombre de la clase (en singular) y dos puntos (:) y un cuerpo donde se declaran los atributos y los métodos:

class NombreClase:
'Texto para documentar la clase (opcional)'
varclase1 = "variable de clase1"
def nombremetodo1(self, var1):
self.var1 = var1
def nombremetodo2(self):
self.var1 += 1

La documentación de una clase debe situarse después del encabezado y justo antes del lugar donde se declaren las variables y los métodos de la clase.

Desde cualquier lugar de un programa se puede acceder a la cadena de documentación de una clase accediendo al atributo especial: NombreClase.__doc__ 

Todo lo que se incluye en una clase es opcional. De hecho, la clase más elemental aunque no tenga mucha utilidad puede estar vacía:

class Clase:
pass

La declaración pass indica que no se ejecutará ningún código. Sin embargo, esta clase una vez definida permite que se instancien objetos de ella e incluso es posible realizar algunas operaciones elementales.

En el siguiente ejemplo se define una clase mucho más completa:

class Alumno:
    'Clase para alumnos'
    numalumnos = 0
    sumanotas = 0

    def __init__(self, nombre, nota):
        self.nombre = nombre
        self.nota = nota
        Alumno.numalumnos += 1
        Alumno.sumanotas += nota

    def mostrarNombreNota(self):
        return(self.nombre, self.nota)

    def mostrarNumAlumnos(self):
        return(Alumno.numalumnos)

    def mostrarSumaNotas(self):
        return(Alumno.sumanotas)

    def mostrarNotaMedia(self):
        if Alumno.numalumnos > 0:
            return(Alumno.sumanotas/Alumno.numalumnos)
        else:
            return("Sin alumnos")

La clase Alumno consta de dos variables de clase (Alumno.numalumnos y Alumno.sumanotas) que son accesibles desde los métodos de la clase. Además, sus valores son compartidos por todas las instancias que existan de esta clase.

A continuación, se declaran varios métodos (funciones) que incluyen como primer argumento a self que contiene la referencia del objeto especifico que llama al método en un momento dado. Como su valor es implícito cuando se llama a un método no es necesario pasar este argumento.

El método __init__() es especial porque se ejecuta automáticamente cada vez que se crea una nuevo objeto. Este método, que es opcional, se llama constructor y se suele utilizar para inicializar las variables de las instancias (en este caso para inicializar las variables self.nombre y self.nota).

El resto de métodos se utilizan para acceder y mostrar el valor de las variables de clase y de instancia. Por último, el método mostrarNotaMedia() realiza un cálculo y después muestra su resultado.

Crear objetos (instancias) de una clase

Para crear instancias de una clase se llama a la clase por su propio nombre pasando los argumentos que requiera el método constructor __init__ si existe.


alumno1 = Alumno("Maria", 8)
alumno2 = Alumno("Carlos", 6)

Todos los argumentos se pasan escribiéndolos entre paréntesis y separados por comas (","). El primer argumento self se omite porque su valor es una referencia al objeto y es implícito para todos los métodos.

Accediendo a los atributos y llamando a los métodos

Para acceder a la variable de un objeto se indica el nombre del objeto, seguido de un punto y el nombre de la variable:


print(alumno1.nombre)  # María
print(alumno1.nota)  # 8

Para modificar la variable de un objeto se utiliza la misma notación para referirse al atributo y después del signo igual (=) se indica la nueva asignación:


alumno1.nombre = "Carmela"

Para acceder a las variables de la clase se sigue la misma notación pero en vez de indicar el nombre del objeto se indica el nombre de la clase instanciada.

print(Alumno.numalumnos)  # 2
print(Alumno.sumanotas)  # 14

Para llamar a un método se indica el nombre de objeto, seguido de un punto y el nombre del método. Si se requieren varios argumentos se pasan escribiéndolos entre paréntesis, separados por comas (","). Si no es necesario pasar argumentos se añaden los paréntesis vacíos "()" al nombre del método.


print(alumno1.mostrarNombreNota())  # ('Carmen', 8)
print(alumno2.mostrarNombreNota())  # ('Carlos', 6)

Para suprimir un atributo:


del alumno1.nombre

Si a continuación, se intenta acceder al valor del atributo borrado o se llama a algún método que lo utilice, se producirá la siguiente excepción:


print(alumno1.mostrarNombreNota())

AttributeError: 'Alumno' object has no attribute 'nombre'

Pare crear nuevamente el atributo realizar una nueva asignación:


alumno1.nombre = "Carmen"

Vídeo sobre clases y objetos: https://www.youtube.com/watch?v=VYXdpjCZojA