Spyder, un IDE para Python

spyderlib

Si estás pensando en un entorno de programación de Python ligero y versátil y que encima esté preparado para la programación científica, Spyder es tu IDE perfecto.

Las características más destacadas de este IDE son las siguientes:

  • Sintaxis coloreada para Python, C/C++ y Fortran.
  • Consolas Python y iPython integradas.
  • Explorador de variables.
  • Inspector de objetos.
  • Integración con Pylint.
  • read more

    Leer más » 2 Comentarios

    Juego – Adivina la cueva del dragón – Python

    Como ya dije otras veces, Invent Your Own Computer Games with Python es un libro gratuito y libre que te enseña a programar juegos de ordenador en Python. Cada ciertos capítulos te muestra el código completo de un nuevo juego y luego te explica los conceptos de programación de dicho código.

    Uno de los juegos más sencillos y más interesantes para aprender es Adivina la cueva del dragón, aquí os paso el código completo para ejecutarlo en Python 3 en adelante.

    import random import time def displayIntro(): print() print('Te encuentras en un lugar lleno de dragones. Delante') print('tuya ves dos cuevas. En una vive un dragon afable que ') print('tiene escondido un tesoro para ti. El otro dragon') print('es agresivo y no dudara en comerte.') print() def chooseCave(): cave = '' while cave != '1' and cave != '2': print('Elige una de las dos cuevas (1 o 2)') cave = input() return cave def checkCave(chosenCave): print('Te acercas a la cueva...') time.sleep(2) print('Esta oscura y silenciosa...') time.sleep(2) print('y de repente un dragon se abalanza hacia ti,') print('abre la boca y...') print() time.sleep(2) friendlyCave = random.randint(1, 2) if chosenCave == str(friendlyCave): print('Te da el tesoro!') else: print('Te come de un solo bocado!') playAgain = 'yes' while playAgain == 'yes' or playAgain == 'y': displayIntro() caveNumber = chooseCave() checkCave(caveNumber) print('Juegas de nuevo? (yes o no)') playAgain = input() read more

    Leer más » 3 Comentarios

    Juego – Adivina el número – Python

    Como ya dije la semana pasada, Invent Your Own Computer Games with Python es un libro gratuito y libre que te enseña a programar juegos de ordenador en Python. Cada ciertos capítulos te muestra el código completo de un nuevo juego y luego te explica los conceptos de programación de dicho código.

    Uno de los juegos más sencillos y más interesantes para aprender es Adivina el número, aquí os paso el código completo para ejecutarlo en Python 3 en adelante.

    # This is a guess the number game. import random guessesTaken = 0 print('Hello! What is your name?') myName = input() number = random.randint(1, 20) print('Well, ' + myName + ', I am thinking of a number between 1 and 20.') while guessesTaken < 6: print('Take a guess.') # There are four spaces in front of print. guess = input() guess = int(guess) guessesTaken = guessesTaken + 1 if guess < number: print('Your guess is too low.') # There are eight spaces in front of print. if guess > number: print('Your guess is too high.') if guess == number: break if guess == number: guessesTaken = str(guessesTaken) print('Good, ' + myName + '! You guessed my number in ' + guessesTaken + ' guesses!') if guess != number: number = str(number) print('Nope. The number I was thinking of was ' + number) read more

    Leer más » 1 Comentario

    Entrada de datos en consola con Python

    Si quieres un programa en Python 3 sin interfaz gráfica y que la entrada de datos la realice el usuario durante la ejecución del programa y en consola la función a usar es la de input.

    Veamos un sencillo ejemplo:

    print('Nombre: ')
    nombre = input()
    print('Es un placer conocerte, ' + nombre)
    
    Leer más » 2 Comentarios

    Tres en raya en Python

    Invent Your Own Computer Games with Python es un libro gratuito y libre que te enseña a programar juegos de ordenador en Python. Cada ciertos capítulos te muestra el código completo de un nuevo juego y luego te explica los conceptos de programación de dicho código.

    Uno de los juegos más sencillos y más interesantes para aprender es el Tres en Raya, aquí os paso el código completo para ejecutarlo en Python 3 en adelante.

    # Tic Tac Toe import random def drawBoard(board): # This function prints out the board that it was passed. # "board" is a list of 10 strings representing the board (ignore index 0) print(' | |') print(' ' + board[7] + ' | ' + board[8] + ' | ' + board[9]) print(' | |') print('-----------') print(' | |') print(' ' + board[4] + ' | ' + board[5] + ' | ' + board[6]) print(' | |') print('-----------') print(' | |') print(' ' + board[1] + ' | ' + board[2] + ' | ' + board[3]) print(' | |') def inputPlayerLetter(): # Let's the player type which letter they want to be. # Returns a list with the player's letter as the first item, and the # computer's letter as the second. letter = '' while not (letter == 'X' or letter == 'O'): print('Do you want to be X or O?') letter = input().upper() # the first element in the tuple is the player's letter, the second is # the computer's letter. if letter == 'X': return ['X', 'O'] else: return ['O', 'X'] def whoGoesFirst(): # Randomly choose the player who goes first. if random.randint(0, 1) == 0: return 'computer' else: return 'player' def playAgain(): # This function returns True if the player wants to play again, otherwise # it returns False. print('Do you want to play again? (yes or no)') return input().lower().startswith('y') def makeMove(board, letter, move): board[move] = letter def isWinner(bo, le): # Given a board and a player's letter, this function returns True if that # player has won. We use bo instead of board and le instead of letter so # we don't have to type as much. return ((bo[7] == le and bo[8] == le and bo[9] == le) or # across the top (bo[4] == le and bo[5] == le and bo[6] == le) or # across the middle (bo[1] == le and bo[2] == le and bo[3] == le) or # across the bottom (bo[7] == le and bo[4] == le and bo[1] == le) or # down the left side (bo[8] == le and bo[5] == le and bo[2] == le) or # down the middle (bo[9] == le and bo[6] == le and bo[3] == le) or # down the right side (bo[7] == le and bo[5] == le and bo[3] == le) or # diagonal (bo[9] == le and bo[5] == le and bo[1] == le)) # diagonal def getBoardCopy(board): # Make a duplicate of the board list and return it the duplicate. dupeBoard = [] for i in board: dupeBoard.append(i) return dupeBoard def isSpaceFree(board, move): # Return true if the passed move is free on the passed board. return board[move] == ' ' def getPlayerMove(board): # Let the player type in his move. move = ' ' while move not in '1 2 3 4 5 6 7 8 9'.split() or not isSpaceFree(board, int(move)): print('What is your next move? (1-9)') move = input() return int(move) def chooseRandomMoveFromList(board, movesList): # Returns a valid move from the passed list on the passed board. # Returns None if there is no valid move. possibleMoves = [] for i in movesList: if isSpaceFree(board, i): possibleMoves.append(i) if len(possibleMoves) != 0: return random.choice(possibleMoves) else: return None def getComputerMove(board, computerLetter): # Given a board and the computer's letter, determine where to move and # return that move. if computerLetter == 'X': playerLetter = 'O' else: playerLetter = 'X' # Here is our algorithm for our Tic Tac Toe AI: # First, check if we can win in the next move for i in range(1, 10): copy = getBoardCopy(board) if isSpaceFree(copy, i): makeMove(copy, computerLetter, i) if isWinner(copy, computerLetter): return i # Check if the player could win on his next move, and block them. for i in range(1, 10): copy = getBoardCopy(board) if isSpaceFree(copy, i): makeMove(copy, playerLetter, i) if isWinner(copy, playerLetter): return i # Try to take one of the corners, if they are free. move = chooseRandomMoveFromList(board, [1, 3, 7, 9]) if move != None: return move # Try to take the center, if it is free. if isSpaceFree(board, 5): return 5 # Move on one of the sides. return chooseRandomMoveFromList(board, [2, 4, 6, 8]) def isBoardFull(board): # Return True if every space on the board has been taken. Otherwise # return False. for i in range(1, 10): if isSpaceFree(board, i): return False return True print('Welcome to Tic Tac Toe!') while True: # Reset the board theBoard = [' '] * 10 playerLetter, computerLetter = inputPlayerLetter() turn = whoGoesFirst() print('The ' + turn + ' will go first.') gameIsPlaying = True while gameIsPlaying: if turn == 'player': # Player's turn. drawBoard(theBoard) move = getPlayerMove(theBoard) makeMove(theBoard, playerLetter, move) if isWinner(theBoard, playerLetter): drawBoard(theBoard) print('Hooray! You have won the game!') gameIsPlaying = False else: if isBoardFull(theBoard): drawBoard(theBoard) print('The game is a tie!') break else: turn = 'computer' else: # Computer's turn. move = getComputerMove(theBoard, computerLetter) makeMove(theBoard, computerLetter, move) if isWinner(theBoard, computerLetter): drawBoard(theBoard) print('The computer has beaten you! You lose.') gameIsPlaying = False else: if isBoardFull(theBoard): drawBoard(theBoard) print('The game is a tie!') break else: turn = 'player' if not playAgain(): break read more

    Leer más » 2 Comentarios

    Ejemplo de interfaz gráfica sencilla en Python con Tkinter

    Está claro que para interfaces de gran envergadura existen soluciones como PyGTK, wxPython o PyQT. Sin embargo, para aplicaciones sencillas puedes utilizar la interfaz Tkinter de la librería estándar de Python.

    Aquí te muestro un ejemplo sencillo:

    import Tkinter
    
    if __name__ == '__main__':
        root = Tkinter.Tk()
        root.title('Button')
        Tkinter.Label(text='I am a button').pack(pady=15)
        Tkinter.Button( text='Button').pack(side=Tkinter.BOTTOM)
        root.mainloop()
    
    

    Y éste es el resultado: read more

    Leer más » 2 Comentarios

    Fibonacci recursivo en Python

    La recursividad es un concepto importante en programación y es fundamental conocerlo, un ejemplo que se usa mucho es con Fibonacci. Ésta es una implementación para calcular el orden de Fibonacci mediante recursividad en Python:

    #!/usr/bin/env python
    
    def fib(n):
        if n == 0:
            return 0
        if n == 1:
            return 1
        return fib(n-1) + fib(n-2)
    
    if __name__ == '__main__':
        fibonacci = fib(10)
        print('Fibonacci de orden 10:')
        print(fibonacci)
    
    

    Si tienes otra propuesta o alternativa será bien agradecida. ¡Participa y comenta! read more

    Leer más » 5 Comentarios

    Escribir ficheros de datos en Python

    En este sencillo ejemplo el programa escribe en un fichero llamado datos.csv el nombre, la edad y la altura de tres personas con su correspondiente identificador. Una vez que se haya creado este archivo de datos en formato csv, éste se puede procesar con hojas de cálculo como LibreOffice Calc.

    Aquí tienes el código:

    #!/usr/bin/env python

    def main():
        f = open('datos.csv','w')
        f.write('ID,Nombre,Edad,Altura (cm)\n')
        f.write('00,Javier,23,177\n')
        f.write('01,Nacho,28,182\n')
        f.write('02,David,34,190') read more

    Leer más » 4 Comentarios

    Primer programa en Python – Hola mundo

    Simplicidad y legibilidad, así es el ‘hola mundo’, un ejemplo de primer programa, en Python:

    print('Hola, mundo.')
    
    Leer más » 5 Comentarios

    Lo mejor de mi timeline del 7 al 13 de abril

    Leer más » 3 Comentarios