Hallo zusammen,
ich hab ein Problem und komm nicht weiter - hab auch schon gesucht aber nichts brauchbares gefunden. Darum hoffe ich auf eure Hilfe.
Ich bräuchte eine Stringausgabe in folgendem Format:
N49 51.234 E011 45.678
Von Nord und Ost sollen die letzten 4 Stellen später mal berechnet werden können
Und hier mal der Code:
nord=1.234
ost=5.678
ziel=("N49 51.234 E011 45.678")
kord=("N49 5"),nord," E011 4",ost,
print (ziel)
print (kord)
Bin noch blutiger Anfänger wie ihr seht, hoff ihr helft mir weiter. Bin auch schon für Stichworte zur Selbsthilfe dankbar.
Viele Grüße
Wolfgang
String in das gewünschte Format bringen
Mir ist nicht klar, was Du machen willst. Verstehst Du folgenden Quellcode?
Ich würde erwarten, dass Du die Ausgabe von einer if-else-Entscheidung abhängig machst; mich wundert, dass die Koordinaten-Angaben "N49 5" fest und nur die nachfolgenden Stellen variabel sein sollen, aber so etwas ist auch nichts, womit ich mich befasse.
Code: Alles auswählen
nord = 1.234
ost = 5.678
ziel = 'ziel=("N49 5{} E011 4{}")'
print(ziel.format(nord, ost))
"""
Ausgabe:
>>>
ziel=("N49 51.234 E011 45.678")
"""
Hallo pixewakb,
vielen Dank für deine schnelle Antwort, ich bräuchte den String real gesäubert von den Leerstellen, Anführungszeichen. Dein Quellcode ändert nur die Darstellung auf dem Bildschirm. Trotzdem 1000 mal Danke.
vielen Dank für deine schnelle Antwort, ich bräuchte den String real gesäubert von den Leerstellen, Anführungszeichen. Dein Quellcode ändert nur die Darstellung auf dem Bildschirm. Trotzdem 1000 mal Danke.
Formulier doch mal in Pseudocode, was dein Programm machen soll. Das wird sonst nichts , z. B.
1.) Eingabe des Wertes in folgender Form
2.) Ändern des Formats von "..." nach "..." und zwar bleibt "..." immer gleich und "..." wird geändert.
3.) Folgende Sachen des Eingabewerts werden bei 2.) zusätzlich geändert
4.) Ausgabe auf dem Bildschirm
5.) Speichern des Wertes in einer neuen Variable
Halt nur kleinschrittiger.
1.) Eingabe des Wertes in folgender Form
2.) Ändern des Formats von "..." nach "..." und zwar bleibt "..." immer gleich und "..." wird geändert.
3.) Folgende Sachen des Eingabewerts werden bei 2.) zusätzlich geändert
4.) Ausgabe auf dem Bildschirm
5.) Speichern des Wertes in einer neuen Variable
Halt nur kleinschrittiger.
Nur speichern ist kein Problem:Konsole:
Code: Alles auswählen
nord = 1.234
ost = 5.678
ziel = 'N49 5{} E011 4{}'
neuer_wert = ziel.format(nord, ost)
Code: Alles auswählen
>>> neuer_wert
'N49 51.234 E011 45.678'
Super, damit könnte es funktionieren. Werde wieder Berichten ob es funktioniert hat.
Der Code wird zum Auffinden eines Geocaches benötigt. Es ist (vermutlich) eine MD5 Verschlüsselung -bekannt ist nur das Ergebis- und darum nur über BruteForce zu knacken.
Ich hab vor die möglichen Nord und Ost Koordinaten in einer Schleife laufen zu lassen und die beiden Ergebnisse miteinander zu vergleichen.
Viele Grüße
Wolfgang
Der Code wird zum Auffinden eines Geocaches benötigt. Es ist (vermutlich) eine MD5 Verschlüsselung -bekannt ist nur das Ergebis- und darum nur über BruteForce zu knacken.
Ich hab vor die möglichen Nord und Ost Koordinaten in einer Schleife laufen zu lassen und die beiden Ergebnisse miteinander zu vergleichen.
Viele Grüße
Wolfgang
Prima, hat geklappt: Ich hab jetzt meine Koordinaten.Nochmals meinen herzlichen Dank
Was mir noch etwas Kopfzerbrechen gemacht hatte war die Zählerschleife. Das Programm kappte mir immer die Nullen hinter der letzten Zahl >0
Nach etwas Versuchen hab ich eine Möglichkeit gefunden:
Wäre es auch einfacher gegangen?
Was mir noch etwas Kopfzerbrechen gemacht hatte war die Zählerschleife. Das Programm kappte mir immer die Nullen hinter der letzten Zahl >0
Nach etwas Versuchen hab ich eine Möglichkeit gefunden:
Code: Alles auswählen
n=0
o=0
while n<9999:
o=o+1
ost=o/1000+0.0001
if o==9999: o=0
if o==0: n=n+1
nord=n/1000+0.0001
nord=("%5.3f"%(nord))
ost=("%5.3f"%(ost))
ziel=("N48 0{} E009 4{}")
gzahl = ziel.format(nord, ost)
print (gzahl)
Zuletzt geändert von Anonymous am Sonntag 10. Januar 2016, 22:39, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
@slowi66: Es wäre lesbarer gegangen. Mit weniger überflüssigen Klammern. Mit weniger Zwischenergebnissen. Mit nur einer Art Werte in Zeichenketten zu formatieren. Mit zwei Schleifen statt die umständlich zu einer ``while``-Schleife zusammenzustutzen. Ohne das zuweisen von verschiedenen Typen an die gleichen Namen. Vielleicht mit besseren Namen.
Code: Alles auswählen
def main():
for nord in range(0, 10000):
for ost in range(0, 10000):
print(
'N48 0{0:5.3f} E009 4{1:5.3f}'.format(nord / 1000, ost / 1000)
)
if __name__ == '__main__':
main()