-1
votes

Type (s) d'opérande non supporté (s) pour *: «flotteur» et «non constitué»

Lorsque vous exécutez le code, avez une erreur comme celle-ci

import initialsys
import numpy as np

R = np.array([[0.90 , 0.93,0.91 , 0.95],
               [0.95 , 0.94, 0.93, 0],
               [0.85 , 0.90 , 0.87 , 0.92],
               [0.83 , 0.87 , 0.85 , 0 ],
               [0.94 , 0.93 , 0.95 , 0],
               [0.99 , 0.98 , 0.97 , 0.96],
               [0.91 , 0.92 , 0.94 , 0],
               [0.81 , 0.90 , 0.91 , 0],
               [0.97 , 0.99 , 0.96 , 0.91],
               [0.83 , 0.85 , 0.90 , 0],
               [0.94 , 0.95 , 0.96 , 0],
               [0.79 , 0.82 , 0.85 , 0.90],
               [0.98 , 0.99 , 0.97 , 0],
               [0.85 , 0.92 , 0.95 , 0.99]
              ])

def expression(r ,possition , char ):
    exp = 1-r[possition , int(char)]


x = initialsys.getx()
possition = 0
Total = 1
Total = float(Total)
char = ""
for row in x :
    for char in row :
        if char!= 0 :
            exp = expression(R , possition , char)
            Total = Total* exp
    Total = 1-Total
    possition = possition + 1 


2 commentaires

Vous n'avez pas retour dans expression , il renvoie donc par défaut Aucun .


La fonction défression ne renvoie pas la valeur de exp .


3 Réponses :


1
votes

Votre fonction def expression (r, possition, char) ne renvoie rien.

Vous devriez l'écrire comme ceci: xxx


0 commentaires

1
votes

Couple de changements.

  • Il vous manque le Retour dans l'expression
  • aléatoire.randint (0, 4) doit être aléatoire.randint (0, 3)

    ex: xxx


    xxx


0
votes

J'ai changé 4 à 3 mais indexerror: l'index 4 est hors limites pour l'axe 1 avec une erreur de taille 4 a toujours


0 commentaires