Weird str right after execution - python

I've been playing around with some code and recently found this issue out, once this code runs it returns "None" right under the players name and health, I've been trying to figure out why and changed a lot of the code but the issue still remains, does anyone know why this might be? much appreciated!
import random
import math
import os
import time
def return_health(name, health, maxHealth, healthDashes):
dashConvert = int(maxHealth/healthDashes)
currentDashes = int(health/dashConvert)
remainingHealth = healthDashes - currentDashes
healthDisplay = '-' * currentDashes
remainingDisplay = ' ' * remainingHealth
percent = str(int((health/maxHealth)*100)) + "%"
print(name+" "+"|" + healthDisplay + remainingDisplay + "|")
print(" " + percent)
class Player():
def __init__(self, name, maxhealth, health, healthdashes, offense, jutsu1, jutsu2, jutsu3):
self.name = name
self.maxhealth = maxhealth
self.health = health
self.healthdashes = healthdashes
self.offense = offense
self.jutsu1 = jutsu1
self.jutsu2 = jutsu2
self.jutsu3 = jutsu3
class Jutsu():
def __init__(self, name, damage):
self.name = name
self.damage = damage
## Jutsu's
Rasengan = Jutsu("Rasengan", 15)
Rasenshuriken = Jutsu("Rasenshuriken", 30)
VermillionRasengan = Jutsu("Vermillion Rasengan", 50)
Chidori = Jutsu("Chidori", 15)
OnxyChidori = Jutsu("Onxy Chidori", 30)
SusanoArrow = Jutsu("Susano's Arrow", 50)
## Player's
Naruto = Player("Naruto Uzumaki", 100, 100, 20, 10, Rasengan, Rasenshuriken,
VermillionRasengan)
Sasuke = Player("Sasuke Uchiha", 100, 100, 20, 10, Chidori, OnxyChidori, SusanoArrow)
def fight(player1, player2):
os.system("clear")
while True:
if player1.health <= 0:
os.system("clear")
print(player1.name + " has been defeated.")
time.sleep(3)
break
elif player2.health <= 0:
os.system("clear")
print(player2.name + " has been defeated")
time.sleep(3)
else:
print(return_health(player1.name, player1.health, player1.maxhealth, player1.healthdashes))
print(return_health(player2.name, player2.health, player2.maxhealth, player2.healthdashes))
print(player1.name + "'s turn.'")
print()
print("Choose your move!")
print("1. Attack" + " : " + str(+player1.offense))
print("2. " + player1.jutsu1.name + " : " +
str(+player1.jutsu1.damage))
print("3. " + player1.jutsu2.name + " : " +
str(+player1.jutsu2.damage))
print("4. " + player1.jutsu3.name + " : " +
str(+player1.jutsu3.damage))
choice = input("> ")
os.system("clear")
if choice == "1":
print(player1.name + " has attacked " + player2.name +
" for " + str(player1.offense) + " damage.")
player2.health -= player1.offense
elif choice == "2":
print(player1.name + " attacked " + player2.name + " with " +
player1.jutsu1.name + " for " +
str(player1.jutsu1.damage) + " damage.")
player2.health -= player1.jutsu1.damage
elif choice == "3":
print(player1.name + " attacked " + player2.name + " with " +
player1.jutsu2.name + " for " +
str(player1.jutsu2.damage) + " damage.")
player2.health -= player1.jutsu2.damage
elif choice == "4":
print(player1.name + " attacked " + player2.name + " with " +
player1.jutsu3.name + " for " +
str(player1.jutsu3.damage) + " damage.")
player2.health -= player1.jutsu3.damage
time.sleep(2)
os.system("clear")
if player2.health <= 0:
os.system("clear")
print(player2.name + " has been defeated.")
time.sleep(3)
break
else:
print(player2.name + " : " + str(player2.health))
print(player1.name + " : " + str(player1.health))
print(player2.name + "'s turn.'")
print()
print("Choose your move!")
print("1. Attack" + " : " + str(+player2.offense))
print("2. " + player2.jutsu1.name + " : " +
str(+player2.jutsu1.damage))
print("3. " + player2.jutsu2.name + " : " +
str(+player2.jutsu2.damage))
print("4. " + player2.jutsu3.name + " : " +
str(+player2.jutsu3.damage))
choice = input("> ")
os.system("clear")
if choice == "1":
print(player2.name + " has attacked " + player1.name +
" for " + str(player2.offense) + " damage.")
player1.health -= player2.offense
elif choice == "2":
print(player2.name + " attacked " + player1.name +
" with " + player2.jutsu1.name + " for " +
str(player2.jutsu1.damage) + " damage.")
player1.health -= player2.jutsu1.damage
elif choice == "3":
print(player2.name + " attacked " + player1.name +
" with " + player2.jutsu2.name + " for " +
str(player2.jutsu2.damage) + " damage.")
player1.health -= player2.jutsu2.damage
elif choice == "4":
print(player2.name + " attacked " + player1.name +
" with " + player2.jutsu3.name + " for " +
str(player2.jutsu3.damage) + " damage.")
player1.health -= player2.jutsu3.damage
time.sleep(2)
os.system("clear")
fight(Naruto, Sasuke)

