Position einer string

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Sony23
User
Beiträge: 5
Registriert: Samstag 7. November 2015, 13:39

:?: Hallo Python Forum,
meine Frage ist, wie kann ich über einen Baustein(Nebenprogramm) auf die einzelnen Strings im Hauptprogramm zugreifen, und sie etwas zuweisen, damit ich mit ihnen weiterarbeiten kann.
z.B. soll ('D01111011') string1 zugewiesen werden

Danke schonmal




#Nebenprogramm
def polyadisch():



#Hauptprogramm
def main():
print(polyadisch('D01111011'))
print(polyadisch('O173'))
print(polyadisch('H7B'))
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

indem du der Funktion (den Begriff "Nebenproramm" gibt es nicht) die Werte beim Funktionsaufruf übergibst.

Das sind aber absolute Basics, die in jedem Python-Tutorial ziemlich am Anfang vorkommen. Siehe z.B. https://docs.python.org/3.4/tutorial/co ... -functions und folgende Abschnitte.

Gruß, noisefloor
Benutzeravatar
Sony23
User
Beiträge: 5
Registriert: Samstag 7. November 2015, 13:39

:?: Danke, aber dann tritt ein weiteres Problem auf. Python gibt dann folgendes Aus:


Dezimal
None
Oktal
None
Hexal
None

wieso kommt dreimal "None"?
____________________________________________________________________________
def polyadisch(n):
if n[0]=="D":
print("Dezimal")
elif n[0]=="O":
print("Oktal")
elif n[0]=="H":
print("Hexal")


def main():
print(polyadisch('D01111011'))
print(polyadisch('O173'))
print(polyadisch('H7B'))

main()
_______________________________________________________________________________
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Was ist den der Rückgabewert von polyadisch?
Benutzeravatar
Sony23
User
Beiträge: 5
Registriert: Samstag 7. November 2015, 13:39

Der Rückgabewert ist Entweder "Dezimal", "Oktal" oder "Hexal", hängt vom Anfangsbuchstaben der strings ab
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Bist Du sicher, dass das der Rückgabewert ist? Oder gibst Du das in der Funktion ``polyadisch`` nur aus und in Wirklichkeit liefert die nix zurück? Letzteres würde die Ausgabe nämlich erklären...

Edit: Ah... Du hast sie ja oben noch gepostet. Die Funktion gibt also nur etwas aus, liefert aber *nichts* zurück. Und genau das geben dann eben die ``print``-Aufrufe in Deiner ``main``-Funktion aus :!:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

deine Funktion hat kein `return ...` drin. Das ist unter Python gleichbedeutend mit `return None`. Heißt: dein Programm macht genau das, was du programmiert hast :-)

Du möchtest vielleicht in der polyadisch-Funktion lieber ein `return`statt ein print-Einbauen. BTW: return-Werte gehören auch zu den Basics... Vielleicht solltest du das Python-Tutorial mal ganz lesen und nicht nur die Sektion, in der es um dein aktues Problem geht.

Gruß, noisefloor
Antworten