![](/img/trans.png)
[英]TypeError: sumEach() missing 1 required positional argument: 'nums'
[英]TypeError: main() missing 1 required positional argument: 'nums8'
我正在編寫代碼,並緊隨Tony Gaddis為我在MCC上的COMS-170撰寫的《從Python開始:第二版》一書,由於某些原因,我不斷收到錯誤消息
Traceback (most recent call last):
File "C:/Users/tcarroll/Desktop/123.py", line 36, in <module>
main()
TypeError: main() missing 1 required positional argument: 'nums8'
這是我的代碼:
def main(nums8):
inFile = open('nums8.txt', 'r')
num1 = int(inFile.readline())
num2 = int(inFile.readline())
num3 = int(inFile.readline())
num4 = int(inFile.readline())
num5 = int(inFile.readline())
num6 = int(inFile.readline())
num7 = int(inFile.readline())
num8 = int(inFile.readline())
num9 = int(inFile.readline())
num10 = int(inFile.readline())
num11 = int(inFile.readline())
num12 = int(inFile.readline())
num13 = int(inFile.readline())
num14 = int(inFile.readline())
num15 = int(inFile.readline())
num16 = int(inFile.readline())
num17 = int(inFile.readline())
num18 = int(inFile.readline())
num19 = int(inFile.readline())
num20 = int(inFile.readline())
num21 = int(inFile.readline())
num22 = int(inFile.readline())
inFile.close()
total = int(num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10 + num11 + num12 + num13 + num14 + num15 + num16 + num17 + num18 + num19 + num20 + num21 + num22)
print('The numbers are: ', num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, num11, num12, num13, num14, num15, num16, num17, num18, num19, num20, num21, num22)
print('Their total is: ', total)
main()
本書中的問題是:5.數字總和假設一個包含一系列整數的文件名為numbers.txt(對於此賦值,我們實際上有一個我們下載並使用的文件)並且存在於計算機磁盤上。 編寫一個程序,讀取存儲在文件中的所有數字並計算它們的總數。
只需不帶參數就定義主函數:
def main():
inFile = open('nums8.txt', 'r')
另外,您也希望將文件讀取代碼放入此函數中:
def main(nums8):
inFile = open('nums8.txt', 'r')
num1 = int(inFile.readline())
num2 = int(inFile.readline())
num3 = int(inFile.readline())
num4 = int(inFile.readline())
num5 = int(inFile.readline())
num6 = int(inFile.readline())
num7 = int(inFile.readline())
num8 = int(inFile.readline())
num9 = int(inFile.readline())
num10 = int(inFile.readline())
num11 = int(inFile.readline())
num12 = int(inFile.readline())
num13 = int(inFile.readline())
num14 = int(inFile.readline())
num15 = int(inFile.readline())
num16 = int(inFile.readline())
num17 = int(inFile.readline())
num18 = int(inFile.readline())
num19 = int(inFile.readline())
num20 = int(inFile.readline())
num21 = int(inFile.readline())
num22 = int(inFile.readline())
inFile.close()
total = int(num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10 + num11 + num12 + num13 + num14 + num15 + num16 + num17 + num18 + num19 + num20 + num21 + num22)
print('The numbers are: ', num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, num11, num12, num13, num14, num15, num16, num17, num18, num19, num20, num21, num22)
print('Their total is: ', total)
main()
另外,您可能希望寫得更短一些:
def main():
with open('nums8.txt') as inFile:
nums = [int(line) for line in inFile]
total = sum(nums)
print('The numbers are: ', nums)
print('Their total is: ', total)
此示例與for循環,列表,列表推導,逐行文件讀取,上下文管理器(“ with open(...)”內容)以及在list中查找值的總和有關。 這樣做的好處是,它對文件中的所有行進行求和,而無需關心行數(零或十億或更多)
谷歌搜索愉快!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.