私はPythonのアマチュアです。長い文字列をエンコードして6文字を出力するプログラムを作成しました。
def token (n):
if n < 10:
return chr( ord( '0' ) + (n) )
if n in range (10, 36):
return chr( ord( 'A' ) - 10 + (n))
if n in range (37, 62):
return chr( ord( 'a' ) - 36 + (n))
if n is 62:
return '-'
if n is 63:
return '+'
トークンは数字 (n) を文字に変換します。「-」と「+」を含む大文字と小文字。
def encode (n):
a = n // 1 % 64
b = n // 64 % 64
c = n // 64 ** 2 % 64
d = n // 64 ** 3 % 64
e = n // 64 ** 4 % 64
f = n // 64 ** 5 % 64
return (token(a) + token(b) + token(c) + token(d) + token(e) + token(f))
これがエンコードの残りです。
print(encode(1234567890))
'IBWb91'
繰り返しますが、出力用の 6 文字の順序を作成する方法はありますか?
これは私がこれまでに持っているものです。これは既存の質問から取得しました。
mylist = ['a','b','c','d','e','f',]
myorder = [6,5,4,3,2,1]
mylist = [ mylist[i] for i in myorder]
しかし...それは私にこれを与えます:
IndexError: list index out of range
私がしたいこと:
>>> print(mylist)
['f','e','d','c','b','a']
私はこれにまったく新しいです。助けてください :)