Code: Alles auswählen
from __future__ import print_function
from functools import partial
from itertools import islice
from operator import add, mul, pow as pow_, sub, truediv
from string import ascii_lowercase
try:
input = raw_input
except NameError:
pass # We are on Python 3.
def do_n_ary_function(arity, function, text):
if arity > len(ascii_lowercase):
raise ValueError(
'max {} arguments allowed for function'.format(len(ascii_lowercase))
)
arguments = [
int(input(' {} = '.format(var_name)))
for var_name in islice(ascii_lowercase, arity)
]
result = function(*arguments)
print(text.format(*arguments, result=result))
multiplicate = partial(
do_n_ary_function, 2, mul, 'Das Produkt von {} x {} ist gleich: {result}'
)
sum_ = partial(
do_n_ary_function, 2, add, 'Die Summe von {} und {} ist gleich: {result}'
)
subtract = partial(
do_n_ary_function, 2, sub, 'Die Differenz von {} zu {} ist: {result}'
)
divide = partial(
do_n_ary_function, 2, truediv, 'Der Quotient aus {} / {} ist = {result}'
)
square = partial(
do_n_ary_function,
1,
lambda x: x**2,
'Das Quadrat von {} ist gleich: {result}'
)
power = partial(
do_n_ary_function, 2, pow_, 'Die Potenz von {} und {} ist gleich: {result}'
)
def main():
while True:
for operation in [sum_, subtract, multiplicate, divide, square, power]:
operation()
print()
if __name__ == '__main__':
main()