title: Is there a way of putting the Python Shell output in a tkinter window?
body: <p>I was wondering if it is possible (and if so, how) to have the <code>Python Shell</code> output and input inside a <code>tkinter</code> window I have made. I searched on google but I can't seem to find anything. If possible, is there a short version that a beginner could understand. (All the websites I have tried I just could not understand.)</p>
  
  <p><strong>Here is my code that I have got:</strong></p>
  
  <pre><code>from tkinter import *
  
  
  
  def Exit():
      print()
  
  def newClassResults():
      #assigns variable to an input so it can be reffered to later
      amount = int(input("How many people would you like to add? "))
  
      #starts for loop
      for counter in range(amount):
  #assigns inputto a  variable called 'newName'
          newName = input("\nEnter the new student's name: ")
  #assigns input to a  variable called 'newScore'
          newScore = int(input("Enter the new student's score: "))
  #adds new results to the list below
          students_and_score.append((newName,newScore))
          score.append(newScore)
  
  def saveResults():
  #imports time module so that the program can pause for a certain amount of time
      import time
      print("\nSaving...")
      import random, decimal
      time1 = decimal.Decimal(random.randrange(1,10))/10
      time.sleep(time1)
      print("\nStudents' names saved")
      print("Students' scores saved")
  
  def sortResults():
  #imports operator module 
      import operator
  #imports time module 
      import time
      #sorts results in acsending order
      students_and_score.sort(key=operator.itemgetter(1))
  #prints in ascending order
      print("\nSorting Results...")
      import random, decimal
      time1 = decimal.Decimal(random.randrange(1,10))/10
      time.sleep(time1)
      print(students_and_score)
  
  def percentageCalc():
  #assigns input to variable called 'number'
      number = int(input("\nEnter minimum mark: "))
  #creates variable called 'size'
      size = len(score)
      index = 0
      for counter in range(size):
          if score[index] &gt; number:
              higher.append(score[index])
          index = index + 1
      higherLength = len(higher)
  #calculates percentage of people with score over amount entered
      finished = higherLength / size
      finished = finished * 100
  #rounds percentage
      finished = round(finished)
  #creates space between line
      print("\n")
      print(finished,"% of your students got over",number,"marks")
  
  def printResults():
  #starts for loop
      for pair in students_and_score:
  #creates space between line
          print("\n")
  #changes layout of list so it is more readable
          print(pair[0],pair[1])
  
  #assigns list to a variable
  students_and_score = [("Imelda Thomas",74),("Craig Parr",90),("Eric     Salisbury",58),("Laurence Mann",35),("Bill Walford",82),("David Haroald",27),("Pamela Langley",43),("Sarah Boat",39),("Rachel Matthews",62),("Michaela Cunningham",69)]
  score = [74,90,58,35,82,27,43,39,62,69]
  higher = []
  
  window = Tk()
  #sets background colour
  window.configure(background="white")
  #assigns title
  window.title("Menu")
  #sets the size of window
  window.geometry("300x300")
  window.wm_iconbitmap('favicon.ico')
  
  menu = Menu(window)
  
  
  subMenu = Menu(menu)
  menu.add_cascade(label="File", menu=subMenu)
  subMenu.add_command(label="Exit", command=Exit)
  
  subMenu = Menu(menu)
  menu.add_cascade(label="Edit", menu=subMenu)
  subMenu.add_command(label="Enter New Class Results",     command=newClassResults)
  subMenu.add_separator()
  subMenu.add_command(label="Save Results", command=saveResults)
  subMenu.add_command(label="Sort Results", command=sortResults)
  subMenu.add_command(label="Print Results", command=printResults)
  subMenu.add_separator()
  subMenu.add_command(label="Calculate Percentage", command=percentageCalc)
  
  #Finishes off
  window.config(menu=menu)
  window.mainloop()
  </code></pre>