NameError:未定义名称“TotalCostRS”

2024-10-02 04:32:25 发布

您现在位置:Python中文网/ 问答频道 /正文

最近,我一直在开发一个代码,允许用户根据婚姻状况和是否有孩子来制定保险计划,并将总数相加。唯一的问题是,当我想要得到总数时,输出内容如下:

NameError: name 'TotalCostRS' is not defined

此错误也适用于输入的任何其他选项,仅“TotalCost”变量切换到未定义的变量之一

我的代码:

import random
from random import randint
ReferenceID = int(random.randint(1000,9999))
ReferenceIDInstances = 0
FamilyStatus = False
LSCounter = int(1)
RSCounter = int(1)
HSCounter = int(1)
LFCounter = int(1)
RFCounter = int(1)
HFCounter = int(1)
LFCCounter = int(1)
RFCCounter = int(1)
HFCCounter = int(1)
while ReferenceID >= 10000 or ReferenceIDInstances!= 1:
ReferenceIDInstances += 1
print("This inquiry reference ID is:", ReferenceID)
print("If you are an administrator, enter ADMIN to view all inquiries.")
UserID = int(input("Please enter your four digit PIN:" + "\n"))
if(UserID <= 1000 or UserID >= 100000):
print("User ID is invalid. Please try again.")
else:
    Continue = "Y"
    while Continue != "N":
    IndividualName = input("Please enter individual's full name:")
    Individual = input("Please enter individual's plan level as L, R or H (Low, Regular or High):")    
    IndividualStatus = input("Is this individual single or have a family? (S/F):")
    IndividualInheritance = input("Please enter status as C or NC for (children or no children):")
    if(Individual == "L" and IndividualStatus == "S"):
        TotalCostLS = float(36.25)
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print(TotalCostLS*LSCounter)
        TC1 = TotalCostLS*LSCounter
        LSCounter += 1
    elif(Individual == "R" and IndividualStatus == "S"):
        TotalCostRS = int(float(48.90))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")          
        print("$",TotalCostRS*RSCounter)
        TC2 = TotalCostRS*RSCounter
        RSCounter += 1
    elif(Individual == "H" and IndividualStatus == "S"):
        TotalCostHS = int(float(69.80))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")            
        print("$",TotalCostHS*HSCounter)
        TC3 = TotalCostHS*HSCounter
        HSCounter += 1
    elif(IndividualStatus == "L" and Individual == "F" ):
        StopAsyncIteration
        TotalCostLF = int(float(56.50))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")            
        print("$",TotalCostLF*LFCounter)
        TC4 = TotalCostLF*LFCounter
        LFCounter += 1
    elif(Individual == "R" and IndividualStatus == "F"):
        TotalCostRF = int(float(74.70))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")            
        print("$",TotalCostRF*RFCounter)
        TC5 = TotalCostRF*RFCounter
        RFCounter += 1    
    elif(Individual == "H" and IndividualStatus == "F"):
        TotalCostHF = int(float(99.45))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")            
        print("$",TotalCostHF*HFCounter)
        TC6 = TotalCostHF*HFCounter
        HFCounter += 1  
    elif(Individual == "L" and IndividualStatus == "F" and IndividualInheritance == "C"):
        TotalCostLFC = int(float(98.35))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")            
        print("$",TotalCostLFC*LFCCounter)
        TC7 = TotalCostLFC*LFCCounter
        LFCCounter += 1  
    elif(Individual == "R" and IndividualStatus == "F" and IndividualInheritance == "C"):
        TotalCostRFC = int(float(136.75))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")            
        print("$",TotalCostRFC*RFCCounter)
        TC8 = TotalCostRFC*RFCCounter
        RFCCounter += 1
    elif(Individual == "H" and IndividualStatus == "F" and IndividualInheritance == "C"):
        TotalCostHFC = int(float(174.55))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")            
        print("$",TotalCostHFC*HFCCounter)
        TC9 = TotalCostHFC*HFCCounter
        HFCCounter += 1            
    Continue = input("Continue? (Y/N):")
    TC1 = TotalCostLS*LSCounter
    TC2 = TotalCostRS*RSCounter
    TC3 = TotalCostHS*HSCounter
    TC4 = TotalCostLF*LFCounter
    TC5 = TotalCostRF*RFCounter
    TC6 = TotalCostHF*HFCounter
    TC7 = TotalCostLFC*LFCCounter
    TC8 = TotalCostRFC*RFCCounter
    TC9 = TotalCostHFC*HFCCounter        
    sum(TC1,TC2,TC3,TC4,TC5,TC6,TC7,TC8,TC9)

This is the sample expected output that we have been told to recreate:

Please enter the client’s ID or ’0’ to quit: 5555
Please enter the plan level as L, R or H (Low, Regular or High):h
Please enter the type of coverage (S for single and F for family): f
Please enter status as C or NC for (children or no children): nc
ID: 5555Payment: $99.45
Please enter the client’s ID or ’0’ to quit: 0
Total payment is $440.6 

