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.
Mir war nur nicht klar, ob du meinen Edit noch gelesen hattest. (ich wollte doch nur Aufmerksamkeit! )
Ich schlage für Version 2.0, nee, nennen wir sie besser gleich 5.0, einen klassenbasierten Entwurf vor. In ordentlichen Sprachen wie Java wird dies schließlich auch gemacht
EyDu hat geschrieben:Ich schlage für Version 2.0, nee, nennen wir sie besser gleich 5.0, einen klassenbasierten Entwurf vor. In ordentlichen Sprachen wie Java wird dies schließlich auch gemacht
>>> class MyStr(str):
... def __new__(cls, val):
... return str.__new__(cls, val)
... @property
... def contains_number_with_six_digits(self):
... for number in xrange(int(1e5), int(1e6)):
... if str(number) in self:
... return True
... return False
...
>>> foo = MyStr('ein string, in dem eine sechstellige zahl vorkommt: 123456 und noch ein paar woerter')
>>> foo.contains_number_with_six_digits
True
>>> foo = MyStr('ein string, in dem eine sechstellige zahl vorkommt: 1234 und noch ein paar woerter 56')
>>> foo.contains_number_with_six_digits
False
Da muss noch eine abstrakte Klasse NumberChecker, die das Check-Interface implementiert rein, mit einer konkreten Klasse Number6Checker, das dann eine ``check()``-Methode hat, die ein boolean-Objekt zurückgibt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Und für den Fall, dass der OP in Wahrheit gar keine "Zahl", sondern eine "Nummer" meint, die vielleicht ja mit einer 0 beginnt, dann funktioniert die "xrange(1e...)"-Variante immer noch nicht ...
>>> s = 'ein string, in dem eine sechstellige zahl vorkommt: 023456 und noch ein paar woerter'
>>> any(set(s.split()).intersection((str(n).zfill(6) for n in xrange(10**6))))
True
Panke hat geschrieben:Und wenn der OP vielleicht auch Zahlen in Worten meint?
"Einemillionensechshundertzweiundfuffzigtausendfumpfunfuffzig" findest du so nicht.
BlackJack hat geschrieben:@numerix: Wieso ist die siebenstellig? Wurde denn schon etwas zur Basis gesagt, in der die Zahl dargestellt wird!?
Ich habe gelernt, dass man bei Basen != 10 die Zahlen nur als Ziffernfolge benennt, so dass durch die Formulierung wie "Eine Million etc." die Basis festgelegt wäre.
Oder sagst du zu einem binären 10010101 "Zehn Millionen Zehntausend Einhundertundeins"?