Ошибка 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.')
Другие вопросы по тегам