Consider the following line
print(return_health(player1.name, player1.health, player1.maxhealth, player1.healthdashes))
You are asking python to print the result of the return_health function. The return_health function doesn't actually return anything so the result of the function is None.
You don't need the print at the start of this line since the return_health function already prints the health information.
Also, it would be better Object Oriented Programming, to make this functionality part of the Player class.
Consider the below change
class Player():
def __init__(self, name, maxhealth, health, healthdashes, offense, jutsu1, jutsu2, jutsu3):
self.name = name
self.maxhealth = maxhealth
self.health = health
self.healthdashes = healthdashes
self.offense = offense
self.jutsu1 = jutsu1
self.jutsu2 = jutsu2
self.jutsu3 = jutsu3
def showhealth(self):
dashConvert = int(self.maxhealth/self.healthdashes)
currentDashes = int(self.health/dashConvert)
remainingHealth = self.healthdashes - currentDashes
healthDisplay = '-' * currentDashes
remainingDisplay = ' ' * remainingHealth
percent = str(int((self.health/self.maxhealth)*100)) + "%"
print(self.name+" "+"|" + healthDisplay + remainingDisplay + "|")
print(" " + percent)
Then when you want to output the health of the player you just call something like
player1.showhealth()
You could also have an "Attack" method for the class.
def attack(self, other_player, chosen_jutsu):
....
If player1 is attacking player 2, this would look like
player1.attack(player2, choice)

return_health returns nothing (None) and that's what you print, because you called print(return_health(...)).
If you expect the function to print stuff on its own (it currently does), better call it print_health and not return_health, and just call it without also printing its (empty) return value.

Related

Debugging Maze game in Python

Ive been learning python recently and am currently working on a small terminal game that has a character move through a maze. Im having a bug where my character is getting stuck and not allowed to move into the open spaces. Ive checked that all my movements the correct directions, and im not sure why the character is stuck.
App
played = player.Player(3, 2)
while True:
board.printBoard(played.rowPosition, played.columnPosition)
selection = input("Make a move: ")
if selection == "w":
if board.checkMove(played.rowPosition - 1, played.columnPosition):
played.moveUp()
elif selection == "s":
if board.checkMove(played.rowPosition + 1, played.columnPosition):
played.moveDown()
elif selection == "a":
if board.checkMove(played.rowPosition, played.columnPosition - 1):
played.moveLeft()
elif selection == "d":
if board.checkMove(played.rowPosition, played.columnPosition - 1):
played.moveRight()
else:
print("Invalid key")
if board.checkWin(played.rowPosition, played.columnPosition):
print("You Win!")
break;
Player:
class Player:
def __init__(self, intitalRow, initialColumn):
self.rowPosition = intitalRow
self.columnPosition = initialColumn
def moveUp(self):
self.rowPosition = self.rowPosition - 1
def moveDown(self):
self.rowPosition = self.rowPosition + 1
def moveRight(self):
self.columnPosition = self.columnPosition + 1
def moveLeft(self):
self.columnPosition = self.columnPosition - 1
Gameboard
class GameBoard:
def __init__(self):
self.winningRow = 0
self.winningColumn = 2
self.board = [
[" * ", " * ", " ", " * ", " * ", " * "],
[
" * ",
" ",
" ",
" ",
" * ",
" * ",
],
[
" * ",
" ",
" * ",
" * ",
" ",
" * ",
],
[
" * ",
" ",
" ",
" ",
" ",
" * ",
],
[" * ", " * ", " * ", " * ", " * ", " * "],
]
def printBoard(self, playerRow, playerColumn):
for i in range(len(self.board)):
for j in range(len(self.board[i])):
if i == playerRow and j == playerColumn:
print("P", end="")
else:
print(self.board[i][j], end="")
print("")
def checkMove(self, testRow, testColumn):
if self.board[testRow][testColumn].find("*") != -1:
print("Can't move there!")
return False
return True
def checkWin(self, playerRow, playerColumn):
if playerRow == 0 and playerColumn == 2:
return True
else:
return False
When the selection is "d" the same cell is being checked as when the selection is "a". I think you meant for one of these to use played.columnPosition + 1.

