2022年8月21日 星期日

Python a065: 提款卡密碼

a065: 提款卡密碼 

他的密碼有 6 位數,所以他寫下了 7 個大寫字母,相鄰的每兩個字母間的「距離」就依序代表密碼中的一位數。所謂「距離」指的是從較「小」的字母要數幾個字母才能數到較「大」字母。字母的大小則是依其順序而定,越後面的字母越「大」。

假設文文所寫的 7 個字母是 POKEMON,那麼密碼的第一位數就是字母 P 和 O 的「距離」,由於 P 就是 O 的下一個字母,因此,從 O 開始只要往下數一個字母就是 P 了,所以密碼的第一位數就是 1。密碼的第二位數則是字母 O 和 K 的「距離」,從 K 開始,往下數 4 個字母 (L, M, N, O) 就到了 O,所以第二位數是 4,以此類推。因此,POKEMON 所代表的密碼便是 146821。

噓!你千萬別把這個密秘告訴別人哦,要不然文文的存款就不保了。



# Generate UPPERCASE Mapping

a2z = dict ([(chr(i+64),i)  for i in range(1,27)])

# Generates :

# {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10,

# 'K': 11, 'L': 12, 'M': 13, 'N': 14, 'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19,

# 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}


print (a2z)

# print (abs(a2z.get('O') - a2z.get('K')))

print ('a065: 提款卡密碼')

pw=['']

while True:

    try:

        pw = list(input('輸入含有 7 個相連的大寫英文字母。, (q 或 Q為結束)  --> '))

        if pw[0] == 'q' or pw[0] == 'Q':

            print('程式結束')

            break

    except:

         print ("Invalid input 不合法輸入")

         continue

    print (pw)

    s=''

    for i in range (len(pw)-1):

        a=int(a2z.get(pw[i]))

        print(a,end='-')

        b=int(a2z.get(pw[i+1]))

        print(b,end='-')

        print(abs(a-b))

        s=s+str(abs(a-b))

    print('文文的提款卡密碼-->',s)

        


>>> %Run a065.py

{'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14, 'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}

a065: 提款卡密碼

輸入含有 7 個相連的大寫英文字母。, (q 或 Q為結束)  --> POKEMON

['P', 'O', 'K', 'E', 'M', 'O', 'N']

16-15-1

15-11-4

11-5-6

5-13-8

13-15-2

15-14-1

文文的提款卡密碼--> 146821

輸入含有 7 個相連的大寫英文字母。, (q 或 Q為結束)  --> TYPHOON

['T', 'Y', 'P', 'H', 'O', 'O', 'N']

20-25-5

25-16-9

16-8-8

8-15-7

15-15-0

15-14-1

文文的提款卡密碼--> 598701

輸入含有 7 個相連的大寫英文字母。, (q 或 Q為結束)  --> q

程式結束

>>> 

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...