• Arkouda@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    3 days ago
    mainNumber = 10000
    count = 0
    
    def addNumber():
        global mainNumber
        if mainNumber >= 0:
            mainNumber += 10
        if mainNumber >= 9:
            mainNumber += 7
        else:
            mainNumber += 13
    
    def subNumber():
        global mainNumber
        if mainNumber >= 10:
            mainNumber -= 6
        elif mainNumber >= 100:
            mainNumber -= 56
        elif mainNumber >= 1000:
            mainNumber -= 560
        else:
            mainNumber -= 2
    
    def multNumber():
        global mainNumber
        if mainNumber <= 100:
            mainNumber = mainNumber * 2
        else:
            mainNumber = mainNumber * 3
    
    def divNumber():
        global mainNumber
        if mainNumber > 1000:
            mainNumber = mainNumber / 5
        if mainNumber < 1000:
            mainNumber = mainNumber / 3
        if mainNumber < 0:
            mainNumber = mainNumber * -1
    
    while mainNumber != 1:
        count += 1
        addNumber()
        subNumber()
        multNumber()
        divNumber()
        print(mainNumber)
        if count == 1000:
            break
    
    

    This is not the most interesting script in the world, I made it to practice while loops that I absolutely sucked at and see what funky things happen.

    This script does nothing if you put in mainNumber = 1 for obvious reasons, but if you put in 2-21 it will evaluate to 21.99999999999999, 22 evaluates to 22 1000 times, and mainNumber = 23 or higher evaluates to 22.00000000000001.

    I have not found a whole number that doesn’t follow this pattern yet (Truthfully haven’t dug as far as I would like) but it is interesting how this little practice script did something like this when I was just messing around.