I don't know how to make a while loop last until a list doesn't have any values left

I am trying to recreate the card game "War" in python and cant figure out how to loop the code under the comment until every value in the list is gone. So basically the code generates a shuffled deck of cards and pops the cards from the list. I want to have the code repeat until all the cards have been popped from the deck and I have no idea how to do that.
import random
def shuffled_deck():
deck = list(range(2, 15)) *4
random.shuffle(deck)
return deck
userdeck = shuffled_deck()
print("welcome to War!")
user1 = input("Player-1 name: ")
user2 = input("Player-2 name: ")
u1points = 0
u2points = 0
drawturns = 0
# - I want to loop the segment of code under this comment
usercard = userdeck.pop()
u1card = usercard
print(user1 + ": " + str(u1card))
usercard = userdeck.pop()
u2card = usercard
print(user2 + ": " + str(u2card))
if u1card > u2card:
print(str(u1card) + " is greater than " + str(u2card) + ".")
print(user1 + " won this round.")
u1points +=1
elif u2card > u1card:
print(str(u2card) + " is greater than " + str(u1card) + ".")
print(user2 + " won this round.")
u2points +=1
else:
print("It's a draw, try again.")
while u1card == u2card:
drawturns +=1
usercard = userdeck.pop()
u1card = usercard
print(user1 + ": " + str(u1card))
usercard = userdeck.pop()
u2card = usercard
print(user2 + ": " + str(u2card))
if u1card > u2card:
print(str(u1card) + " is greater than " + str(u2card) + ".")
print(user1 + " won this round.")
u1points +=1
u1points + drawturns
elif u2card > u1card:
print(str(u2card) + " is greater than " + str(u1card) + ".")
print(user2 + " won this round.")
u2points +=1
u1points + drawturns
else:
print("It's a draw, try again.")
if u1card == u2card == False:
drawturns = 0
break
You can do:
while len(userdeck)>0:
or, you can write smartly as:
while userdeck:
This is because an empty list is considered as False, whereas a non empty list is considered as True. So, when userdeck is empty, while loop will assume it to be False case, so the loop will stop. This same concept can also be applied for if statements.

Identify python errors

Can someone assist with identifying the errors in this loop?
I am completely new to Python.
for p in players:
x = len(p)
dice = random.randint(0, x*2)
print p + " rolls a " + dice + " out of " + str(x*2)
if dice > x:
print p + " wins!"
elif dice == x:
print p + "gets a tie."
else:
print p + " loses."}
Thanks!!
Works in Python 3.x
import random
players = ["Player 1", "Player 2"]
for p in players:
x = len(p)
dice = random.randint(0, x*2)
print(str(p) + " rolls a " + str(dice) + " out of " + str(x*2))
if dice > x:
print(p + " wins!")
elif dice == x:
print(p + "gets a tie.")
else:
print(p + " loses.")
For Python 2.x
import random
players = ["Player 1", "Player 2"]
for p in players:
x = len(p)
dice = random.randint(0, x*2)
print(str(p) + " rolls a " + str(dice) + " out of " + str(x*2))
if dice > x:
print p + " wins!"
elif dice == x:
print p + "gets a tie."
else:
print p + " loses."
or add from __future__ import print_function to first example to ensure compability between Python 3 and 2.

Expected an indented block in Python game

