Wie kann man in Python Nummer index machen, also ich will wissen wieviel zahl mehr weniger als 9 zahlen sind?
number = +436762034500
if number < 9:
print("ja")
else:
print("nein")
5 Antworten
Es kann sein dass ich ein paar Syntaxfehler drin habe (habe schon länger nichts mehr mit Python gemacht. Aber ich denke mal der Code müsste wie folgt aussehen:
PS: Ich weiß nicht genau wieso du einen Code für die Zahl 9 brauchst. Schließlich sind alle Ziffern kleiner/gleich 9.
number = +392
higherNums
lowerNums
schwelle = 9
do:
index = number%10
if(index > schwelle):
higherNums++
else:
lowerNums++
number /= 10
while(number / 10 >= 0)
print(lowerNums + " Ziffern sind kleiner als " + schwelle + " ."
print(highterNums + " Ziffern sind größer als " + schwelle + " ."
Mir fällt gerade auf ich habe den Fall vergessen dass die Zahl gleich der Schwellenzahl ist. In dem Fall wird sie momentan einfach zu den kleineren Zahlen gewertet.
Und das Statement im While habe ich auch vertauscht. Sollte sein
while(number > 0)
>>> Anzahlgroß = (lambda Zahl, KleinerGrößer=5 : [int(Zahl2)>KleinerGrößer for Zahl2 in list(str(Zahl))].count(True))
>>> Anzahlgroß(454254)
0
>>> Anzahlgroß(45425487382903847)
6
>>> Anzahlgroß(182347081392349303827549, 2)
17
>>> Anzahlklein = (lambda Zahl, KleinerGrößer=5 : [int(Zahl2)>KleinerGrößer for Zahl2 in list(str(Zahl))].count(False))
>>> Anzahlklein(454254)
6
>>> Anzahlklein(45425487382903847)
11
>>> Anzahlklein(182347081392349303827549, 8)
21
>>>
Vielleicht hilft dir Modulo weiter, das gibt immer den Rest einer Division zurück. Für genaueres wäre eine genauere Beschreibung deines Problems ganz gut.
number = +436762034500
biggerThan9 = 0
smallerThan9 = 0
if number < 9:
smallerThan9 += 1
else:
biggerThan9 += 1
>>> number=1789098756
>>> len(str(number))
10
>>> len([1 for x in str(number) if int(x)<9])
8
So ginge das schmerzlos...
ist doch nur schwer verständlich für einen Laien.
kann schon sein, aber es ist Python.
Soll man etwa nur globale Variablen und keine Klassen verwenden, weil das für Laien leichter verständlich ist?
len([1 for x in str(number) if int(x)<9])
Mein Verbesserungsvorschlag:
sum(x<'9' for x in str(number))
Der Fall x=='–' wird auch hier nicht beachtet, aber wenigstens knallt's bei mir nicht.
Klar ist das eine Option, jedoch ging ich von der Frage des Fragestellers davon aus, dass er gerne verstehen würde wie es funktioniert. Und ich denke einmal deine (sehr schöne Lösung) ist doch nur schwer verständlich für einen Laien.
PS: Echt schön gelöst