A row appears each time a value changes, on the line that changed it.
This changes the words in AccessibleIDE. Your code stays the same.
Pick a font here, then tick where you want it used. Your choice is saved as you make it.
Use this font for
An area you leave unticked keeps the font the app gives it.
Choose a .ttf, .otf, .woff or .woff2 file from your computer.
These change how the code looks. Nothing here needs a restart.
How heavy the letters look. 400 is normal; higher is bolder.
How much space between lines. More space can make text easier to follow.
Extra space between letters. Some readers find a little more easier to track.
Extra high pushes the text and the background further apart. Try it if words blend together.
A soft wash of colour behind the editor. Turn it off if it bothers you.
Build your own theme. Every colour is checked against the background as you pick it.
See how your font and colour look before you keep them. Everything here is saved straight away.
Change the words to anything you like. The preview below follows along.
Preview
The quick brown fox jumps over the lazy dog.
Showing OpenDyslexic in the theme colour.
The colour behind the line you are working on. Leave it empty to use the theme colour.
If a colour would be hard to read on your theme, the app nudges it until it is easy to read again.
Focus mode narrows what you see, so it is easier to follow one spot at a time.
Only used when Focus mode is set to fade other lines on hover.
Movement is extra. Turning it off never changes what the app does, only how quickly things arrive.
Turning this on stops the buttons, switches and panels moving. Nothing disappears, it just arrives straight away.
How solid the bars and panels around your code are. Your code itself always stays solid, so the contrast you read by does not change. Mica is quiet and nearly solid. Frosted is an even blur. Acrylic is the heaviest and most see-through, with a faint grain.
Blends with the colour your theme already uses, so it shifts the panels' colour without losing the theme's contrast. Leave it empty to follow the theme. Type a hex colour such as #223344.
These are a look, not a legibility aid. If the softened edges or the extra colour make anything harder to pick out, choose None (solid).
Running the code always uses Enter with another key held down. Stopping always uses Escape, either pressed twice or with another key held down. Enter on its own still starts a new line, and Escape on its own still closes a box, so neither of them is ever used alone.
When this is on, AccessibleIDE reads the output and any error message out loud after you run your code.
The voices here come from your computer and Windows. Not every computer has the same ones.
Your computer does not say which voices are male or female, so this is a best guess made from the voice names. Picking a voice yourself above overrides it, and the app uses whatever is installed on this computer.
Around 1 is a normal speaking pace. Below 1 is slower.
How much of the screen is worth reading out loud. This sits alongside your own screen reader rather than replacing it.
A short pause before each one. A longer wait means hovering only speaks when you rest on something, rather than every time the pointer passes over it.
Clicking a button, a heading or a label says what it is. Your code and the results window are left alone, so running your program still behaves normally.
New versions are published on GitHub. Nothing is downloaded or changed without your asking.
The app looks once a day when you open it. It only tells you a new version exists; you decide what happens next.
Beta gets every new version as soon as it is ready. Stable waits for a large, finished change. This app is on Beta now, so Stable may have nothing newer for a long time.
Ask for a new version straight away, whether or not the automatic check is on.
The new version is checked before it is used. You can install it straight away with the button that appears after the download, or it goes in place when you close the app.
Closes the app, puts the new version in place, and opens the app again.
Keeps a copy of your settings you can move to another computer.
Puts every setting back to the default. Your code is not touched.
What the Python in this app does. The same list is in the README.
These entries are written in English for now.
Python is a programming language you can type and run straight away.
python --version
python script.py
print()
Python reads spaces at the start of a line to know how things belong together.
if x == 5:
print(x)
# a comment
#
# This is a comment
# print("not run")
= saves a value under a name. Variable names cannot start with a number and cannot have spaces.
=
x = 5
name = "Ana"
x, y = 5, 6
x = y = 7
Python works out the type from the value you save.
type(5)
int
float
str
bool
list
tuple
set
dict
y = 3.14
x + y
x - y
x * y
x / y
x // y
x % y
x ** y
Turn one type of value into another.
int("5")
float("3.5")
str(5)
bool(0)
"hello".upper()
"HELLO".lower()
len("hello")
"hello"[0]
"hello" in "hello world"
"a,b".split(",")
"a".replace("a","b")
True
False
5 > 3
5 == 5
5 != 3
bool("hello")
+ - * /
== != < > <= >=
and or not
in not in
is is not
Lists hold values in order and can be changed.
fruits = ["apple", "pear"]
fruits[0]
len(fruits)
fruits.append("plum")
fruits.remove("pear")
fruits[0] = "banana"
fruits.pop()
Tuples hold values in order but cannot be changed.
colors = ("red", "blue")
colors[0]
len(colors)
"red" in colors
Sets hold values with no duplicates and no set order.
nums = {1, 2, 3}
nums.add(4)
nums.remove(1)
len(nums)
1 in nums
Dictionaries save values under keys.
me = {"name": "Ana", "age": 14}
me["name"]
me["age"] = 15
me["city"] = "Paris"
me.keys()
me.values()
len(me)
Run code only when a condition is True or False.
if x > 5:
elif x == 5:
else:
if x > 5 and x < 10:
if x > 5 or x < 2:
Compare a value against several patterns. Available in Python 3.10 and later.
match day:
case "Mon":
print("start")
case _:
Keep running code while a condition is True.
while x < 5:
x += 1
break
continue
Loop through a sequence of items.
for i in range(3):
for fruit in fruits:
for c in "abc":
Group code together and reuse it by name.
def greet():
print("hi")
greet()
def greet(name):
return name
greet("Ana")
range() gives a sequence of numbers to use in loops.
range()
range(5)
range(1, 5)
range(1, 10, 2)
list(range(5))
Python has lists. Some libraries also use arrays for numbers.
nums = [1, 2, 3]
nums.append(4)
nums[0] = 0
An iterator lets you go through items one by one.
it = iter(fruits)
next(it)
Modules let you reuse code from other files or built in tools.
import math
math.sqrt(16)
from math import sqrt
import random
random.randint(1, 10)
from datetime import datetime
datetime.now()
datetime.now().year
datetime.now().strftime("%Y-%m-%d")
math.pi
math.sqrt(25)
math.ceil(3.2)
math.floor(3.8)
abs(-5)
Work with JSON data in Python.
import json
data = {"name": "Ana"}
json.dumps(data)
json.loads("{\"name\": \"Ana\"}")
Search and match text patterns.
import re
re.search("a", "apple")
re.findall("a", "apple")
re.match("a", "apple")
re.sub("a", "b", "apple")
Handle errors so your program does not crash.
try:
x = int("abc")
except ValueError:
print("not a number")
finally:
"Hello {}".format("Ana")
f"Hello {name}"
"Hello %s" % "Ana"
"{0} {1}".format("Hello", "Ana")
Ask the user a question and get their answer.
name = input("What is your name? ")
age = int(input("How old are you? "))
print("Hi", name)
No entry matches that word.
Your code and settings stay on this computer. Quitting closes the editor window.
You have changes that are not saved yet. Save your work before you quit.
Downloading only saves the new version; nothing changes yet. Installing closes the app, puts the new version in place, and opens the app again, so save anything you have not saved.