Mon fichier de liste principal est au format CSV, le délimiteur est une virgule et contient des données pour les nombres premiers jusqu'à 50000. Le fichier contient également des sauts de ligne aléatoires .Python max() - le plus grand élément dans la liste n'est pas le même que le plus gros dans le fichier CSV
Problème: 49999 est le plus grand numéro dans le fichier, mais le plus grand élément dans primes_list
est 9973! [Plus tard tous les nombres premiers dans la liste Primes
seront convertis en type long
et utiliseront les valeurs dans une boucle for. for prime in Primes
]
D'où mon problème est ce que je fais mal avec le code python minimal ci-dessous?
Python version est 2,76, sur Linux Mint 17.
Modifier - code corrigé après les commentaires;
import csv
def factorise()
primes=[]
with open(primefile,'r') as csvfile:
primes_data=csvfile.read().replace('\n','').split(',')
primes=primes_data
print('Number of elements is: '+str(len(primes)))
print('First element is: '+primes[0])
print('Last element is: '+primes[-1])
csvfile.close()
print('Largest element is: '+max(primes))
Exemple de sortie;
Number of elements is: 5134
First element is: 2
last element is: 49999
Largest element is: 9973
Primes_data = csvfile.read() remplacer ('\ n', ''). Split ('') utilise Primes_data mais = Prime_data ne nombres premiers pas. Est-ce dans votre code ou juste une faute de frappe ici. Notez la différence de pluralisation. Aussi csvfile.close est une fonction et vous faites simplement référence à l'emplacement en mémoire. Vous devez l'appeler, csvfile.close() –
Vous ne savez pas ce que vous voulez dire par guillemets doubles. Vous devriez éviter de nommer vos variables avec des majuscules, ce sont juste des variables parce que c'est une convention de nommage de classe. Il y a beaucoup de problèmes dans votre extrait. J'obtiendrais les bonnes conventions Python implémentées et corrigerais vos fautes de frappe, surtout si c'est dans votre code source. –
Corrigé. Les deux étaient des fautes de frappe ici. La question est toujours valide –