Не выполняется код. Проценты в Питоне
Пытаюсь в калькулятор добавить проценты, но так как я новичок не могу решить в чем проблема.
#Calculator test
vub = input("Что делать будем: Сравнивать(1), Считать(2) или Проценты(3): ") #Выбор что будут делать
def max(x, y):
if x > y:
return "Больше число: " + str(x)
else:
return"Больше число: " + str(y)
def count():
a = float( input("Введите первое число: ") ) #Число а в функции посчитать
b = float( input("Введите второе число: ") ) #Число b в функции посчитать
wh = input("Выберите действие (+, -, /, *): ")
if wh == "+":
c = a + b
return"Результат: " + str(c)
elif wh == "-":
c = a - b
return"Результат: " + str(c)
elif wh == "/":
c = a / b
return"Результат: " + str(c)
elif wh == "*":
c = a * b
return"Результат: " + str(c)
else:
print("Выбранна неверная операция! ")
def pro1():
n = float( input("Введите число от которого нужно вычислить процент: ") ) #Число а в функции pro
p = float( input("Введите процент который нужно найти: ") ) #Число b в функции pro
rez = n * p / 100
return "Результат:" + str(rez)
def pro2():
n = float( input("Введите число от которого нужно прибавить процент: ") )
p = float( input("Введите процент: ") )
rez = n * (1 + p / 100)
return "Результат:" + str(rez)
def pro3():
n = float( input("Введите число от которого нужно отнять процент: ") )
p = float( input("Введите процент: ") )
rez = n * (1 - p / 100)
return "Результат:" + str(rez)
def pro4():
input("Выберите действие(+,-):")
if wp == "+":
print(pro2())
elif wp == "-":
print(pro3())
def pro5():
whp = float( input ("Что нужно делать: Проценты от числа(1), или Уменьшить/увеличить число на процент(2)"))
if whp == "1":
print(pro1())
elif whp == "2":
print(pro4())
if vub == "1":
x = float( input("Введите первое число: ") )
y = float( input("Введите второе число: ") )
print(max(x, y))
print("Действие завершено!")
elif vub == "2":
print(count())
print("Действие завершено!")
elif vub == "3":
print(pro5())
print("Действие завершено!")
else:
print("Вы выбрали неверное действие! Повторите попытку!")
input()
Прошу прощения за кривой код, я правда только начал и не смог найти проблему в гугле
Что делать будем: Сравнивать(1), Считать(2) или Проценты(3): 3
Что нужно делать: Проценты от числа(1), или Уменьшить/увеличить число на процент(2)2
None
Действие завершено!
Это выводит в командную строку
Ответы (1 шт):
Автор решения: nomnoms12
Кстати, есть ещё ошибки. Так в функции
→ Ссылка
В функции pro5 Вы конвертируете полученную от пользователя строку в число с плавающей точкой с помощью float().
А затем число сравниваете со строками.
Ни одно сравнение не истинно, поэтому функция возвращает None.
def pro5():
whp = float( input ("Что нужно делать: Проценты от числа(1), или Уменьшить/увеличить число на процент(2)"))
# ^^^^^^ ^
Либо не конвертируйте ввод в число, либо сравнивайте с числами.
Пример:
def pro5():
whp = input("Что нужно делать: Проценты от числа(1), или Уменьшить/увеличить число на процент(2)")
Кстати, есть ещё ошибки. Так в функции
pro4 не присваивается результат ввода пользователя:
def pro4():
input("Выберите действие(+,-):")
# ^^^^^
А ещё Вы увидите 2 дополнительных None из-за того, что печатаете результаты функций pro5 и pro1/pro4, которые ничего не возвращают (а точнее возвращают этот самый None).