python
python
Bonjour
Quand je rentre
ligne="nom,prenom,age,25"
print(len(ligne))
sur Python (trinket) je ne comprends pas pourquoi ca me sort 17...
Pourriez vous me dire svp ?
Meric
Quand je rentre
ligne="nom,prenom,age,25"
print(len(ligne))
sur Python (trinket) je ne comprends pas pourquoi ca me sort 17...
Pourriez vous me dire svp ?
Meric
-
- Messages : 10358
- Enregistré le : lun. 30 août 2010 11:15
Re: python
Bonjour,
Cela te donne la longueur de la chaîne de caractères, virgules et espaces comprises.
Donc c’est normal d’avoir 17 caractères.
Bonne continuation
Cela te donne la longueur de la chaîne de caractères, virgules et espaces comprises.
Donc c’est normal d’avoir 17 caractères.
Bonne continuation
Re: python
Bonsoir
Merci
Le pb c'est que j'ai un grand nombre de scripts comme ceci qui sont inconnus pour moi et je ne comprends pas... Est ce que je peux vous demander quand meme de l'aide ou non ?
Il y a par exemple celui ci
ligne="nom,prenom,age,25"
print(ligne[1])
print(ligne[3])
print(ligne[5+4])
qui fait
o
,
m
Merci beaucoup
Merci
Le pb c'est que j'ai un grand nombre de scripts comme ceci qui sont inconnus pour moi et je ne comprends pas... Est ce que je peux vous demander quand meme de l'aide ou non ?
Il y a par exemple celui ci
ligne="nom,prenom,age,25"
print(ligne[1])
print(ligne[3])
print(ligne[5+4])
qui fait
o
,
m
Merci beaucoup
-
- Messages : 10358
- Enregistré le : lun. 30 août 2010 11:15
Re: python
Bonjour,
ton script considère la variable ligne qui est de type chaine de caractères (string en python).
Cette variable est constituée de 17 caractères qui sont repérées par des indices : ce sont des nombres indiquant leur ordre dans la chaine.
En Python, les chaines, comme les listes, sont indexées à partir de 0. Ici, les 17 éléments de ta variable ligne sont donc indexés de 0 à 16 :
ligne[0] : premier caractère donc c'est le n
ligne[1] : deuxième caractère donc c'est le o
ligne[3] : quatrième caractère donc c'est la virgule
ligne[5+4] donc ligne[9] donc c'est le dixième caractère, donc c'est bien le m.
Est-ce plus clair ?
ton script considère la variable ligne qui est de type chaine de caractères (string en python).
Cette variable est constituée de 17 caractères qui sont repérées par des indices : ce sont des nombres indiquant leur ordre dans la chaine.
En Python, les chaines, comme les listes, sont indexées à partir de 0. Ici, les 17 éléments de ta variable ligne sont donc indexés de 0 à 16 :
ligne[0] : premier caractère donc c'est le n
ligne[1] : deuxième caractère donc c'est le o
ligne[3] : quatrième caractère donc c'est la virgule
ligne[5+4] donc ligne[9] donc c'est le dixième caractère, donc c'est bien le m.
Est-ce plus clair ?
Re: python
oui merci j'ai compris
j'ai une petite interrogation : comment savoir si les mots vont apparaitre entre " " ?
par exemple ici il y en a
ligne="nom,prenom,age,25"
element=ligne.split(",")
print(element[3],element[1])
print(element[2],element[0])
mais pas ici
ligne="nom,prenom,age,25"
element=ligne.split(",")
print(element[1])
print(element[3])
j'ai une petite interrogation : comment savoir si les mots vont apparaitre entre " " ?
par exemple ici il y en a
ligne="nom,prenom,age,25"
element=ligne.split(",")
print(element[3],element[1])
print(element[2],element[0])
mais pas ici
ligne="nom,prenom,age,25"
element=ligne.split(",")
print(element[1])
print(element[3])
-
- Messages : 10358
- Enregistré le : lun. 30 août 2010 11:15
Re: python
Bonjour,
je ne comprends pas ta remarque. La méthode split divise une chaine en liste selon un séparateur spécifié, ici c'est la virgule.
Ce qui donne la liste element :
Donc si tu appelles les différents éléments de cette liste, tu as :
Donc il n'y a pas de problème de mon côté.
Qu'entends-tu par
je ne comprends pas ta remarque. La méthode split divise une chaine en liste selon un séparateur spécifié, ici c'est la virgule.
Ce qui donne la liste element :
Code : Tout sélectionner
>>>element
['nom', 'prenom', 'age', '25']
Code : Tout sélectionner
>>> ligne="nom,prenom,age,25"
>>> element=ligne.split(",")
>>> print(element[3],element[1])
25 prenom
>>> print(element[2],element[0])
age nom
>>> ligne="nom,prenom,age,25"
>>> element=ligne.split(",")
>>> print(element[1])
prenom
>>> print(element[3])
25
Qu'entends-tu par
?mais pas ici
Re: python
Il y a un script ou les résultats sortent entre guillements et l'autre non
-
- Messages : 10358
- Enregistré le : lun. 30 août 2010 11:15
Re: python
Tu es sûr ?
Tu as fait le test sur une même machine ?
Cela peut dépendre de ton environnement Python et de ce que tu appelles :
Bonne continuation
Tu as fait le test sur une même machine ?
Cela peut dépendre de ton environnement Python et de ce que tu appelles :
Code : Tout sélectionner
>>> element[1] # demande de la valeur de la variable, c'est bien un objet de type str donc entre guillemets
'prenom'
>>> print(element[1]) # affiche le contenu de la variable donc objet de type Nonetype
prenom
>>> type(element[1])
str
>>> type(print(element[1]))
prenom
NoneType
Re: python
Ok merci bcp.
Il me reste 3 exercices à faire.
Le 1er c'est :
Vous devez modifiez le script n°2 de manière à afficher la valeur de votre âge multipliée par 1,5 en utilisant le champ correspondant (ceci signifie qu’il faut travailler avec des champs séparés).
Script 2 :
ligne="nom,prenom,age,25"
element=ligne.split(",")
print(element)
Je suis perdu, je ne sais pas du tout comment multiplé par 1.5 notamment...
Il me reste 3 exercices à faire.
Le 1er c'est :
Vous devez modifiez le script n°2 de manière à afficher la valeur de votre âge multipliée par 1,5 en utilisant le champ correspondant (ceci signifie qu’il faut travailler avec des champs séparés).
Script 2 :
ligne="nom,prenom,age,25"
element=ligne.split(",")
print(element)
Je suis perdu, je ne sais pas du tout comment multiplé par 1.5 notamment...
-
- Messages : 10358
- Enregistré le : lun. 30 août 2010 11:15
Re: python
Il faut que tu appelles l'élément de ta liste qui contient ton âge et que tu le convertisses en entier et que tu multiplies cet élément par 1,5 :
ce qui te donne la sortie suivante :
Tu notes au passage que l'âge est désormais de type entier (type int) et il n'y a donc plus de guillemets autour de l'âge.
Bonne continuation
Code : Tout sélectionner
ligne="nom,prenom,age,25"
element=ligne.split(",")
element[3] = 1.5 * int(element[3])
print(element)
Code : Tout sélectionner
['nom', 'prenom', 'age', 37.5]
Bonne continuation
Re: python
Merci, j'ai testé et réussi.
Avant dernier exercice :
Sur la base du script n°3, écrivez votre nom, prénom et âge dans le code (c’est à dire dans le script), tout en conservant l’ordre de ces données. Modifiez son contenu de manière à afficher vos initiales en commençant par celle du prénom, ainsi que la valeur de votre âge (sans que le terme age ne soit apparent), après avoir renommé la variable element en variable champs.
script 3 :
ligne="nom,prenom,age,25"
element=ligne.split(",")
a=element[0]
b=element[1]
c=element[2]
d=element[3]
C'est vraiment compliqué, merci et désolé. J'ai fais déjà "écrivez votre nom, prénom et âge dans le code (c’est à dire dans le script), tout en conservant l’ordre de ces données"
Avant dernier exercice :
Sur la base du script n°3, écrivez votre nom, prénom et âge dans le code (c’est à dire dans le script), tout en conservant l’ordre de ces données. Modifiez son contenu de manière à afficher vos initiales en commençant par celle du prénom, ainsi que la valeur de votre âge (sans que le terme age ne soit apparent), après avoir renommé la variable element en variable champs.
script 3 :
ligne="nom,prenom,age,25"
element=ligne.split(",")
a=element[0]
b=element[1]
c=element[2]
d=element[3]
C'est vraiment compliqué, merci et désolé. J'ai fais déjà "écrivez votre nom, prénom et âge dans le code (c’est à dire dans le script), tout en conservant l’ordre de ces données"
-
- Messages : 10358
- Enregistré le : lun. 30 août 2010 11:15
Re: python
Je ne comprends pas le rôle du 25 dans cette chaîne : c'est l'âge ?
Si tu considères ce script initial
il faut que tu changes le premier élément en son initiale et la même chose pour le deuxième élément, ainsi que l'âge. Tu redéfinis ensuite ta liste élément :
Ce qui donne :
Je ne sais pas si c'est cela qui est demandé...
Si tu considères ce script initial
Code : Tout sélectionner
ligne="Durand,Rémi,age,17"
element=ligne.split(",")
a=element[0]
b=element[1]
c=element[2]
d=element[3]
Code : Tout sélectionner
a = a[0]
b = b[0]
element = [b,a,d]
print(element)
Code : Tout sélectionner
['R', 'D', '17']
Re: python
Je pense que c'est ca.
J'ai un dernier exo :
Sur la base du script n°3, affichez sur une même ligne l’attribut prenom à 4 reprises sans espace, et la division de la valeur de l’âge par 2
Une conversion est à prévoir, à vous de l’identifier...
script 3 :
ligne="nom,prenom,age,25"
element=ligne.split(",")
a=element[0]
b=element[1]
c=element[2]
d=element[3]
j'ai réussi à afficher l'attribut prénom 4 fois mais je n'arrive pas à faire al division...comment faire une conversion ?
J'ai un dernier exo :
Sur la base du script n°3, affichez sur une même ligne l’attribut prenom à 4 reprises sans espace, et la division de la valeur de l’âge par 2
Une conversion est à prévoir, à vous de l’identifier...
script 3 :
ligne="nom,prenom,age,25"
element=ligne.split(",")
a=element[0]
b=element[1]
c=element[2]
d=element[3]
j'ai réussi à afficher l'attribut prénom 4 fois mais je n'arrive pas à faire al division...comment faire une conversion ?
-
- Messages : 10358
- Enregistré le : lun. 30 août 2010 11:15
Re: python
Bonjour,
il s'agit de la même conversion de type que dans un exercice précédent : il faut d'abord convertir l'âge en entier avant d'en prendre la moitié. Pour la répétition de la chaine, il suffit de faire *4
ce qui donne
Je ne sais pas si c'est ce qui est demandé mais c'est une réponse qui s'en approche.
Bonne continuation
il s'agit de la même conversion de type que dans un exercice précédent : il faut d'abord convertir l'âge en entier avant d'en prendre la moitié. Pour la répétition de la chaine, il suffit de faire *4
Code : Tout sélectionner
ligne="Durand,Rémi,age,25"
element=ligne.split(",")
a=element[0]
b=element[1]
c=element[2]
d=element[3]
print(b*4, int(d)/2)
Code : Tout sélectionner
RémiRémiRémiRémi 12.5
Bonne continuation