我将非常感谢在解决此问题方面能得到的任何帮助。


Tags: orandidfloatindividualinthasprint
1条回答
网友
1楼 · 发布于 2024-10-02 04:32:25

TotalCost*变量的定义在if块中。如果这些块不运行(条件不满足),那么这些变量将不会被定义。但是您有一个无条件的代码块,您希望在其中定义所有这些TotalCost*变量。因此出现了错误。要修复,请无条件地定义这些变量&;将它们初始化为一些合理的默认值

import random
import sys

ReferenceID = int(random.randint(1000, 9999))
ReferenceIDInstances = 0
FamilyStatus = False
LSCounter = int(1)
RSCounter = int(1)
HSCounter = int(1)
LFCounter = int(1)
RFCounter = int(1)
HFCounter = int(1)
LFCCounter = int(1)
RFCCounter = int(1)
HFCCounter = int(1)
while ReferenceID >= 10000 or ReferenceIDInstances != 1:
    ReferenceIDInstances += 1
print("This inquiry reference ID is:", ReferenceID)
print("If you are an administrator, enter ADMIN to view all inquiries.")
UserID = int(input("Please enter your four digit PIN:" + "\n"))
if UserID <= 1000 or UserID >= 100000:
    print("User ID is invalid. Please try again.")
    sys.exit(1)
else:
    Continue = "Y"
while Continue != "N":
    # Define default totals
    TotalCostLS = 0
    TotalCostRS = 0
    TotalCostHS = 0
    TotalCostLF = 0
    TotalCostRF = 0
    TotalCostHF = 0
    TotalCostLFC = 0
    TotalCostRFC = 0
    TotalCostHFC = 0

    IndividualName = input("Please enter individual's full name:")
    Individual = input("Please enter individual's plan level as L, R or H (Low, Regular or High):")
    IndividualStatus = input("Is this individual single or have a family? (S/F):")
    IndividualInheritance = input("Please enter status as C or NC for (children or no children):")
    if Individual == "L" and IndividualStatus == "S":
        TotalCostLS = float(36.25)
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print(TotalCostLS * LSCounter)
        TC1 = TotalCostLS * LSCounter
        LSCounter += 1
    elif Individual == "R" and IndividualStatus == "S":
        TotalCostRS = int(float(48.90))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostRS * RSCounter)
        TC2 = TotalCostRS * RSCounter
        RSCounter += 1
    elif Individual == "H" and IndividualStatus == "S":
        TotalCostHS = int(float(69.80))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostHS * HSCounter)
        TC3 = TotalCostHS * HSCounter
        HSCounter += 1
    elif IndividualStatus == "L" and Individual == "F":
        TotalCostLF = int(float(56.50))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostLF * LFCounter)
        TC4 = TotalCostLF * LFCounter
        LFCounter += 1
    elif Individual == "R" and IndividualStatus == "F":
        TotalCostRF = int(float(74.70))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostRF * RFCounter)
        TC5 = TotalCostRF * RFCounter
        RFCounter += 1
    elif Individual == "H" and IndividualStatus == "F":
        TotalCostHF = int(float(99.45))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostHF * HFCounter)
        TC6 = TotalCostHF * HFCounter
        HFCounter += 1
    elif Individual == "L" and IndividualStatus == "F" and IndividualInheritance == "C":
        TotalCostLFC = int(float(98.35))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostLFC * LFCCounter)
        TC7 = TotalCostLFC * LFCCounter
        LFCCounter += 1
    elif Individual == "R" and IndividualStatus == "F" and IndividualInheritance == "C":
        TotalCostRFC = int(float(136.75))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostRFC * RFCCounter)
        TC8 = TotalCostRFC * RFCCounter
        RFCCounter += 1
    elif Individual == "H" and IndividualStatus == "F" and IndividualInheritance == "C":
        TotalCostHFC = int(float(174.55))
        print(ReferenceID, "User ID#:", UserID)
        print(IndividualName, "HAS BEEN REGISTERED.")
        print("$", TotalCostHFC * HFCCounter)
        TC9 = TotalCostHFC * HFCCounter
        HFCCounter += 1
    Continue = input("Continue? (Y/N):")
    TC1 = TotalCostLS * LSCounter
    TC2 = TotalCostRS * RSCounter
    TC3 = TotalCostHS * HSCounter
    TC4 = TotalCostLF * LFCounter
    TC5 = TotalCostRF * RFCounter
    TC6 = TotalCostHF * HFCounter
    TC7 = TotalCostLFC * LFCCounter
    TC8 = TotalCostRFC * RFCCounter
    TC9 = TotalCostHFC * HFCCounter
    print(sum([TC1, TC2, TC3, TC4, TC5, TC6, TC7, TC8, TC9]))

相关问题 更多 >

    热门问题