[英]Traceback error in Python for homework assignment
獲取跟蹤錯誤如下:
Traceback (most recent call last):
File "F:\Python Codes\Falling Distance\hodge_Lab5b.py", line 12, in <module>
main()
File "F:\Python Codes\Falling Distance\hodge_Lab5b.py", line 9, in main
print(get_time, '\t', format(falling_distance, '.2f'))
TypeError: unsupported format string passed to function.__format__
#file 1 named hodge_Lab5b.py
def main():
from falling_distance import falling_distance
get_time = int(input("Enter the time, in seconds, the object has been falling: "))
print("Time",'\t' "Distance")
print("--------------------------")
for get_time in range (1,11):
print(get_time, '\t', format(falling_distance(main), '.2f'))
return get_time
main()
#File 2 named falling_distance.py
def falling_distance(main):
gravity = 9.8
fallingTime = main()
distance = (1/2)*gravity*(fallingTime**2)
return distance
無法弄清楚如何讓這些一起工作。 我不知道我做錯了什么。 我已經多次閱讀了本書的相關部分。 我覺得我忽略了一些相當簡單的東西,它只是沒有向我跳出來。
字符串格式
舊python: '%s %s' % ('one', 'two')
新的python: '{} {}'.format('one', 'two')
也
for get_time in range(1,11):
將迭代超過1,2,3 ... 10你可能想做這樣的事情
for sec_nb in range(1, get_time+1): print('falling time: {} \\t falling dist: {}'.format(sec_nb, falling_distance(sec_nb)))
順便說一句,你想將數字傳遞給falling_distance
函數,而不是函數
看來你在這里有一些問題。 既然是家庭作業,我不願意提供任何代碼。 以下是我看到的幾個問題:
main
的函數傳遞給名為falling_distance
的函數。 這可能不是你想要做的(絕對不是提供的代碼)。 如果你仔細地重命名一切,我猜測大多數問題都會隨着一些額外的調試而消失。 main
,這似乎會讓你陷入無限循環。 這與問題#1有關,但是知道你需要修改你在下降距離中使用傳遞參數的方式 get_time
正在for循環中重新分配,這似乎並不打算。 你想在這里用一個新變量替換它 (1/2)
將被解釋為0
(由於整數除法)。 一旦你知道了分子,你應該把分裂發生在最后。 我還看到了其他一些問題,還有一些風格和慣例問題,這些問題在長期內更為重要。
祝好運
這是我終於找到工作的東西。 謝謝你的幫助。
#file 1
def main():
print( "Time\tFalling Distance\n-----------------------" )
from falling_distance import fallingDistance
for currentTime in range(1,11):
print(currentTime, "\t", format(fallingDistance(currentTime),\
".2f"))
main()
#file 2
def fallingDistance(fallingTime):
gravity=9.8
distance=(1/2)*gravity*(fallingTime**2)
return distance
肯定是命名問題導致了很多問題。
謝謝您的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.