헤이 그래서 난 내 코드는 다음 내 문제에 이동과 내가 시작됩니다 같아요 입력 한 ^을 **로 바꾸는 방법은 무엇입니까?
def trapezoidal(a, b, deltax, func = None):
func = lambda x: (raw_input("Enter a function to have a trapezoidal approximation taken
of. Enter it in the form a*x^m + b*x^n + c*x, a*x^m +c, etc. (ex. 3*x^3 + 4*x^2...) ")
h = float(b - a)/deltax
s = 0.0
s += func(a)/2.0
for i in range(1, deltax):
s += func(a + i*h)
s += func(b)/2.0
return s * h
기본적으로 나는이 사용자에게 친숙 수 있도록 노력하고 있습니다. 내가해야 할 일은 raw_input의 ^를 **로 대체하여 람다가 그것을 평가할 수 있도록하는 것입니다. 궁극적으로 a, b 및 delta x에 대한 값을 입력하고 Enter 키를 누르고 일반 표기법에 가까운 값을 사용하여 함수를 입력하려고합니다 (** 대신 ** 사용). 나는 이것이 어리석은 무의미한 것처럼 보일지 모른다. 그러나 사용자 편의는 필수 다. 나는 사용자가 계수와 변수 사이에 a *를 넣어야하는 것을 없애기를 원할 것이다. (바람직하게는 3x^2는 3 * x ** 2로 평가 될 것이다.) 그런 다음 람다에 연결하고 나머지는 . 그것은 내가 단순히
def trapezoidal(a, b, deltax, func):
h = float(b - a)/deltax
s = 0.0
s += func(a)/2.0
for i in range(1, deltax):
s += func(a + i*h)
s += func(b)/2.0
return s * h
trapezoidal(5, 10, 100, lambda x: 3*x**2 + 2*x)
에 넣을 수 있습니다 그것은 좋은 평가 실현 실행 그러나 그것은 쉬운 사용자가 아닌 소스 파일의 시작 부분에서
(나는 태그를 추가)하지만, 들여 쓰기가 꺼져 당신은 짝 괄호가 있습니다. 다른 사람에게보기 전에 구문 적으로 유효하도록 코드를 편집하십시오. – tripleee
함수 인수'func'는 처음부터 겹쳐 쓰여 지므로 현재 쓸모가 없습니다. 어쩌면 당신은 그것이 설정되지 않은 경우에만 입력을 요청해야합니까? 또는 발신자에게 메시지를 표시하게하십시오. 대화식 호출 기능은 종종 좋은 디자인이 아닙니다. – tripleee