Возникли проблемы со строкой, чтобы плавать в Python - PullRequest
1 голос
/ 01 апреля 2012

Моя цель - создать программу, которая будет конвертировать градусы в радианы.Формула (градусов * 3,14) / 180. Но Python продолжает выдавать мне эту ошибку:

Traceback (most recent call last):
  File "2.py", line 6, in <module>
    main()
  File "2.py", line 4, in main
    degrees = (degrees * 3.14) / 180
TypeError: can't multiply sequence by non-int of type 'float'

Из этого кода:

def main():
    degrees = raw_input("Enter your degrees: ")
    float(degrees)
    degrees = (degrees * 3.14) / 180

main()

РЕДАКТИРОВАТЬ: Спасибо всем за помощь!

Ответы [ 2 ]

8 голосов
/ 01 апреля 2012
float(degrees) 

ничего не делает. Или, скорее, он делает float из входных значений строки, но нигде не помещает его, поэтому градусы остаются строкой. Вот что говорит TypeError: вы просите умножить строку на число 3.14.

degrees = float(degrees)

сделает это.

Кстати, в математическом модуле уже есть функции для преобразования между градусами и радианами:

>>> from math import degrees, radians, pi
>>> radians(45)
0.7853981633974483
>>> degrees(radians(45))
45.0
>>> degrees(pi/2)
90.0
2 голосов
/ 01 апреля 2012

float() не изменяет свой аргумент, он возвращает его как float.Я подозреваю, что вы хотите (также добавив стандартное __name__ соглашение по привычке):

def main():
    degrees = raw_input("Enter your degrees: ")
    degrees = float(degrees)
    degrees = (degrees * 3.14) / 180

if __name__ == '__main__':
    main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...