Remplacer print par une variable
Fermé
NoobPython
Messages postés
1
Date d'inscription
mardi 23 novembre 2021
Statut
Membre
Dernière intervention
23 novembre 2021
-
Modifié le 25 nov. 2021 à 17:53
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 25 nov. 2021 à 18:21
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 25 nov. 2021 à 18:21
A voir également:
- Remplacer print par une variable
- Remplacer disque dur par ssd - Guide
- Print artist - Télécharger - Loisirs créatifs
- Remplacer par word - Guide
- Print pratic - Télécharger - Photo & Graphisme
- Directory list & print - Télécharger - Divers Utilitaires
2 réponses
jordane45
Messages postés
38316
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 novembre 2024
4 705
23 nov. 2021 à 06:38
23 nov. 2021 à 06:38
Bonjour
Ta question n'est pas claire..
Sachant que print est une fonction permettant d'afficher... Je ne comprends pas ce que la remplacer par une string signifie.
Que comptes tu obtenir ?
Qu'as tu essayé ?
Ta question n'est pas claire..
Sachant que print est une fonction permettant d'afficher... Je ne comprends pas ce que la remplacer par une string signifie.
Que comptes tu obtenir ?
Qu'as tu essayé ?
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
25 nov. 2021 à 18:21
25 nov. 2021 à 18:21
Bonjour,
Quand tu fais un
La fonction
Quand tu écris en python :
Concaténer des chaînes de caractères
Il existe plusieurs approches :
Puisqu'on parle des opérateurs sur les chaînes, un autre opérateur très utile pour ton problème est
Comment adapter ton code
Il suffit de créer en début de programme une variable
Le fait qu'il y a ait une chaîne ajoutée en plus avec le paramètre end ne change pas grand chose : print("toto", end="tata") devient juste
Comment j'aurais fait
Dans ton cas, on peut voir ton problème comme le suivant. Notons
Si n >= 2, le carré est constitué de :
Partant de là construire la chaîne de caractère correspondant à ton carré ne devrait pas poser de problème (si tu utilises habilement
Voici à quoi ça pourrait ressembler :
Bonne chance
Quand tu fais un
/dev/stdoutsous linux). Tu peux donc choisir de faire plein de print de plein de petites chaînes de caractère, ou un seul print, avec une seule chaîne de caractère dans laquelle tu as concaténé toutes les petites chaînes de caractères.
La fonction
Quand tu écris en python :
-
print("toto")
en réalité tu écris dans la sortie standard"toto\n"
, où"\n"
désigne le retour à la ligne. Le retour à la ligne implicitement ajouté est simplement dû au fait que la fonctionprint
assigne au paramètre nomméend
la valeur par défaut"\n"
. -
print("toto", end="\n")
est donc complètement équivalent. -
print("toto", end=" ")
signifie que tu écrit"toto "
(note la présence de l'espace en fin de chaîne) au lieu de"toto"
.
Concaténer des chaînes de caractères
Il existe plusieurs approches :
- Utiliser l'opérateur + : c'est la manière la plus simple (et sans doute la plus indiquée si tu débutes) ;
s = "abc" + "def" print(s) # Affiche abcdef
- Utiliser la méthode
join
de la classestr
, c'est très pratique quand on peut itérer sur les bouts de chaînes à concaténer. A l'image du paramètreend
deprint
, la méthode est prévue pour que le caractère qui relie les différentes sous chaînes puisse être choisi à la concaténation.
s = ", ".join(["abc", "def", "ghi"]) print(s) # Affiche abc, def, ghi
- Utiliser StringIO : c'est une classe python qui permet d'avoir une notion de flux (au même titre que la sortie standard), sauf qu'ici on construit progressivement une chaîne.
Puisqu'on parle des opérateurs sur les chaînes, un autre opérateur très utile pour ton problème est
*.
s = "abc" * 4
print(s) # Affiche abcabcabcabc
Comment adapter ton code
Il suffit de créer en début de programme une variable
s, intiialisée à
""et de remplacer les
s = s + "toto"ou directement
s += "toto").
Le fait qu'il y a ait une chaîne ajoutée en plus avec le paramètre end ne change pas grand chose : print("toto", end="tata") devient juste
s += "toto" + "tata"ou directement
s += "tototata".
Comment j'aurais fait
Dans ton cas, on peut voir ton problème comme le suivant. Notons
nla largeur (bord compris de ton carré).
Si n >= 2, le carré est constitué de :
- Le haut du carré :
n
caractère"x"
, suivi de"\n"
. - Le milieu du carré :
n - 2
lignes, chacune formées du caractère"x"
suivi den - 2
espaces, suivi du caractère"x"
, , suivi de"\n"
. - Le bas du carré :
n
caractère"x"
(suivi éventuellement de"\n"
).
Partant de là construire la chaîne de caractère correspondant à ton carré ne devrait pas poser de problème (si tu utilises habilement
+et
*, cela se fait en une ligne de python, même pas besoin de boucle
for).
Voici à quoi ça pourrait ressembler :
def carre(n, c="x"): return ( ( c * n + "\n" + (c + " " * (n - 2) + c + "\n") * (n - 2) + c * n ) if n >= 2 else c if n == 1 else "" ) for n in [0, 1, 5]: print(carre(n))
Bonne chance