Comment empêcher l'insertion d'une nouvelle ligne dans les fonctions d'entrée de Python ?

Susan Sarandon
Libérer: 2024-10-26 15:50:30
original
858 Les gens l'ont consulté

How to Prevent Newline Insertion in Python's Input Functions?

Comment éviter l'insertion d'une nouvelle ligne dans les fonctions d'entrée

Lors de l'utilisation de la fonction d'entrée en Python, il est souvent souhaitable de l'empêcher d'ajouter automatiquement une nouvelle ligne après la saisie de l'utilisateur. Cela permet un flux plus fluide dans certains scénarios.

Pour y parvenir, de nombreux utilisateurs de Python connaissent la méthode de suppression du caractère de nouvelle ligne dans les instructions d'impression à l'aide d'une virgule finale. Cependant, la même technique ne s'applique pas lorsqu'il s'agit de fonctions d'entrée telles que raw_input dans Python 2.x ou input dans Python 3.x.

Comprendre le problème

Lors de l'utilisation de raw_input (ou input), un caractère de nouvelle ligne (représenté par « n ») est systématiquement ajouté après la saisie de l'utilisateur. Cela peut être problématique dans les situations où l'invite doit suivre la même ligne que l'entrée, comme dans l'exemple suivant :

print "Hello, "
name = raw_input()
print ", how do you do?"
Copier après la connexion

Résultat :

Hello, Tomas
, how do you do?
Copier après la connexion

Résultat souhaité :

Hello, Tomas, how do you do?
Copier après la connexion

Surmonter la limitation

Méthode 1 : Utiliser une approche personnalisée

Comme mentionné par Ferdinand Beyer, il n'est fondamentalement pas possible d'éliminer le caractère de nouvelle ligne directement depuis raw_input ou input. Cependant, il existe une solution de contournement qui implique une approche personnalisée.

En exploitant les séquences de contrôle du terminal ' 33[{}C 33[1A'.format(len(x) y), où x est la longueur de l'utilisateur input et y est la longueur de la chaîne raw_input, il est possible de déplacer le curseur vers la ligne juste avant la saisie de l'entrée.

Méthode 2 : Alternatives aux fonctions d'entrée

Alternativement, il existe d'autres méthodes pour recueillir les entrées des utilisateurs sans rencontrer le problème de nouvelle ligne. L'une de ces méthodes utilise le module getpass :

import getpass

name = getpass.getpass("Hello, ")
print ", how do you do?"
Copier après la connexion

Cette approche affiche l'invite sans nouvelle ligne de fin et renvoie l'entrée directement, évitant ainsi le saut de ligne supplémentaire. Cependant, il désactive également l'écho de l'entrée, ce qui peut ne pas convenir à toutes les situations.

En conclusion, même s'il n'est pas possible d'empêcher raw_input ou input d'ajouter une nouvelle ligne, en utilisant une approche personnalisée avec des séquences de contrôle de terminal ou l'exploration de méthodes de saisie alternatives telles que getpass peut fournir une solution qui correspond à des exigences spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!