I'm writing a program to play Connect Four with Python and I'm not sure how to resolve the "expected an indented block" error that is being thrown at me in certain areas. Any time I try running a [row][col] section, it throws the error up. I'm using some example code to help me develop my own and here's what I'm using:
import random
def winner(board):
"""This function accepts the Connect 4 board as a parameter.
If there is no winner, the function will return the empty string "".
If the user has won, it will return 'X', and if the computer has
won it will return 'O'."""
# Check rows for winner
for row in range(6):
for col in range(3):
if (board[row][col] == board[row][col + 1] == board[row][col + 2] ==\
board[row][col + 3]) and (board[row][col] != " "):
return board[row][col]
# Check columns for winner
for col in range(6):
for row in range(3):
if (board[row][col] == board[row + 1][col] == board[row + 2][col] ==\
board[row + 3][col]) and (board[row][col] != " "):
return board[row][col]
# Check diagonal (top-left to bottom-right) for winner
for row in range(3):
for col in range(4):
if (board[row][col] == board[row + 1][col + 1] == board[row + 2][col + 2] ==\
board[row + 3][col + 3]) and (board[row][col] != " "):
return board[row][col]
# Check diagonal (bottom-left to top-right) for winner
for row in range(5, 2, -1):
for col in range(3):
if (board[row][col] == board[row - 1][col + 1] == board[row - 2][col + 2] ==\
board[row - 3][col + 3]) and (board[row][col] != " "):
return board[row][col]
# No winner: return the empty string
return ""
def display_board(board):
print " 1 2 3 4 5 6 7"
print "1: " + board[0][0] + " | " + board[0][1] + " | " + board[0][2] + " | " + board[0][3] + " | " + board[0][4] + " | " + board[0][5] + " | " + board[0][6] + " | " + board[0][7]
print " ---+---+---+---+---+---+---"
print "2: " + board[1][0] + " | " + board[1][1] + " | " + board[1][2] + " | " + board[1][3] + " | " + board[1][4] + " | " + board[1][5] + " | " + board [1][6] + " | " + board [1][7]
print " ---+---+---+---+---+---+---+"
print "3: " + board[2][0] + " | " + board[2][1] + " | " + board[2][2] + " | " + board[2][3] + " | " + board [2][4] + " | " + board [2][5] + " | " + board [2][6] + " | " + board [2][7]
print " ---+---+---+---+---+---+---+"
print "4: " + board[3][0] + " | " + board[3][1] + " | " + board[3][2] + " | " + board[3][3] + " | " + board [3][4] + " | " + board [3][5] + " | " + board [3][6] + " | " + board [3][7]
print " ---+---+---+---+---+---+---+"
print "5: " + board[4][0] + " | " + board[4][1] + " | " + board[4][2] + " | " + board[4][3] + " | " + board [4][4] + " | " + board [4][5] + " | " + board [4][6] + " | " + board [4][7]
print " ---+---+---+---+---+---+---+"
print "6: " + board[5][0] + " | " + board[5][1] + " | " + board[5][2] + " | " + board[5][3] + " | " + board [5][4] + " | " + board [5][5] + " | " + board [5][6] + " | " + board [5][7]
print
def make_user_move(board):
try:
valid_move = False
while not valid_move:
col = input("What col would you like to move to (1-7):")
for row in range (6,0,-1):
if (1 <= row <= 6) and (1 <= col <= 7) and (board[row-1][col-1] == " "):
board[row-1][col-1] = 'X'
valid_move = True
break
else:
print "Sorry, invalid square. Please try again!\n"
except NameError:
print "Only numbers are allowed."
except IndexError:
print "You can only select columns from (1-7), and rows from (1-6)."
def make_computer_move(board):
# Code needed here...
valid_move = False
while not valid_move:
row = random.randint(0,5)
col = random.randint(0, 6)
for row in range (5,0,-1):
if board[row][col] == " ":
board[row][col] = "O"
valid_move = True
break
def main():
free_cells = 42
users_turn = True
count = 1
ttt_board = [ [ " ", " ", " ", " ", " ", " "," ", " "], [ " ", " ", " ", " ", " "," ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "] ]
print "\nHALL OF FAME \n"
try:
hall_of_fame = open("HallOfFame.txt", 'r')
for name in hall_of_fame:
print str(count) + ".", name
print
count += 1
hall_of_fame.close()
except IOError:
print "No Human Has Ever Beat Me.. mwah-ha-ha-ha!\n"
choice = raw_input("Would you like to go first? (y or n): ")
if (choice == 'y' or choice=='Y'):
users_turn = True
elif (choice == 'n' or choice =='N') :
users_turn = False
else:
print 'invalid input'
while not winner(ttt_board) and (free_cells > 0):
display_board(ttt_board)
if users_turn:
make_user_move(ttt_board)
users_turn = not users_turn
else:
make_computer_move(ttt_board)
users_turn = not users_turn
free_cells -= 1
display_board(ttt_board)
if (winner(ttt_board) == 'X'):
print "You Won!"
print "Your name will now be added to the Hall of Fame!"
hall_of_fame = open("HallOfFame.txt", 'a')
name = raw_input("Enter your name: ")
hall_of_fame.write(name+ '\n')
print "Your name has been added to the Hall of Fame!"
hall_of_fame.close()
print "\nGAME OVER"
elif (winner(ttt_board) == 'O'):
print "The Computer Won!"
print "\nGAME OVER"
else:
print "Stalemate!"
print "\nGAME OVER \n"
#start the game
main()
It looks like you are not indenting your for loops:
for row in range(6):
for col in range(3):
if (board[row][col] == board[row][col + 1] == board[row][col + 2] ==\
board[row][col + 3]) and (board[row][col] != " "):
return board[row][col]
The : denotes the need for an indent on the next line.
There are a LOT of places where the indentation is just plain missing for inexplicable reasons. As #davidism mentions, indentation in python is used to indicate nesting levels; so this code is completely unusable in its current state.
Here's my attempt to GUESS what your code was MEANT to do, so you can get an idea of all the places where whitespace matters, but it is just missing in your code.
import random
def winner(board):
for row in range(6):
for col in range(3):
if (board[row][col] == board[row][col + 1] == board[row][col + 2] == \
board[row][col + 3]) and (board[row][col] != " "):
return board[row][col] # Check columns for winner
for col in range(6):
for row in range(3):
if (board[row][col] == board[row + 1][col] == board[row + 2][col] == \
board[row + 3][col]) and (board[row][col] != " "):
return board[row][col]
# Check diagonal (top-left to bottom-right) for winner
for row in range(3):
for col in range(4):
if (board[row][col] == board[row + 1][col + 1] == board[row + 2][col + 2] == \
board[row + 3][col + 3]) and (board[row][col] != " "):
return board[row][col]
# Check diagonal (bottom-left to top-right) for winner
for row in range(5, 2, -1):
for col in range(3):
if (board[row][col] == board[row - 1][col + 1] == board[row - 2][col + 2] == \
board[row - 3][col + 3]) and (board[row][col] != " "):
return board[row][col]
# No winner: return the empty string
return ""
def display_board(board):
print " 1 2 3 4 5 6 7"
print "1: " + board[0][0] + " | " + board[0][1] + " | " + board[0][2] + " | " + board[0][3] + " | " + board[0][
4] + " | " + board[0][5] + " | " + board[0][6] + " | " + board[0][7]
print " ---+---+---+---+---+---+---"
print "2: " + board[1][0] + " | " + board[1][1] + " | " + board[1][2] + " | " + board[1][3] + " | " + board[1][
4] + " | " + board[1][5] + " | " + board[1][6] + " | " + board[1][7]
print " ---+---+---+---+---+---+---+"
print "3: " + board[2][0] + " | " + board[2][1] + " | " + board[2][2] + " | " + board[2][3] + " | " + board[2][
4] + " | " + board[2][5] + " | " + board[2][6] + " | " + board[2][7]
print " ---+---+---+---+---+---+---+"
print "4: " + board[3][0] + " | " + board[3][1] + " | " + board[3][2] + " | " + board[3][3] + " | " + board[3][
4] + " | " + board[3][5] + " | " + board[3][6] + " | " + board[3][7]
print " ---+---+---+---+---+---+---+"
print "5: " + board[4][0] + " | " + board[4][1] + " | " + board[4][2] + " | " + board[4][3] + " | " + board[4][
4] + " | " + board[4][5] + " | " + board[4][6] + " | " + board[4][7]
print " ---+---+---+---+---+---+---+"
print "6: " + board[5][0] + " | " + board[5][1] + " | " + board[5][2] + " | " + board[5][3] + " | " + board[5][
4] + " | " + board[5][5] + " | " + board[5][6] + " | " + board[5][7]
print
def make_user_move(board):
try:
valid_move = False
while not valid_move:
col = input("What col would you like to move to (1-7):")
for row in range(6, 0, -1):
if (1 <= row <= 6) and (1 <= col <= 7) and (board[row - 1][col - 1] == " "):
board[row - 1][col - 1] = 'X'
valid_move = True
break
else:
print "Sorry, invalid square. Please try again!\n"
except NameError:
print "Only numbers are allowed."
except IndexError:
print "You can only select columns from (1-7), and rows from (1-6)."
def make_computer_move(board):
# Code needed here...
valid_move = False
while not valid_move:
row = random.randint(0, 5)
col = random.randint(0, 6)
for row in range(5, 0, -1):
if board[row][col] == " ":
board[row][col] = "O"
valid_move = True
break
def main():
free_cells = 42
users_turn = True
count = 1
ttt_board = [[" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "]]
print "\nHALL OF FAME \n"
try:
hall_of_fame = open("HallOfFame.txt", 'r')
for name in hall_of_fame:
print str(count) + ".", name
print
count += 1
hall_of_fame.close()
except IOError:
print "No Human Has Ever Beat Me.. mwah-ha-ha-ha!\n"
choice = raw_input("Would you like to go first? (y or n): ")
if (choice == 'y' or choice == 'Y'):
users_turn = True
elif (choice == 'n' or choice == 'N'):
users_turn = False
else:
print 'invalid input'
while not winner(ttt_board) and (free_cells > 0):
display_board(ttt_board)
if users_turn:
make_user_move(ttt_board)
users_turn = not users_turn
else:
make_computer_move(ttt_board)
users_turn = not users_turn
free_cells -= 1
display_board(ttt_board)
if (winner(ttt_board) == 'X'):
print "You Won!"
print "Your name will now be added to the Hall of Fame!"
hall_of_fame = open("HallOfFame.txt", 'a')
name = raw_input("Enter your name: ")
hall_of_fame.write(name + '\n')
print "Your name has been added to the Hall of Fame!"
hall_of_fame.close()
print "\nGAME OVER"
elif (winner(ttt_board) == 'O'):
print "The Computer Won!"
print "\nGAME OVER"
else:
print "Stalemate!"
print "\nGAME OVER \n"
# start the game
main()

