0
votes

Pourquoi est-ce que je reçois une erreur de type pour Python?

"Écrivez un programme avec une quantité de changement totale en tant qu'entrée entière qui génère la modification à l'aide des monnaies les moins importantes, un type de pièces par ligne. Les types de pièces de monnaie sont des dimes, des nickels et des centimes. Utilisez des pièces singulières et plurielles. Noms comme approprié, comme 1 penny vs. 2 Pennies. Votre programme doit définir et appeler la fonction suivante. La fonction exact_change () doit renvoyer num_dollars, num_quarters, num_dimes, Num_Nickels et Num_Pennies. "

La ligne "Num_Dollars, Num_Quarters, Num_Dimes, Num_Nickels, Num_Pennies = Exact_Change (INPUT_VAL)" est ce qui me donne des problèmes, mais sa ligne requise dans la mission.

L'erreur dit: Fichier "main.py", ligne 36, dans Num_Dollars, Num_Quarters, Num_Dimes, Num_Nickels, Num_Pennies = Exact_Change (INPUT_VAL) TypeError: L'objet 'non constitué' n'est pas ibler xxx

l'erreur dit:

fichier "main.py", ligne 36, dans Num_Dollars, Num_Quarters, Num_Dimes, Num_Nickels, Num_Pennies = Exact_Change (INPUT_VAL) TypeError: l'objet 'non constitué' n'est pas démonérable


1 commentaires

Vous devez montrer votre fonction exacte_change . Il ne renvoie clairement aucun au lieu de tout ce qui est attendu.


3 Réponses :


0
votes

Cela devrait ressembler à ce xxx


0 commentaires

0
votes
user_input = int(input())
if user_input > 0:    
    dollar = user_input // 100
    user_input %= 100
    quarter = user_input // 25
    user_input %=25
    dime = user_input //10
    user_input %= 10
    nickel = user_input // 5
    user_input %= 5
    penny = user_input
    
    if dollar == 1:
        print(dollar, "Dollar")
    elif dollar > 1: 
        print(dollar, "Dollars")
    if quarter == 1:
        print(quarter, "Quarter")
    elif quarter > 1: 
        print(quarter, "Quarters")
    if dime == 1:
        print(dime, "Dime")
    elif dime > 1: 
        print(dime, "Dimes")    
    if nickel == 1:
        print(nickel, "Nickel")
    elif nickel > 1: 
        print(nickel, "Nickels")    
    if penny == 1:
        print(penny, "Penny")
    elif penny > 1: 
        print(penny, "Pennies")
else:
    print("No change")

1 commentaires

Rebonjour. Il serait utile que vous ayez posté une sorte d'explication ici aussi. Merci.



1
votes

Je fais actuellement des zybooks pour le codage Python aussi. C'est ainsi que le code devrait rechercher dans l'ordre de transmettre tous les tests des programmes.

#define exact change function
def exact_change(user_total):
    num_dollars = user_total // 100 #convert to dollars
    user_total %= 100 #get remainder after conversion
    num_quarters = user_total // 25 #convert to quarters
    user_total %= 25 #get remainder after conversion
    num_dimes = user_total // 10 #convert to dimes
    user_total %= 10 #get remainder after conversion
    num_nickels = user_total // 5 #convert to nickels
    user_total %= 5 #get remainder after conversion
    num_pennies = user_total
    return(num_dollars, num_quarters, num_dimes, num_nickels, num_pennies)
if __name__ == '__main__':
    input_val = int(input()) #prompt user to input an integer
    num_dollars, num_quarters, num_dimes, num_nickels, num_pennies = exact_change(input_val) #recall exact_change function
    
    #define output statements to output number of exact_change variables: 
    #num_dollars, num_quarters, num_dimes, num_nickels, num_pennies  
    if input_val <=0: #if amount is zero
        print('no change') #print output
        
    else:
        if num_dollars > 1: #if number of dollars is greater than one
            print('%d dollars' % num_dollars) #print number of dollars
        elif num_dollars == 1: # if number of dollars equal 1
            print('%d dollar' % num_dollars) #print dollar in singular
        
        if num_quarters > 1: #if number of quarters is greater than one
            print('%d quarters' % num_quarters) #print number of quarters
        elif num_quarters ==1: # if number of quarters equal 1
            print('%d quarter' % num_quarters) #print quarter in singular
        
        if num_dimes > 1: #if number of dimes is greater than one
            print('%d dimes' % num_dimes) #print number of dimes
        elif num_dimes == 1: # if number of dimes equal 1
            print('%d dime' % num_dimes) #print dime in singular
            
        if num_nickels > 1: #if number of nickels is greater than one
            print('%d nickels' % num_nickels) #print number of nickels
        elif num_nickels == 1: # if number of nickels equal 1
            print('%d nickel' % num_nickels) #print nickel in singular
        
        if num_pennies >1: #if number pennies is greater than one
            print('%d pennies' % num_pennies) #print number of pennies
        elif num_pennies ==1: # if number of pennies equal 1
            print('%d penny' % num_pennies) #print penny in singular


0 commentaires