Making a Slowtype function in python
h
Kronifer (10)

Slowtyping in Python

I'm sure you've seen projects that print out strings slowly instead of all at once. Today i'll show you how. Here is the code:

def slowtype(str):
    newstr = ""
    strcount = 0
    clearcheck = 0
    for element in str:
        strcount = strcount + 1
    for element in str:
      newstr = newstr + element
      print(newstr)
      time.sleep(0.05)
      clearcheck = clearcheck + 1
      if(strcount == clearcheck):
          break
      else:
        os.system('clear')

Lets brake it down:

first, the function accepts a string. Then, it makes 2 integers. strcount, which measures the length of the string, and clearcheck, which helps later. To figure out how long the string is, it iterates over each character in a string. Then, it moves to the second loop where the loop adds each character to a string, prints the string, increases clearcheck by 1, sleeps for 0.05 seconds, then checks if strcount is equal to clearcheck. If it is, it doesn't clear the screen. If it isn't, it clears and repeats. This used as a function will give a nice slowtype function to python code!

Here's an example:

You are viewing a single comment. View All
fuzzyastrocat (1472)

@Bookie0 My version, with easier usage and scoping:

def sp(string, delay=False):
  if not delay:
    delay = sp.DELAY
  
  import time
  for letter in string:
    print(letter, end='', flush=True)
    time.sleep(delay)
  print()
sp.DELAY = 0.04

Usage:

sp("Hello, world") # at 0.04s delay

sp.DELAY = 0.3

sp("Hello, world") # at 0.3s delay

sp("Hello, world", 0.1) # at 0.1s delay
sp("Hello, world") # back to 0.3s delay

EDIT: Just noticing this is similar to what @RahulChoubey1 said. Keeping this around just for the scoping mechanism though.