簡體   English   中英

TypeError:main()缺少1個必需的位置參數:“ nums8”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM