Challenges

Reddit challenges in python language.

Files Code and Result

challenge1_easy

challenge2_easy

challenge3_easy

challenge4_easy

challenge5_easy

challenge6_easy

challenge7_easy

challenge8_easy

challenge9_easy

challenge10_easy

challenge11.easy

challenge12_easy

challenge13_easy

challenge14_easy

challenge15_easy

challenge16_easy

challenge17_easy

challenge18_easy

challenge19_easy

challenge20_easy

challenge21_easy

challenge22_easy

challenge23_easy

challenge25_easy

challenge26_easy

challenge27_easy

challenge28_easy

challenge29_easy

challenge30_easy

challenge31_easy

challenge32_easy

challenge33_easy

challenge34_easy

challenge35_easy

challenge36_easy

challenge37_easy

challenge38_easy

challenge39_easy

challenge40_easy

challenge41_easy

challenge42_easy

challenge44_easy

challenge45_easy

challenge46_easy

challenge47_easy

challenge48_easy

challenge49_easy

challenge50_easy

challenge51_easy

challenge52_easy

challenge53_easy

challenge54_easy

challenge55_easy

challenge56_easy

challenge57_easy

challenge58_easy

challenge59_easy

challenge60_easy

challenge61_easy

challenge62_easy

challenge63_easy

challenge64_easy

challenge65_easy

challenge66_Dev

challenge66_easy

challenge67_easy

challenge68_easy

challenge69_easy

challenge69_easyBonus

challenge70_easy

challenge71_easy.py

challenge72_easy

challenge73_easy

challenge74_easy

challenge76_easy

challenge77_easy

challenge79_easy

challenge80_easyone

challenge82_easy

challenge83_easy

challenge86_easy

challenge94_easy

challenge104_easy

challenge130_easy

challenge143_easy

challenge146_easy

challenge148_easy

challenge149_easy

challenge153_easy

challenge154_easy

challenge158_easy

challenge158_easybonus

challenge159_easy

challenge160_easy

challenge169_easy

challenge169_easybonus

challenge172_easy

challenge174_easy

challenge175_easy

challenge177_easy

challenge180_easy

challenge181_easy

challenge185_easy

challenge192_easy

challenge193_easy

challenge197_easy

challenge198_easy

challenge199_easy

challenge201_easy

challenge202_easy

challenge203_easy

challenge204_easy

challenge204_easyBonus

challenge205_easy

challenge205_easyBonu

challenge206_easy

challenge208_easy

challenge210_easy

challenge211_easy

challenge212_easy

challenge212_easybonus

challenge213_easy

challenge214_easy

challenge215_easy

challenge216_easy

challenge217_easy

challenge218_easy

challenge218_easyBonus1

challenge218_easyBunus2

challenge219_easy

challenge220_easy.py

challenge221_easy

challenge221_easy

challenge222_easy

challenge222_easy.py

challenge223_easy

challenge226_easy

challenge226_easy

challenge228_easy.py

challenge228_easydev

challenge229_easy

challenge229_easybonus.py

challenge232_easy

challenge232_easy

challenge232_easybonus

challenge232_easybonus

challenge234_easy

challenge234_easybonus

challenge235_easy

challenge236_easy

challenge237_easy

challenge238_easy

challenge238_easybonus

challenge239_easy

challenge240_easy

challenge242_easy

challenge242_easy

challenge242_easyBonus

challenge243_easy

challenge245_easy

challenge245_easyBonus

challenge246_easy

challenge247_easy

challenge249_easy

challenge252_easy

challenge254_easy

challenge255_easy

challenge270_easy

challenge284_easy

challenge286_easy

challenge287_easy

challenge288_easy

challenge290_easy

challenge290_easybonus

challenge291_easy

challenge291_easybonus

challenge73_easy

''' During the 70s and 80s, some handheld calculators used a very different notation
for arithmetic called Reverse Polish notation (RPN). Instead of putting operators
(+, *, -, etc.) between their operands (as in 3 + 4), they were placed behind them:
to calculate 3 + 4, you first inputted the operands (3 4) and then added them together by pressing +.

Internally, this was implemented using a stack: whenever you enter a number, it's pushed onto the stack,
and whenever you enter an operator, the top two elements are popped off for the calculation.
Here's an example of a RPN calculator calculating 3 4 * 6 2 - +:

[3] --> 3
[4] --> 3 4
[*] --> 12      ( 3 * 4 = 12)
[6] --> 12 6
[2] --> 12 6 2
[-] --> 12 4    ( 6 - 2 =  4)
[+] --> 16      (12 + 4 = 16)

Your task is to implement a program that reads a string in Reverse Polish notation and prints the
result of the calculation. Your program should support positive and negative integers and the
operators +, -, *. (For extra credit, you can implement extra functions, such as decimal numbers,
division, exponentiation, etc.)
'''


def minus(lst):
    total = lst[-2]
    total -= lst[-1]
    return total


def plus(lst):
    global stack
    total = lst[-2]
    total += lst[-1]
    return total


def div(lst):
    total = lst[-2]
    total /= lst[-1]
    return total


def multi(lst):
    total = lst[-2]
    total *= lst[-1]
    return total


def power_of(lst):
    total = lst[0]
    for x in range(1, len(lst)):
        total **= lst[x]
    return total


if __name__ == '__main__':

    quay_press = ''
    stack = []
    temp = []

    operators = ['-', '*', '/', '+', '**']


    while quay_press != 'q':
        quay_press = input('Input expression - "q" to quit...')

        if quay_press in operators:
            temp = []
            for x in range(0, 2):
                b = stack.pop()
                temp.insert(0, b)
            if quay_press == '-':
                ans = minus(temp)
                stack.append(ans)
                print(stack)
            elif quay_press == '+':
                ans = plus(temp)
                stack.append(ans)
                print(stack)
            elif quay_press == '*':
                ans = multi(temp)
                stack.append(ans)
                print(stack)
            elif quay_press == '**':
                ans = power_of(temp)
                stack.append(ans)
                print(stack)
            else:
                quay_press == '/'
                ans = div(temp)
                stack.append(ans)
                print(stack)
        elif quay_press== 'q':
            print(ans)
            exit()
        elif quay_press == str(int(quay_press)):
            stack.append(int(quay_press))
            print(stack)
        else:
            print('Wrong input!')

Result

Traceback (most recent call last):
  File "/tmp/tmpyqkd5tno", line 67, in <module>
    quay_press = input('Input expression - "q" to quit...')
EOFError: EOF when reading a line