Forum     

Go Back   Digit Technology Discussion Forum > Software > Programming
Register FAQ Calendar Mark Forums Read

Programming The destination for developers - C, C++, Java, Python and the lot


Reply
 
LinkBack Thread Tools Display Modes
Old 27-06-2011, 10:28 AM   #1 (permalink)
learn more share more....
 
hacklinux's Avatar
 
Join Date: May 2011
Posts: 36
Question regarding python


i am learning python and just learnt few basics.now i need to save a file and run it.how do i do it?
hacklinux is offline   Reply With Quote
Advertisements. Register and be a member of the community to get rid of them.
Advertisement

Old 27-06-2011, 10:45 AM   #2 (permalink)
Simply a DIGITian
 
krishnandu.sarkar's Avatar
 
Join Date: Nov 2007
Location: Kolkata
Posts: 2,942
Default Re: regarding python

Save the file with .py as extension. So if you name the file helloworld then the file name should be helloworld.py

Now from the terminal, invoke that file using
Code:
python helloworld.py
and press enter.
__________________
  • Read The Forum RULES First.
  • Before PM'ing Or Asking Any Questions To Any Mod Read The FAQ's
  • Before Starting A New Thread Read The STICKY THREADS First
  • Before Participating In Bazaar Section Read The BAZAAR RULES
krishnandu.sarkar is online now   Reply With Quote
Old 27-06-2011, 11:00 PM   #3 (permalink)
learn more share more....
 
hacklinux's Avatar
 
Join Date: May 2011
Posts: 36
Default Re: regarding python

ok...dats fine but where do i save it?in d folder where my python main files are,over der?
hacklinux is offline   Reply With Quote
Old 27-06-2011, 11:34 PM   #4 (permalink)
In The Zone
 
Anish's Avatar
 
Join Date: Jul 2008
Location: Golden City
Posts: 320
Default Re: regarding python

^ You can save it any where you like. But while running the command in terminal be sure you are in the location where you saved your file.
__________________
The secret ingredient is nothing
Anish is offline   Reply With Quote
Old 28-06-2011, 12:42 PM   #5 (permalink)
learn more share more....
 
hacklinux's Avatar
 
Join Date: May 2011
Posts: 36
Default Re: regarding python

i downloaded few codes from few websites and tried running them but they display some kind of error and am not able to understand why it is showing error.
hacklinux is offline   Reply With Quote
Old 28-06-2011, 01:12 PM   #6 (permalink)
Manchester United <3
 
Ishu Gupta's Avatar
 
Join Date: Oct 2010
Location: Noida
Posts: 2,122
Default Re: regarding python

What's the error?
__________________
i5 2500k 4.4GHz @ 1.25v | CM Hyper 212 Evo | HD 3000 @ 1.5GHz | Asus P8Z68-V Gen 3
2x4GB DDR3 1600MHz CL9 | 160GB 7200rpm + 160GB 5400rpm | W7 x64
CM690 II USB3 | Corsair TX750W V2 | APC 1.1KVa | Dell U2312HM + Sansui V8 19"
Razer DA Black + Razer Goliathus | XBox360 wired x2
Senns HD201 | PSP Slim 8GB MSPD | N5800XM 8GB MSD | Speedtest
Ishu Gupta is offline   Reply With Quote
Old 28-06-2011, 01:13 PM   #7 (permalink)
Simply a DIGITian
 
krishnandu.sarkar's Avatar
 
Join Date: Nov 2007
Location: Kolkata
Posts: 2,942
Default Re: regarding python

Because the programs are wrong. For understanding those errors you need to learn Python.
__________________
  • Read The Forum RULES First.
  • Before PM'ing Or Asking Any Questions To Any Mod Read The FAQ's
  • Before Starting A New Thread Read The STICKY THREADS First
  • Before Participating In Bazaar Section Read The BAZAAR RULES
krishnandu.sarkar is online now   Reply With Quote
Old 28-06-2011, 01:15 PM   #8 (permalink)
Manchester United <3
 
Ishu Gupta's Avatar
 
Join Date: Oct 2010
Location: Noida
Posts: 2,122
Default Re: regarding python

Quote:
Originally Posted by krishnandu.sarkar View Post
Because the programs are wrong. For understanding those errors you need to learn Python.
I have a feeling that he has not installed python.
__________________
i5 2500k 4.4GHz @ 1.25v | CM Hyper 212 Evo | HD 3000 @ 1.5GHz | Asus P8Z68-V Gen 3
2x4GB DDR3 1600MHz CL9 | 160GB 7200rpm + 160GB 5400rpm | W7 x64
CM690 II USB3 | Corsair TX750W V2 | APC 1.1KVa | Dell U2312HM + Sansui V8 19"
Razer DA Black + Razer Goliathus | XBox360 wired x2
Senns HD201 | PSP Slim 8GB MSPD | N5800XM 8GB MSD | Speedtest
Ishu Gupta is offline   Reply With Quote
Old 28-06-2011, 01:22 PM   #9 (permalink)
learn more share more....
 
