CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Incompréhension

Diego_Rolan
Diego_Rolan
Niveau 4
31 octobre 2015 à 07:53:08

Bonjour :)

Je débute en informatique et il y a un petit truc que je ne comprends pas. Par exemple si s est une chaîne de caractères, quelle est la différence entre la commande str.lower(s) et s.lower() ?
J'ai un programme qui marche avec la première mais qui, si je veux utiliser la deuxième, envoie une erreur du type : '''builtin_function_or_method' object is not iterable''

Merci !

GrandeGuerre
GrandeGuerre
Niveau 11
31 octobre 2015 à 10:23:39

Et bien elles ne s'utilisent pas de la même façon.

str.lower(s) :d) https://docs.python.org/3.4/library/stdtypes.html?highlight=str.lower#str.lower
s.lower() :d) http://stackoverflow.com/questions/6797984/how-to-convert-string-to-lowercase-in-python

En français, si tu veux utiliser s.lower() :
taChaine.lower() et bien c'est directement ta variable "taChaine" qui va être modifiée. Elle va passer, admettons, de "Je suis une Patate" à "je suis une patate".

En revanche, si tu veux utiliser str.lower(s) :
taDeuxiemeChaine = str.lower(taChaine), car là on ne cherche pas à modifier la valeur originale de taChaine, mais à stocker une version en minuscule dans une autre variable.

EDIT: Après, je suis pas un expert en Python, je laisse les connaisseurs me corriger si besoin.

Message édité le 31 octobre 2015 à 10:25:24 par GrandeGuerre
Diego_Rolan
Diego_Rolan
Niveau 4
31 octobre 2015 à 19:45:23

Désolé pour la réponse tardive mais merci à vous deux, je comprends mieux.
Le programme est composé de plusieurs fonctions donc c'est un peu long :rire:

def reverse(s) :
c=""
for k in range(len(s)-1,-1,-1) :
c=c+s[k]
return(c)

def palind1(s) :
if s==reverse(s) :
return(True)
else :
return(False)

def trans(s) :
c=""
dic = {'à':'a','é':'e','ê':'e'}
for k in s :
if dic.get(k)==None :
c=c+k
else :
c=c+dic.get(k)
return(c)

def palind2(s) :
if palind1(s.lower()) :
return(True)
else :
return(False)

def appartient(k) :
i=0
L=[',','!','?',';','.',' ']
while i<len(L) and L[i]!=k :
i=i+1
if i>=len(L) :
return(False)
else :
return(True)

def trans2(s) :
c=""
L=['.',';',',','!',' ']
for k in s :
if appartient(k) :
c=c
else :
c=c+k
return(c)

def palind3(s) :
s1=str.lower(s)
s2=trans(s1)
s3=trans2(s2)
return(palind1(s3))

L'erreur apparaît si je change la première ligne de la dernière fonction

Diego_Rolan
Diego_Rolan
Niveau 4
01 novembre 2015 à 09:17:18

Effectivement, je l'ai lancé avec s.lower() et ça marche. Pourtant je suis sûr qu'hier y'avait une erreur, j'avais dû faire une mauvaise manip ou je deviens fou je sais pas^^
Désolé du dérangement alors :rire:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment