Hey,
ich versuche mich ein wenig an Python.
Meine Frage: Ich lese etwas aus und lasse es printen via (~~ ist Persönliche Information) ("printing" ist eine Variable)
for current_~~ in printing:
print(current_~~.ipv4)
Es funktioniert auch, doch ich bekomme anstatt der Ipv4 etwas im Format: [`Ipv4`]
Jetzt... ist es möglich nur den Inhalt also nur die Ipv4 zu printen ohne die "[" und "`" ?
Vielen Dank im Voraus.
Mit freundlichen Grüßen
Denis
Print nur innerhalb [``]
Versuche dich nicht nur ein wenig sonder besser etwas mehr mit Python.
Was für ein Datentyp ist denn [ ] in Python?
Und was für ein Datentyp ist etwas in einfachen oder doppelten Anführungszeichen?
Wenn du das verstanden hast, kennst du auch die Antwort auf deine Frage.
Was für ein Datentyp ist denn [ ] in Python?
Und was für ein Datentyp ist etwas in einfachen oder doppelten Anführungszeichen?
Wenn du das verstanden hast, kennst du auch die Antwort auf deine Frage.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Bitte zeige vollständig lauffähigen Code, der den Fehler zeigt und eine genaue Beschreibung was du statt dessen willst.
Wenn ich raten müsste hast du eine Liste. Weiter möchtest du denn die Elemente der Liste ausgeben haben?
Wenn ich raten müsste hast du eine Liste. Weiter möchtest du denn die Elemente der Liste ausgeben haben?
-
- User
- Beiträge: 9
- Registriert: Freitag 11. September 2020, 16:10
Hey,ThomasL hat geschrieben: ↑Freitag 11. September 2020, 20:17 Versuche dich nicht nur ein wenig sonder besser etwas mehr mit Python.
Was für ein Datentyp ist denn [ ] in Python?
Und was für ein Datentyp ist etwas in einfachen oder doppelten Anführungszeichen?
Wenn du das verstanden hast, kennst du auch die Antwort auf deine Frage.
danke für die Hilfe habe es mit einem einfachen * vor der Variable gelöst, habe jedoch noch ein Problem.
~~~ sind private Infos (Namen)
Code: Alles auswählen
client = ~~~Client("Hier drin steht ein API Key, welchen ich hier logischerweise nicht zeige")
def createServer():
client.~~~~.instance_create('~~',
region='us-west',
lable='',
image='~~~~')
def printIPs():
printing = client.~~~.instances()
for current_~~~ in printing:
print(*current_~~~.ipv4 +"Port unwichtig") <-------- Das Problem
def deleteIps():
linodes = client.~~~.instances()
first_~~~ = ~~~[0]
first_~~~.delete()
def main():
while True:
select = input(Nicht wichtig)
if select == "1":
for each in range(int(input("How many: ")),0,-1):
createServer()
print(each)
if select == "2":
printIPs()
main()
Vielen dank im Voraus
Mit freundlichen Grüßen
Denis
Private Infos haben in einem Programm eigentlich nichts zu suchen. Ein Programm sollte ja allgemein funktionieren. So ist der Code einfach nur kaputt. Und macht es den Helfenden nur schwierig.
Bitte Fehlermeldungen mit kompletten Traceback, dass man nicht raten muss, wo der Fehler auftritt.
Bitte Fehlermeldungen mit kompletten Traceback, dass man nicht raten muss, wo der Fehler auftritt.
-
- User
- Beiträge: 9
- Registriert: Freitag 11. September 2020, 16:10
Leider kann ich das nicht machen, um den Code funktionieren zu lassen muss ich einen API key benutzen und ich möchte diesen logischerweise nicht leaken.Sirius3 hat geschrieben: ↑Sonntag 13. September 2020, 21:39 Private Infos haben in einem Programm eigentlich nichts zu suchen. Ein Programm sollte ja allgemein funktionieren. So ist der Code einfach nur kaputt. Und macht es den Helfenden nur schwierig.
Bitte Fehlermeldungen mit kompletten Traceback, dass man nicht raten muss, wo der Fehler auftritt.
Ich weiß zwar nicht wie ich mein Problem löse doch ich denke ich hab es verständlich beschrieben. Die Stelle an dem der Fehler is, ist markiert. Hier nochmal eine Zusammenfassung: Ich printe Ips aus einer Liste und möchte einen Port beim Printen dranhängen doch mit einem einfachen + und dann den Anführungsstrichen geht es nicht da ich sonst den Oben genannten Fehler bekomme.
Ps: mit privaten Infos ist der Provider sowie das Image gemeint
Mit freundlichen Grüßen
Denis
Ich will ja auch nicht, dass Du hier Deinen API-Key verrätst, aber ob eine Klasse nun SupergeheimerClient oder einfach nur Client heißt, ist für das Problem egal.
Und was an linux_node so furchtbar privat sein soll, dass man es in der einen Variante ~~~ muß, ist mir ein Rätsel. Genauso warum first_~~~ nicht einfach nur first_node heißt, sondern first_mein_passwort_heißt_12345.
Funktionen schreibt man wie Variablen klein_mit_unterstrich. Alles was eine Funktion braucht, muß sie über ihre Argumente bekommen, client sollte in main erzeugt werden und an die Funktionen übergeben werden.
Irgendwo mitten in einer for-Schleifen-Initialisierung ein input ist sehr überraschend, und Überraschungen mögen Programmierer nicht.
Ich hoffe, Du hast jetzt verstanden, dass man Code am besten so schreibt, dass supergeheime Sachen nicht in Variablennamen stecken.
Zum Problem: schau Dir das Kapitel über Stringformatierung in der Dokumentation an. Sowas löst man nicht mit *, sondern baut sich einen passenden String.
Es ist komisch, eine IP-Addresse als Liste mit 4 Strings zu speichern. Üblicherweise wird die so dargestellt: "168.54.23.12".
Aber da Du nicht verraten willst, welchen Client Du da verwendest, kann man da auch nicht weiter helfen.
Und was an linux_node so furchtbar privat sein soll, dass man es in der einen Variante ~~~ muß, ist mir ein Rätsel. Genauso warum first_~~~ nicht einfach nur first_node heißt, sondern first_mein_passwort_heißt_12345.
Funktionen schreibt man wie Variablen klein_mit_unterstrich. Alles was eine Funktion braucht, muß sie über ihre Argumente bekommen, client sollte in main erzeugt werden und an die Funktionen übergeben werden.
Irgendwo mitten in einer for-Schleifen-Initialisierung ein input ist sehr überraschend, und Überraschungen mögen Programmierer nicht.
Code: Alles auswählen
API_KEY = "geheim"
def create_server(client):
client.supergeheime.instance_create('~~',
region='us-west',
lable='',
image='~~~~')
return client
def print_ips(client):
addresses = client.vielleicht_das_selbe_von_oben_oder_auch_nicht.instances()
for address in addresses:
# Und hier wäre es wichtig, den Typ oder Inhalt von ipv4 zu kennen.
print(*address.ipv4 +"Port unwichtig")
def delete_ips(client):
linux_nodes = client.immer_noch_supergeheim_oder_vielleicht_das_selbe_wie_in_der_anderen_funktion.instances()
first_node = linux_nodes[0]
first_node.delete()
def main():
client = SuperdupergeheimerClient(API_KEY)
while True:
select = input("1: create server, 2: print IPs")
if select == "1":
number_of_clients = int(input("How many: "))
for each in reversed(range(1, number_of_clients + 1)):
create_server(client)
print(each)
elif select == "2":
print_ips(client)
if __name__ == '__main__':
main()
Zum Problem: schau Dir das Kapitel über Stringformatierung in der Dokumentation an. Sowas löst man nicht mit *, sondern baut sich einen passenden String.
Es ist komisch, eine IP-Addresse als Liste mit 4 Strings zu speichern. Üblicherweise wird die so dargestellt: "168.54.23.12".
Aber da Du nicht verraten willst, welchen Client Du da verwendest, kann man da auch nicht weiter helfen.
- __blackjack__
- User
- Beiträge: 13117
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Sirius3: Ich vermute mal `addresses` ist falsch benannt und sollte `instances` heissen, denn das eine `instance` dann mehr als eine IPv4-Adresse haben kann, macht irgendwie schon wieder Sinn.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 9
- Registriert: Freitag 11. September 2020, 16:10
Danke erstmal für den Lacher .Sirius3 hat geschrieben: ↑Montag 14. September 2020, 06:40 Ich will ja auch nicht, dass Du hier Deinen API-Key verrätst, aber ob eine Klasse nun SupergeheimerClient oder einfach nur Client heißt, ist für das Problem egal.
Und was an linux_node so furchtbar privat sein soll, dass man es in der einen Variante ~~~ muß, ist mir ein Rätsel. Genauso warum first_~~~ nicht einfach nur first_node heißt, sondern first_mein_passwort_heißt_12345.
Funktionen schreibt man wie Variablen klein_mit_unterstrich. Alles was eine Funktion braucht, muß sie über ihre Argumente bekommen, client sollte in main erzeugt werden und an die Funktionen übergeben werden.
Irgendwo mitten in einer for-Schleifen-Initialisierung ein input ist sehr überraschend, und Überraschungen mögen Programmierer nicht.Ich hoffe, Du hast jetzt verstanden, dass man Code am besten so schreibt, dass supergeheime Sachen nicht in Variablennamen stecken.Code: Alles auswählen
API_KEY = "geheim" def create_server(client): client.supergeheime.instance_create('~~', region='us-west', lable='', image='~~~~') return client def print_ips(client): addresses = client.vielleicht_das_selbe_von_oben_oder_auch_nicht.instances() for address in addresses: # Und hier wäre es wichtig, den Typ oder Inhalt von ipv4 zu kennen. print(*address.ipv4 +"Port unwichtig") def delete_ips(client): linux_nodes = client.immer_noch_supergeheim_oder_vielleicht_das_selbe_wie_in_der_anderen_funktion.instances() first_node = linux_nodes[0] first_node.delete() def main(): client = SuperdupergeheimerClient(API_KEY) while True: select = input("1: create server, 2: print IPs") if select == "1": number_of_clients = int(input("How many: ")) for each in reversed(range(1, number_of_clients + 1)): create_server(client) print(each) elif select == "2": print_ips(client) if __name__ == '__main__': main()
Zum Problem: schau Dir das Kapitel über Stringformatierung in der Dokumentation an. Sowas löst man nicht mit *, sondern baut sich einen passenden String.
Es ist komisch, eine IP-Addresse als Liste mit 4 Strings zu speichern. Üblicherweise wird die so dargestellt: "168.54.23.12".
Aber da Du nicht verraten willst, welchen Client Du da verwendest, kann man da auch nicht weiter helfen.
Und ja die IPS setzt der Client in eine Liste welche ich dann Printe, ipformat: „ 168.54.23.12".
Ich möchte also die Inhalte aus der Liste Printen und hinter jede Ip den Port anfügen.
-
- User
- Beiträge: 9
- Registriert: Freitag 11. September 2020, 16:10
Nein Adresses ist falsch geschrieben, ist aber die richtige Variable.__blackjack__ hat geschrieben: ↑Montag 14. September 2020, 07:16 @Sirius3: Ich vermute mal `addresses` ist falsch benannt und sollte `instances` heissen, denn das eine `instance` dann mehr als eine IPv4-Adresse haben kann, macht irgendwie schon wieder Sinn.
Oder hab ich dich falsch verstanden?
-
- User
- Beiträge: 9
- Registriert: Freitag 11. September 2020, 16:10
Bekomme den schon oben genannten Fehler: TypeError: can only concatenate list (not "str") to list.
Eine Google suche hat mir nicht weiter geholfen weil meine gefundenen Ergebnisse nicht meinem Problem ähnelten, da der Fehler einen sehr breiten Raum hat.
Mit freundlichen Grüßen
Denis
Ja, weil du versuchst eine Liste mit "+" mit einem String zu verketten und dann auszugeben. Schau dir an wie man eine Liste in einen String umwandelt und schau dir Stringformatierung bzw. f-Strings an.
Die Fehlermeldung sagt doch klar wo das Problem ist.
Die Fehlermeldung sagt doch klar wo das Problem ist.
-
- User
- Beiträge: 9
- Registriert: Freitag 11. September 2020, 16:10
Danke schonmal im Voraus, hab grade nicht die Möglichkeit nach zu gucken.Jankie hat geschrieben: ↑Montag 14. September 2020, 13:08 Ja, weil du versuchst eine Liste mit "+" mit einem String zu verketten und dann auszugeben. Schau dir an wie man eine Liste in einen String umwandelt und schau dir Stringformatierung bzw. f-Strings an.
Die Fehlermeldung sagt doch klar wo das Problem ist.
Ich bin wie gesagt noch nicht so erfahren, habe de Fahler das erste mal und wusste nicht was der Fehler bedeutet. Wie gesagt, danke.
Mit freundlichen Grüßen
Denis
-
- User
- Beiträge: 9
- Registriert: Freitag 11. September 2020, 16:10
Ja vielen Dank nochmal an@ThomasL und @Jankie für die Hilfe auch wenn es ein wenig verwirrend war.Habe jetzt alles im Griff. Natürlich auch danke an alle anderen.
Noch eine letzte Frage wie schließe ich den Thread oder soll ich einfach abwarten.
Mit freundlichen Grüßen
Denis
Noch eine letzte Frage wie schließe ich den Thread oder soll ich einfach abwarten.
Mit freundlichen Grüßen
Denis