Python 3.3 programs not working?

I've made a few programs in Python now, but I'm still pretty new. I've updated to 3.3, and most of my programs are broken. I've replaced all of the raw_inputs now with input, but this still isn't working, and I get no errors.
Could one of you fine programmers help?
a = 1
while a < 10:
StartQ = input("Would you like to Start the program, or Exit it?\n")
if StartQ == "Exit":
break
elif StartQ == "Start":
AMSoD = input("Would you like to Add, Multiply, Subtract or Divide?\nPlease enter A, M, S or D.\n")
if AMSoD == "A":
Add1 = input("Add this: ")
Add2 = input("By this: ")
AddAnswer = int(Add1) + int(Add2)
AAnswer = Add1 + " " + "+" + " " + Add2 + " " + "=",AddAnswer
print(AAnswer)
print("The answer is:"),AddAnswer
elif AMSoD == "M":
Mul1 = input("Multiply this: ")
Mul2 = input("By this: ")
MulAnswer = int(Mul1) * int(Mul2)
MAnswer = Mul1 + " " + "*" + " " + Mul2 + " " + "=",MulAnswer
print(MAnswer)
print("The answer is:"), (MulAnswer)
elif AMSoD == "S":
Sub1 = input("Subtract this: ")
Sub2 = input("From this: ")
SubAnswer = int(Sub2) - int(Sub1)
SAnswer = Sub2 + " " + "-" + " " + Sub1 + " " + "=",SubAnswer
print(SAnswer)
print("The answer is:"), (SubAnswer)
elif AMSoD == "D":
Div1 = input("Divide this: ")
Div2 = input("By this: ")
DivAnswer = int(Div1) / int(Div2)
DAnswer = Div1 + " " + "/" + " " + Div2 + " " + "=",DivAnswer
print(DAnswer)
print("The answer is:"), (DivAnswer)
DivQoR = input("Would you like to Quit or restart?\nAnswer Quit or Restart.\n")
if DivQoR == "Restart":
a = 1
elif DivQoR == "Quit":
DivQoRAyS = input("Are you sure you want to quit? Answer Yes or No.\n")
if DivQoRAyS == "Yes":
break
elif DivQoRAyS == "No":
a = 1
Put all items you want to print in the parenthesis of the print() function call:
print("The answer is:", AddAnswer)
and
print("The answer is:", MulAnswer)
etc.
Where you build your strings, it'd be easier to do so in the print() function. Instead of
AAnswer = Add1 + " " + "+" + " " + Add2 + " " + "=",AddAnswer
print(AAnswer)
(where you forgot to replace the last comma with +), do this:
print(Add1, '+', Add2, '=', AddAnswer)
and so on for the other options.

Categories

Resources