기능 Python 3.4에서 그래픽 창에서 변수 표시
-
23-12-2019 - |
문제
Fibonacci 시퀀스의 n 번째를 생성하기 위해 일부 코드를 발견하고 편집했지만 내 문제는 그래픽 창에 표시하는 것입니다.
from graphics import *
def main():
win = GraphWin("Sample Input", 300, 300)
win.setCoords(0,0, 299, 299) # not required, just convenient
input_prompt = Text(Point(150, 200),"Enter a positive integer")
input_prompt.setStyle('bold italic') # not required, just convenient
input_prompt.draw(win)
input_integer = Entry(Point(150, 150),5)
input_integer.setText(" ")
input_integer.draw(win)
win.getMouse()
integer_number = int(input_integer.getText()) # the very line that does the input!
running_count = 0
for x in range(1, integer_number + 1):
running_count = running_count + x
def factorial(n):
if n == 1:
return n
else:
return n*factorial(n-1)
def fibN( k ):
k = abs( int( k ))
if k == 0:
fib = 0
elif k == 1:
fib = 1
else:
counter = 2
f0 = 0
f1 = 1
fib = f0 + f1
while counter <= k:
fib = f0 + f1
f0 = f1
f1 = fib
counter += 1
print(fib)
fib_result = "Fibonacci", "term", "of", integer_number, "is", fibN(integer_number)
prompt = Text(Point(150, 50), fib_result)
prompt.draw(win)
result_string = "The number is "+str(running_count)+"."
# Text objects require a string, not a number
result = Text(Point(150, 100), result_string)
result.draw(win)
factorial_result = "Factorial", "of",integer_number, "is", factorial(integer_number) #brackets displayed, separated factorial, of
prompt = Text(Point(150, 75), factorial_result)
prompt.draw(win)
prompt = Text(Point(150, 25),"Click to end")
prompt.draw(win)
win.getMouse()
win.close()
main()
.
그것은 그것을 인쇄하고, fibonacci 용어가 "none"인 창에 표시됩니다.인쇄 된 번호가 올바른 것입니다.인쇄 된 번호를 표시하려면 어떻게 변경할 수 있습니까?
해결책
FIBN 함수는 아무 것도 반환하지 않습니다 :
def fibN( k ):
k = abs( int( k ))
if k == 0:
fib = 0
elif k == 1:
fib = 1
else:
counter = 2
f0 = 0
f1 = 1
fib = f0 + f1
while counter <= k:
fib = f0 + f1
f0 = f1
f1 = fib
counter += 1
print(fib) #this only puts the output on the screen
.
함수 출력 (there fib
)의 경우 호출을 대체하려면 return fib
:
def fibN( k ):
k = abs( int( k ))
if k == 0:
fib = 0
elif k == 1:
fib = 1
else:
counter = 2
f0 = 0
f1 = 1
fib = f0 + f1
while counter <= k:
fib = f0 + f1
f0 = f1
f1 = fib
counter += 1
return fib
.
다음을 원한다면 print(fibN(something))
를 수행 할 수 있지만 현재 작업하는 것처럼 그래픽에서 사용할 수 있습니다.
제휴하지 않습니다 StackOverflow