J'ai une chaîne avec une longueur dynamique (S1) que je veux imprimer et je souhaite ajouter une autre chaîne après elle (S2). S2 devrait toujours commencer à une longueur donnée. Dans mon cas, après 21 caractères. Peu importe combien de temps s1 est.
donné à ce code: p> voici ce que je reçois: p>
4 Réponses :
IP: 62.112.10.156 Port: 8150 IP: 51.15.226.30 Port: 8150 IP: 188.165.209.184 Port: 8150
Merci. L'affectation d'une ligne est ce que j'utiliserais également s'il n'y aurait que deux valeurs dont j'ai besoin de la dicte, mais j'ai simplifié cet exemple, j'ai en réalité besoin de plus de valeurs. Mais toujours merci pour cela :-)
@Endogen Si vous pouvez garantir que chaquedict aura les mêmes clés, dans le même ordre, vous pouvez itérer sur des serveurs.Items () pour extraire les paires de la valeur de la clé et construire la chaîne à partir de celle-ci. Vous auriez besoin de fournir un mappage des largeurs de terrain, mais il serait un moyen de gérer plusieurs attributs.
Utilisez le champ d'alignement et de largeur, voir Format-String- Syntaxe
for server in servers:
print ( f"IP: {server['ip']:<16}Port: {server['port']}" )
Eh bien, il semble que ce que vous voulez faire est de plaire la chaîne à 21 caractères, puis appendez l'autre chaîne. En pratique, la "IP:" prend 4 caractères, vous devez donc plafonner "IP" à 17 caractères:
servers = [{"ip": "62.112.10.156", "port": "8150"},
{"ip": "51.15.226.30", "port": "8150"},
{"ip": "188.165.209.184", "port": "8150"}]
for server in servers:
ip = server['ip']
ip = f"IP: {ip.ljust(17)}"
port = f"Port: {server['port']}"
print(f"{ip} {port}")
Ce n'est pas ce que je finirai par utiliser, mais il est en fait plus clair et plus facile à comprendre, puis à la syntaxe de chaîne. Merci pour cela
Vous pouvez essayer: résultat: p>