Soit tu déclares ta fonction comme prenant un seul paramètre (un tuple) et tu l'appelles avec 1 seul paramètre:
defget_row_size(args):# <=== pas de '*'# ...get_row_size(sys.argv)
Soit tu déclares ta fonction comme prenant N paramètres, et tu l'appelles en "explosant" le tuple :
defget_row_size(*args):# ...get_row_size(*sys.argv)# <== remarque le '*'
Actuellement tu mélanges les 2, et ta fonction reçoit bien un seul argument (seul args[0] ne provoquera pas d'erreur, et sera un tuple avec tous tes arguments).
Quelques remarques:
Ce n'est pas très propre que ton programme plante salement si on ne lui passe pas assez d'argument. Tu es censé faire un if len(args) > 3 avant de faire un args[3] par exemple.
Comme vérifier tous les arguments c'est pénible, tu peux regarder du côté de argparse qui générera de belles erreurs et un message de doc sur les arguments
Attention tu parles de "4eme élément" en écrivant args[4] ; il s'agit bien du 5ème élément (vu que les indices commencent à 0).
# Opérateur *
Posté par GuieA_7 (site web personnel) . En réponse au message Calcul de matrices, erreur "index out of range". Évalué à 7. Dernière modification le 20 novembre 2018 à 17:44.
Soit tu déclares ta fonction comme prenant un seul paramètre (un tuple) et tu l'appelles avec 1 seul paramètre:
Soit tu déclares ta fonction comme prenant N paramètres, et tu l'appelles en "explosant" le tuple :
Actuellement tu mélanges les 2, et ta fonction reçoit bien un seul argument (seul args[0] ne provoquera pas d'erreur, et sera un tuple avec tous tes arguments).
Quelques remarques:
if len(args) > 3avant de faire unargs[3]par exemple.args[4]; il s'agit bien du 5ème élément (vu que les indices commencent à 0).