def num_1 ():
while True:
num_1 = input('Введите первое целое положительное число: ')
if num_1.isdigit() : return num_1
else:
print('Вы ввели не число!')
print(num_1())
def num_2 ():
while True:
num_2 = input('Введите второе целое положительное число: ')
if num_2.isdigit() : return num_2
print(num_2())
effect = None
while effect not in ['+', '-', '*', '/', '**', '//','%']:
effect = input ('Какое действие тебе нужно? (+ = сложение, - = вычетание, * = умножение, / = деление, ** = возведение в степень/, // = Деление без остатка) ')
if effect == '+':
print(num_1 + num_2)
elif effect == '-':
print(num_1 - num_2)
elif effect == '*':
print(num_1 * num_2)
elif effect == '/':
print(num_1 / num_2)
elif effect == '**':
print(num_1 ** num_2)
elif effect == '//':
print(num_1 // num_2)
elif effect == '%':
print(num_1 % num_2)
else:
print('Такого варианта нету')
number_1 = num_1()
number_2 = num_2()
# дальше работаешь с number_1 и number_2
def f_num_1 ():
while True:
num_1 = input('Введите первое целое положительное число: ')
if num_1.isdigit() : return int(num_1)
else:
print('Вы ввели не число!')
num_1=f_num_1()
print(num_1)
def f_num_2 ():
while True:
num_2 = input('Введите второе целое положительное число: ')
if num_2.isdigit() : return int(num_2)
num_2=f_num_2()
print(num_2)
effect = None
while effect not in ['+', '-', '*', '/', '**', '//','%']:
effect = input ('Какое действие тебе нужно? (+ = сложение, - = вычетание, * = умножение, / = деление, ** = возведение в степень/, // = Деление без остатка) ')
if effect == '+':
print(num_1 + num_2)
elif effect == '-':
print(num_1 - num_2)
elif effect == '*':
print(num_1 * num_2)
elif effect == '/':
print(num_1 / num_2)
elif effect == '**':
print(num_1 ** num_2)
elif effect == '//':
print(num_1 // num_2)
elif effect == '%':
print(num_1 % num_2)
else:
print('Такого варианта нету')
num_1 = None
num_2 = None
effect = None
while True:
if num_1 is None:
input_value = input("Введите первое число: ")
if input_value.isdigit():
num_1 = int(input_value)
else:
print('Вы ввели не число!')
continue
if num_2 is None:
input_value = input("Введите второе число: ")
if input_value.isdigit():
num_2 = int(input_value)
else:
print('Вы ввели не число!')
continue
if effect is None:
input_value = input(
"Напишите что вы хотите сделать (отнять, прибавить, умножить, разделить, возвести в степень, целое деление, остаток от деления): ")
if input_value in ("+", "-", "*", "/", "**", "//", "%"):
effect = input_value
break
else:
print('Нету такого действия!')
continue
# Выполнение операции
if effect == "+":
print(num_1 + num_2)
elif effect == "-":
print(num_1 - num_2)
elif effect == "*":
print(num_1 * num_2)
elif effect == "/":
print(num_1 / num_2)
elif effect == "**":
print(num_1 ** num_2)
elif effect == "//":
print(num_1 // num_2)
elif effect == "%":
print(num_1 % num_2)
def get_num1():
while True:
num_1 = input('Введите первое целое положительное число: ')
if num_1.isdigit():
return int(num_1)
else:
print('Вы ввели не число!')
def get_num2():
while True:
num_2 = input('Введите второе целое положительное число: ')
if num_2.isdigit():
return int(num_2)
else:
print('Вы ввели не число!')
Там где return
подставляем int(...)
дабы возвращать число, а не строку(string). Также в python после двоеточий лучше переходите на след строку, даже если это всего лишь return
, так принято видете ли :)num1 = get_num1()
num2 = get_num2()
get_num1
или get_num2
(спасибо dim5x, что немного сократил длительность моей боли):def get_effect():
while True:
effect = input("Напишите что вы хотите сделать, отнять, прибавить, умножить,разделить, возвести в степень, целое деление, остаток от деления: ")
if effect in ("+", "-", "*", "/", "**", "//", "%"):
return effect
else:
print('Нету такого действия!')
effect = get_effect()
if effect == "+" :
print(num_1 + num_2)
# + - сложение
elif effect == "-":
print(num_1 - num_2)
# - — вычитание
elif effect == "*":
print(num_1 * num_2)
# * — умножение
elif effect == "/":
print(num_1 / num_2)
# / — деление
elif effect == "**":
print(num_1 ** num_2)
# ** — возведение в степень
elif effect == "//":
print(num_1 // num_2)
# // — целочисленное деление
elif effect == "%":
print(num_1 % num_2)
# % — остаток от деления
>>> def num_1():
... ...
...
>>> def num_2():
... ...
...
>>> num_1 + num_2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'function' and 'function'
>>> type(num_1)
<class 'function'>
>>> type(num_2)
<class 'function'>