簡體   English   中英

我有一個 ”<class '_csv.error'> 預期可迭代,而不是 int 終止程序。”在運行我的代碼時,我不知道如何修復它</class>

[英]I got a "<class '_csv.Error'> iterable expected, not int Terminating program." while running my code, and I don't know how to fix it

我在哪里收到錯誤

它也使我的文件看起來像這樣,我真的不知道它發生了什么,如果你也能幫我解決這個問題我會非常感激,這只是一個學校項目

這是所有代碼,我發布了完整上下文代碼 1 的屏幕截圖這是我假設我遺漏了一些代碼 3

文本中的代碼(原諒我之前沒有這樣做,我在這里很新,順便說一句,這是python 3)

#!/usr/bin/env python3
#David Martinez, December 5, 2022, CPT168-W47, Final Exam Project
#Description

import csv
import sys

FILENAME = "party.csv"

#numb=int(input("Enter no of guests/members:"))
#for i in range(numb):
#    user = input("Enter your name:")
#    utype = input("mem or guest:")
#    food = input("Enter your menu choice beef or veg or chicken:")
#fees=21.0
#total=fees*numb
#g=0
#m=0
#for j in range(numb):
#    if utype == 'guest':
#        g=g+1
#    else:
#        m=m+1
   
#print('name',user)
#print('member or guest:',utype)
#print('food type:',food)
#print("fees paid:",fees)
#print("total members:",m)
#print("total guests:",g)
#print("total fees paid by all attendees",total)

#SPACE
def exit_program():
    print("Terminating program.")
    sys.exit()

def read_party():
    try:
        party = []
        with open(FILENAME, newline="") as file:
            reader = csv.reader(file)
            for row in reader:
                party.append(row)
        return party
    except FileNotFoundError as e:
        return party
    except Exception as e:
        print(type(e), e)
        exit_program()

def write_party(party):
    try:
        with open(FILENAME, "w", newline="") as file:
            writer = csv.writer(file)
            writer.writerows(party)
    except OSError as e:
        print(type(e), e)
        exit_program()
    except Exception as e:
        print(type(e), e)
        exit_program()
   
def list_party(party):
    for i, party in enumerate(party, start=1):
        print(f"{i}. {party[0]} --{party[1]}-- ({party[2]}) {party[3]}")
    print()

def add_party(party):
    #name = get_name
    #member_guest = get_member_guest
    name = input("Name: ")
    member_guest = input("Member or Guest: ")                  
    food = input(" Chicken entre  Beef entre  Vegetarian meal: ")
    
    while True:
        try:
            fees = int(input("Fees: "))
        except ValueError:
            print("Invalid integer. Please try again.")
            continue
        if fees <= 0:
            print("Fees must be greater than zero. Please try again.")
            continue
        else:
            break
    party = [name, member_guest, food, fees]
    party.append(party)
    write_party(party)
    print(f"{name} was added.\n")

def delete_party(party):
    while True:
        try:
            number = int(input("Number: "))
        except ValueError:
            print("Invalid integer. Please try again.")
            continue
        if number < 1 or number > len(party):
            print("There is no member with that number. Please try again.")
        else:
            break
    party = party.pop(number - 1)
    write_party(party)
    print(f"{party[0]} was deleted.\n")
      
def display_menu():
    print("The Party List Program")
    print()
    print("COMMAND MENU")
    print("list - List all members and guests")
    print("add -  Add a member to the list")
    print("del -  Remove a member from the list")
    print("exit - Exit program")
    print()    

def main():
#    party_list = [["Father Orion", member, 22.00, Chicken entre ],
#                  ["Mother Theresa", member, 22.00, ],
#                  ["Johnny", guest, 7.95, Vegetarian meal ]]
    display_menu()
    party = read_party()
    
    while True:        
        command = input("Command: ")
        if command.lower() == "list":
            list_party(party)
        elif command.lower() == "add":
            add_party(party)
        elif command.lower() == "del":
            delete_party(party)
        elif command.lower() == "exit":
            break
        else:
            print("Not a valid command. Please try again.\n")
    print("Bye!")

if __name__ == "__main__":
    main()

我試圖讓用戶輸入一個數字,然后將其保存在最后一行的文件中,但由於某種原因,所有內容都散開了,錯誤中的文件拒絕了“費用”,我又一次沒有真正的經驗有了這個,我也很感激解釋,看看我哪里出錯了。

party = [name, member_guest, food, fees]
party.append(party)

我猜這是因為您將party附加到自身,從而創建了一個遞歸列表,而 csv 編寫器無法處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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