Ich habe mir Qiitas Trendseite in meiner üblichen Routine angesehen und einen Artikel wie diesen gesehen!
In Anbetracht der Antwort von Conner Davis: "Drucken Sie Zahlen von 1 bis 100, ohne sich zu wiederholen, zu rekursieren oder zu wechseln." https://qiita.com/xtetsuji/items/19d07c629852876da401
Nein nein Nein
Ist es nicht zu interessant und erstaunlich, damit eine Zahl von 1 bis 100 zu bekommen?
Obwohl es in dem Artikel in Perl und Ruby reproduziert wird, scheint es, dass es nicht in Python reproduziert wird, das ich normalerweise benutze, also habe ich es versucht.
make_num.py
from decimal import *
import re
getcontext().prec = 298
data = Decimal(1000) / Decimal(999**2) #Berechnungsteil
data = (str(data).split(".")[1])
print(re.findall(r'...', data)) #Teilt+Ausgabeteil
@shiracamus @ Louisa0616 Der Berechnungsteil und der Teilungsteil wurden gemäß den Vorschlägen der beiden Personen geändert. ↓ Vor dem Wechsel data = Decimal("1000")/Decimal(str(999**2)) print(re.split('(...)',data)[1::2])
Bei normaler Python-Division ist das Ergebnis ein Float, und es ist nicht möglich, bis zu 300 Stellen auszugeben. Daher wird die Dezimalbibliothek verwendet, um bis zur angegebenen Anzahl von Stellen auszugeben. Da die Berechnungsergebnisse wie 0,001002003 ... zusammenkleben, verwende ich einen regulären Ausdruck, um sie zu trennen.
Die Ausgabe sieht folgendermaßen aus:
$ python make_num.py
['001', '002', '003', '004', '005', '006', '007', '008', '009', '010',
'011', '012', '013', '014', '015', '016', '017', '018', '019', '020',
'021', '022', '023', '024', '025', '026', '027', '028', '029', '030',
'031', '032', '033', '034', '035', '036', '037', '038', '039', '040',
'041', '042', '043', '044', '045', '046', '047', '048', '049', '050',
'051', '052', '053', '054', '055', '056', '057', '058', '059', '060',
'061', '062', '063', '064', '065', '066', '067', '068', '069', '070',
'071', '072', '073', '074', '075', '076', '077', '078', '079', '080',
'081', '082', '083', '084', '085', '086', '087', '088', '089', '090',
'091', '092', '093', '094', '095', '096', '097', '098', '099', '100']
Ich kann nicht vorhersagen, wo es in Zukunft verwendet wird, aber die Idee, Zahlen von 1 bis 100 anzeigen zu können, ohne die for-Anweisung zu verwenden, war interessant.
Referenzen
- https://techacademy.jp/magazine/19130
- https://kaworu.jpn.org/python/Python%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%82%922%E6%96%87%E5%AD%97%E3%81%9A%E3%81%A4%E5%88%86%E5%89%B2%E3%81%99%E3%82%8B
Recommended Posts