Ошибка Python Square Root Calculator
Я хотел сделать простой квадратный калькулятор.
num = input('Enter a number and hit enter: ')
if len(num) > 0 and num.isdigit():
new = (num**0.5)
print(new)
else:
print('You did not enter a valid number.')
Не похоже, что я сделал что-то не так, однако, когда я пытаюсь запустить программу и после ввода числа, я сталкиваюсь со следующим сообщением об ошибке:
Traceback (most recent call last):
File "/Users/username/Documents/Coding/squareroot.py", line 4, in <module>
new = (num**0.5)
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'float'
Process finished with exit code 1
3 ответа
Решение
Вы можете использовать это решение. Здесь попробовать и поймать способен обрабатывать все виды ввода. Так что ваша программа никогда не подведет. И так как входные данные преобразуются в плавающее. Вы не столкнетесь ни с какой типовой ошибкой.
try:
num = float(input('Enter a positive number and hit enter: '))
if num >= 0:
new = (num**0.5)
print(new)
except:
print('You did not enter a valid number.')
Используйте математический модуль для простых расчетов. см.: Математический модуль Документация.
import math
num = raw_input('Enter a number and hit enter: ')
if num.isdigit():
num = float(num)
new = math.sqrt(num)
print(new)
else:
print('You did not enter a valid number.')
Функция ввода возвращает вам строковое значение. так что нужно правильно разобрать
num = raw_input('Enter a number and hit enter: ')
if num.isdigit():
if int(num) > 0:
new = (int(num)**0.5)
print(new)
else:
print('You did not enter a valid number.')