クロスカントリー:
私は、A001とA999までのA002、A003を4桁の数字を開始生成しています16個の文字の英数字のパスキーを作成しています。それはA999まで行くたら、Bと数字にアルファベット意志の自動増加は再び001で開始し、同じプロセスは、Z999まで行きます。いったんAZシリーズはオーバー、それはAA01で始まるというようになります。どのようにPythonでこのことを行うには?私はPythonで新しいですように私は自分自身でそれを試してみましたが、またいくつかの例を試してみましたが、私は文字の増分を作ることができませんので。任意のアイデアや考えをいただければ幸いです。
どうもありがとう
rec=0
new_list16 = []
def autoIncrement():
global rec
first = 'A'
i = chr(ord(first))
new_list16.append(i)
while True:
pStart = 1 #adjust start value, if req'd
pInterval = 1 #adjust interval value, if req'd
if (rec == 0):
rec += pStart
else:
rec = rec + pInterval
return str(rec).zfill(3)
#print(autoIncrement())
new_list16.append(autoIncrement())
print(*new_list16, sep = '')
tobias_k:
行くA999
のB001
代わりにすることはB000
、本当に少しアップ物事を台無し、あなたはまだ使用することができ、これを AZ部分のために、と数字のための簡単なモジュロ演算。
def excel_format(num):
# see https://stackoverflow.com/a/182924/1639625
res = ""
while num:
mod = (num - 1) % 26
res = chr(65 + mod) + res
num = (num - mod) // 26
return res
def full_format(num, d=3):
chars = num // (10**d-1) + 1 # this becomes A..ZZZ
digit = num % (10**d-1) + 1 # this becomes 001..999
return excel_format(chars) + "{:0{}d}".format(digit, d)
for i in range(10000):
print(i, full_format(i, d=2))
数値部分の桁数はオプションで制御されるd
パラメータ。私が使用します2
デモンストレーションの目的ではなく、3
同じようにうまく動作します。
0 A01
...
98 A99
99 B01
...
2573 Z99
2574 AA01
...
9998 CW99
9999 CX01