Langage PYTHON : Comment EFFACER l'affichage du résultat ?
46 messages
Mise à jour: il y a 6 mois
ArabellaRose
il y a 6 mois
Je suis sûr que chatgpt peut te répondre là dessus
Lukimi
il y a 6 mois
Bonjour !
Je comprends que vous souhaitez modifier votre script pour qu'il mette à jour la valeur affichée sans créer une nouvelle ligne à chaque seconde. Vous pouvez utiliser le caractère de retour chariot `\r` dans la fonction `print` pour revenir au début de la ligne et ainsi écraser le contenu précédent. De plus, en utilisant `end=''` et `flush=True`, vous vous assurez que la sortie est mise à jour immédiatement.
Voici comment vous pouvez modifier votre script :
```python
import time
import sys
i = 0.0
try:
while True:
time.sleep(1)
i += 0.25
# \r ramène le curseur au début de la ligne
print(f"\rValeur : {i:.2f}", end='', flush=True)
except KeyboardInterrupt:
# Permet d'arrêter le script proprement avec Ctrl+C
print("\nScript arrêté.")
sys.exit()
```
- Explications des modifications :
1. **Utilisation de `\r` :**
- Le caractère `\r` (retour chariot) permet de ramener le curseur au début de la ligne actuelle sans ajouter de nouvelle ligne. Cela permet d'écraser le contenu précédemment affiché.
2. **Paramètres `end` et `flush` :**
- `end=''` empêche `print` d'ajouter un saut de ligne à la fin de chaque impression.
- `flush=True` force l'écriture immédiate du contenu dans le terminal, assurant ainsi que la mise à jour s'affiche en temps réel.
3. **Formatage de la valeur :**
- `f"\rValeur : {i:.2f}"` formate la valeur de `i` avec deux décimales pour une meilleure lisibilité.
4. **Gestion des interruptions :**
- L'utilisation d'un bloc `try-except` permet de capturer l'interruption par l'utilisateur (comme Ctrl+C) et d'arrêter le script proprement sans laisser le terminal dans un état incohérent.
- Remarques supplémentaires :
- **Compatibilité sur smartphone :** Assurez-vous que votre terminal ou l'application que vous utilisez sur votre smartphone supporte bien les caractères de contrôle comme `\r`. Certains environnements peuvent ne pas les interpréter correctement.
- **Alternative avec des librairies :** Pour des interfaces plus complexes ou une meilleure gestion de l'affichage, vous pourriez envisager d'utiliser des bibliothèques comme `curses` (bien que son utilisation soit plus avancée et puisse ne pas être adaptée à un environnement mobile).
J'espère que cela résout votre problème ! N'hésitez pas à revenir si vous avez d'autres questions.
Orque_Mignon
il y a 6 mois
Bonjour !Je comprends que vous souhaitez modifier votre script pour qu'il mette à jour la valeur affichée sans créer une nouvelle ligne à chaque seconde. Vous pouvez utiliser le caractère de retour chariot `\r` dans la fonction `print` pour revenir au début de la ligne et ainsi écraser le contenu précédent. De plus, en utilisant `end=''` et `flush=True`, vous vous assurez que la sortie est mise à jour immédiatement.
Voici comment vous pouvez modifier votre script :
```python
import time
import sysi = 0.0
try:
while True:
time.sleep(1)
i += 0.25
# \r ramène le curseur au début de la ligne
print(f"\rValeur : {i:.2f}", end='', flush=True)
except KeyboardInterrupt:
# Permet d'arrêter le script proprement avec Ctrl+C
print("\nScript arrêté.")
sys.exit()
```
- Explications des modifications :
1. **Utilisation de `\r` :**
- Le caractère `\r` (retour chariot) permet de ramener le curseur au début de la ligne actuelle sans ajouter de nouvelle ligne. Cela permet d'écraser le contenu précédemment affiché.2. **Paramètres `end` et `flush` :**
- `end=''` empêche `print` d'ajouter un saut de ligne à la fin de chaque impression.
- `flush=True` force l'écriture immédiate du contenu dans le terminal, assurant ainsi que la mise à jour s'affiche en temps réel.3. **Formatage de la valeur :**
- `f"\rValeur : {i:.2f}"` formate la valeur de `i` avec deux décimales pour une meilleure lisibilité.4. **Gestion des interruptions :**
- L'utilisation d'un bloc `try-except` permet de capturer l'interruption par l'utilisateur (comme Ctrl+C) et d'arrêter le script proprement sans laisser le terminal dans un état incohérent.
- Remarques supplémentaires :
- **Compatibilité sur smartphone :** Assurez-vous que votre terminal ou l'application que vous utilisez sur votre smartphone supporte bien les caractères de contrôle comme `\r`. Certains environnements peuvent ne pas les interpréter correctement.
- **Alternative avec des librairies :** Pour des interfaces plus complexes ou une meilleure gestion de l'affichage, vous pourriez envisager d'utiliser des bibliothèques comme `curses` (bien que son utilisation soit plus avancée et puisse ne pas être adaptée à un environnement mobile).
J'espère que cela résout votre problème ! N'hésitez pas à revenir si vous avez d'autres questions.
nombark
il y a 6 mois
Un clear all
ne marche pas ?
HarryBoss
il y a 6 mois
J'pense pas que tu puisses mais si tu veux que ce soit moins anarchique tu peux remplacer ton print(i) par print(i, end=" ")
ça affichera tout sur une seule ligne
AlhaitamEnjoyer
il y a 6 mois
L'élite.
Pour te répondre, un clear pourrait marcher si t'exécutais sous une console, là sans console ca dépend de l'implémentation de ta merde
HarryBoss
il y a 6 mois
L'élite.Pour te répondre, un clear pourrait marcher si t'exécutais sous une console, là sans console ca dépend de l'implémentation de ta merde
oui sur un truc implémenter sur un site comme ça tu peux pas clear la console je pense, d'où ma technique de tout afficher sur une ligne a la place
Falquiero
il y a 6 mois
Il faut appeller une fonction système.
Tu es sur quel OS. "cls" ou "clear" et tu re-print.
import os
os.system('cls') # on windows
os.system('clear') # on linux / Mac
bedophiIe
il y a 6 mois
HarryBoss
il y a 6 mois
Il faut appeller une fonction système.Tu es sur quel OS. "cls" ou "clear" et tu re-print.
import os os.system('cls') # on windows os.system('clear') # on linux / Mac
ça marchera pas sur ce site
Bluuezilla
il y a 6 mois
tu peux utiliser tqdm si tu préfères avoir une barre horizontal
Orque_Mignon
il y a 6 mois
Si mais là t'es en jail donc t'es limité par l'environnement d'exécution donc faut lire la doc de ton site et je doute que ce soit possible.
Déjà tu dois même pas pouvoir importer un bibliothèque custom donc bon ...
Gilet_Jaune
il y a 6 mois
supprime system32
Falquiero
il y a 6 mois
Un tweak dégueulasse qui "fonctionne" sur mon navigateur :
import time
i = 0.0
while True:
time.sleep(1)
i = i + 0.25
print("\n" * 50),
print(i),
Falquiero
il y a 6 mois
Et le plus simple, si ton "application" est juste de le faire en JS sur un page web statique.
Orque_Mignon
il y a 6 mois
Un tweak dégueulasse qui "fonctionne" sur mon navigateur :
import time i = 0.0 while True: time.sleep(1) i = i + 0.25 print("\n" * 50), print(i),
HarryBoss
il y a 6 mois
Ma technique de juste tout mettre sur une ligne fout toujours le bordel ?
me4far
il y a 6 mois
T'es sur le Terminal ou un IDE comme Thonny, VScode, Pycharm etc ?
Gilet_Jaune
il y a 6 mois
https://www.online-stopwatch.com/cash-clock/
go dans settings
Falquiero
il y a 6 mois
L'auteur https://gray-alligator.static.domains/
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Compteur Simple</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f0f0;
}
#counter {
font-size: 2rem;
color: #333;
}
</style>
</head>
<body>
<div id="counter">0.00</div>
<script>
let count = 0.00;
function updateCounter() {
count += 0.25;
document.getElementById('counter').textContent = count.toFixed(2);
}
setInterval(updateCounter, 1000); // 1000ms = 1 seconde
</script>
</body>
</html>
Orque_Mignon
il y a 6 mois
L'auteur https://gray-alligator.static.domains/<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Compteur Simple</title> <style> body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0; } #counter { font-size: 2rem; color: #333; } </style> </head> <body> <div id="counter">0.00</div> <script> let count = 0.00; function updateCounter() { count += 0.25; document.getElementById('counter').textContent = count.toFixed(2); } setInterval(updateCounter, 1000); // 1000ms = 1 seconde </script> </body> </html>
Gilet_Jaune
il y a 6 mois
Update
il y a 6 mois
https://jsfiddle.net/let i = 0
let increment = 0.25
setInterval(() => {
i += increment;
console.log(i)
}, 1000)
Orque_Mignon
il y a 6 mois
https://www.online-stopwatch.com/cash-clock/go dans settings
Orque_Mignon
il y a 6 mois
https://www.online-stopwatch.com/cash-clock/go dans settings
Falquiero
il y a 6 mois
Vraiment un assisté
https://harlequin-dana-1.tiiny.site/
Juste les centimes par contre (donc faut attendre un peu avant que ça monte à 0.01)
Orque_Mignon
il y a 6 mois
Vraiment un assistéhttps://harlequin-dana-1.tiiny.site/
Juste les centimes par contre (donc faut attendre un peu avant que ça monte à 0.01)
Orque_Mignon
il y a 6 mois