hacklinux's Avatar
 
Join Date: May 2011
Posts: 36
Default Re: regarding python

i have this tic-tac-toe game here.downloaded from the internet.



Code:
# 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
end....

the error i get is dis



Traceback (most recent call last):
File "C:\examples\tictactoe.py", line 145, in <module>
playerLetter, computerLetter = inputPlayerLetter()
File "C:\examples\tictactoe.py", line 27, in inputPlayerLetter
letter = input().upper()
File "<string>", line 1, in <module>
NameError: name 'x' is not defined




now wat is d problem?can u help me wid it?

Last edited by krishnandu.sarkar; 28-06-2011 at 01:34 PM. Reason: added code tags
hacklinux is offline   Reply With Quote
Old 28-06-2011, 01:57 PM   #10 (permalink)
Manchester United <3
 
Ishu Gupta's Avatar
 
Join Date: Oct 2010
Location: Noida
Posts: 2,122
Default Re: regarding python

Try using Python 3.
__________________
i5 2500k 4.4GHz @ 1.25v | CM Hyper 212 Evo | HD 3000 @ 1.5GHz | Asus P8Z68-V Gen 3
2x4GB DDR3 1600MHz CL9 | 160GB 7200rpm + 160GB 5400rpm | W7 x64
CM690 II USB3 | Corsair TX750W V2 | APC 1.1KVa | Dell U2312HM + Sansui V8 19"
Razer DA Black + Razer Goliathus | XBox360 wired x2
Senns HD201 | PSP Slim 8GB MSPD | N5800XM 8GB MSD | Speedtest
Ishu Gupta is offline   Reply With Quote
Old 28-06-2011, 02:04 PM   #11 (permalink)
learn more share more....
 
hacklinux's Avatar
 
Join Date: May 2011
Posts: 36
Default Re: regarding python

tried..even den it says d same...
hacklinux is offline   Reply With Quote
Old 28-06-2011, 03:18 PM   #12 (permalink)
Manchester United <3
 
Ishu Gupta's Avatar
 
Join Date: Oct 2010
Location: Noida
Posts: 2,122
Default Re: regarding python

Code:
# 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 = raw_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 raw_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 = raw_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
__________________
i5 2500k 4.4GHz @ 1.25v | CM Hyper 212 Evo | HD 3000 @ 1.5GHz | Asus P8Z68-V Gen 3
2x4GB DDR3 1600MHz CL9 | 160GB 7200rpm + 160GB 5400rpm | W7 x64
CM690 II USB3 | Corsair TX750W V2 | APC 1.1KVa | Dell U2312HM + Sansui V8 19"
Razer DA Black + Razer Goliathus | XBox360 wired x2
Senns HD201 | PSP Slim 8GB MSPD | N5800XM 8GB MSD | Speedtest
Ishu Gupta is offline   Reply With Quote
Old 07-02-2012, 01:09 PM   #13 (permalink)
i love bakwaas
 
Join Date: Jan 2012
Location: bangalore
Posts: 10
Default Re: regarding python

Seems like an old thread but i don't know where else to ask.
Trying something like this Wu-Name Name Generator in python.
Help or guidance would be greatly appreciated.
kaput is offline   Reply With Quote
Old 09-02-2012, 08:00 PM   #14 (permalink)
In The Zone
 
Anish's Avatar
 
Join Date: Jul 2008
Location: Golden City
Posts: 320
Default Re: regarding python

Quote:
Originally Posted by kaput View Post
Seems like an old thread but i don't know where else to ask.
Trying something like this Wu-Name Name Generator in python.
Help or guidance would be greatly appreciated.
Follow these two steps:
1. Buy the book - Head first python
2. Read the book

You will be a excellent programmer in python when you finish the book - believe me
__________________
The secret ingredient is nothing
Anish is offline   Reply With Quote
Old 10-02-2012, 12:35 PM   #15 (permalink)
i love bakwaas
 
Join Date: Jan 2012
Location: bangalore
Posts: 10
Default Re: regarding python

will buy soon
About my earlier post, i got around to that part where i can generate random names. But even for the same input string it generates a different name.
eg input :Mohan output : cool guy
eg: input: Mohan output: creepy man

any idea how to get the same output for the same input.
kaput is offline   Reply With Quote
Old 10-02-2012, 10:01 PM   #16 (permalink)
In The Zone
 
Anish's Avatar
 
Join Date: Jul 2008
Location: Golden City
Posts: 320
Default Re: regarding python

^ Can you post the code so that we can rectify it?
__________________
The secret ingredient is nothing
Anish is offline   Reply With Quote
Old 13-02-2012, 10:58 AM   #17 (permalink)
i love bakwaas
 
Join Date: Jan 2012
Location: bangalore
Posts: 10
Default Re: regarding python

using college library computer.
will post soon. thanks
kaput is offline   Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


 
Latest Threads
- by Charan
- by Sarath
- by clmlbx

Advertisement




All times are GMT +5.5. The time now is 12:30 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.

Search Engine Optimization by vBSEO 3.3.2