Найти - Пользователи
Полная версия: Функции
Начало » Python для новичков » Функции
1 2
Dimaskus
Доброго времени суток :)
Совсем не давно я решил начать осваивать питон, ну и сел за мануалы.
И вот через некоторое время чтения и попутных опытов на компиляторе, решил задать себе задачу.
Суть ее заключалась в решении функции: (tan(a) + tan(b))/(tan(a)*tan(b)) при условии что мне известны: sin(a), sin(b), cos(a), cos(b).
Принялся я выполнять, и вот на чем запнулся:
>>>from Numeric import sin, cos, tan
>>>sin(a) = 45
>>>cos(a) = 30
>>>sin(b) = 30
>>>cos(b) = 45
>>>tan(a) = sin(a)/cos(a)
>>>tan(b) = sin(b)/cos(b)
>>>print (tan(a) + tan(b))/(tan(a)*tan(b))
(это все я накидал себе на бумаге) Но в компиляторе у мня уже на втором шаге был ступор, значение ни синусу, ни косинусу не присваивалось на прямую, так же я не могу присвоить tan(a) = sin(a)/cos(a)
На все это я получаю только один ответ: File “<stdin>”, line 1
SyntaxError: can't assign to function call
Ну раз не получается на прямую, значит буду делать все это через дополнительные переменные, подумал я и начал, и опять сел в лужу с теми же результатами….
Подскажите пожалуйста: как правильно выполнить эту задачу?
o7412369815963
>>>tan_a = sin(a)/cos(a)
>>>tan_b = sin(b)/cos(b)
>>>print (tan_a + tan_b)/(tan_a*tan_b)
нужн озадать а и б.
это для питона 2.х
Dimaskus
Спасибо, но вы меня не много не поняли…
вот стандартна формула: tg(a) = sin(a)/cos(a), у меня есть значение sin(a) = 45 и cos(a) = 30, данные взяты мной наобум…
Так как мне присвоить значение 45 градусов sin(a) и тех же 30 соответственно cos(a)?
tvaleev
Так вы инициализируйте вначале a и b….Значения навероне надо искать sin(45)….насколько я школьную программу помню)))
o7412369815963
Dimaskus
Так как мне присвоить значение 45 градусов sin(a) и тех же 30 соответственно cos(a)?
никак
vaxXxa
Dimaskus, Вы наверное немного недопоняли суть функций. Функция принимает значение (иногда) и выдает значения… Ну, как и в математике… Следующий код описывает новую ф-цию my_tan(), которая принимает аргумент(угол) и считает деление синуса этого угла на косинус этого же угла:
import math

def my_tan(a):
rezultat = math.sin(a)/math.cos(a)
return rezultat
Zayaz
Братцы я может быть чего-то недопонимаю, но я глянул таблицу Брадиса и не понял либо ни син ни кос таких значений принимать не могут, либо если автор имеет в виду 30 и 45 это угол в град, то и у син и у кос значение должно быть одно либо 30 либо 45 либо какое другое…
(конструктивная критика приветствуется, готов признать что не прав…)
Ferroman
Конечно не могут. Эти значения вообще не могут быть больше единицы. Могут быть косинус/синус для угла в 30 или 45 градусов.
Zayaz
Если я правильно понял задачу, то код примерно такой:

print ‘vvedite ugol’
a=float(raw_input())
#сюда надо ввести число от 0 до 90 невключительно

#здесь поидее должен стоять блок, проверяющий что ввел пользователь
#и если он ввел что-то не то, то либо дать ему шанс исправиться,
# (вернуть в начало),либо послать его нах (exit)

import math #загружаем математический модуль тригонометрических функций

angle=a*math.pi
angle=angle/180
#Этими 2-мя строчками переводим углы в радианы

x=(math.sin(angle))
y=(math.cos(angle))
z=(math.tan(angle))
print ‘sinus ugla=’,x
print ‘cosinus ugla=’,y
print ‘tangens ugla=’,z

#здесь было бы не плохо спросить у чувака не надо ли посчитать что-нибудь еще
#и если надо, то в начало, если нет, то на выход (с вещами) :)

Если бы кто дополнил блоком проверки и блоком последнего вопроса - я бы с интересом ознакомился…
Python 2.6.4 код рабочий, только коменты надо убрать
UsCr
Zayaz
Если бы кто дополнил блоком проверки и блоком последнего вопроса - я бы с интересом ознакомился…
Я придумал вот так:

# -*- coding: cp1251 -*-
import math

def inp():
while True:
inp = raw_input("Введите значение угла:")
if float(inp)<=0 or float(inp)>=90:
print "Значение угла лежит в интервале (0,90)"
else: break
return float(inp)

def ugol():
angle = (inp()*math.pi)/180
#Тут переводим углы в радианы

x=(math.sin(angle))
y=(math.cos(angle))
z=(math.tan(angle))
return x,y,z

def outpu():
a,b,c = ugol()
print " Синус вот-"+str(a)+" Вот косинус-"+str(b)+" А это тангенс-"+str(c)

print "Пора посчитать!"
outpu()
while True:
more = raw_input("Посчитаем ещё? (Y-да, [Enter]-выход)")
if more:
outpu()
else:
break
2.6 код рабочий. Комментарии можно не убирать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB