Python 中的索引對映密碼


索引對映密碼是透過傳遞整數字符串來獲取特定字串來定義的。在 Python 中,我們有一些內建函式,例如 str()、len()、join() 和 int(),將用於根據索引對映密碼解決問題。

讓我們舉個例子來理解這一點

給定的字串為:

my_str = “Hyderabad”

給定的索引為:

idx = 101456

最終結果為 yHyrab

語法

以下語法在示例中使用:

str()

這是 Python 中的一個內建函式,它接受任何值將其轉換為字串。

len()

這是 Python 中的一個內建方法,它返回物件的長度。

join()

join() 是 Python 中的一個內建函式,用於連線可迭代元素。它還按順序組合每個元素。

int()

內建函式 int 將數字或字串轉換為整數形式。

使用 for 迴圈

程式使用 for 迴圈迭代原始字串的長度,並將索引值初始化為列印特定字串。

示例

在以下示例中,我們將從定義一個名為 idx_map_cypher() 的函式開始程式,該函式接受兩個引數:r_str 和 index。這兩個引數在函式呼叫期間接收值,它被稱為遞迴函式。變數 result 透過一個空字串初始化值,該字串將根據條件和給定的索引值儲存新的特定字串。接下來,使用 for 迴圈,其中變數 i 迭代 str(index)。然後應用 if 語句來設定比較 idxr_str 的條件,藉助於 < 運算子,並使用 += 運算子,它將形成新字串並返回結果。現在開始在變數 my_str 中建立原始字串,並將值設定為儲存在變數 idx 中。然後使用函式呼叫並將其儲存在變數 res 中。最後,我們藉助一些變數(例如:my_str、index 和 res)列印格式化輸出。

def idx_map_cypher(r_str, index):
    result = ""
    for i in str(index):
        index = int(i)
        if index < len(r_str):
            result += r_str[index]
    return result
# Create the string
my_str = "Tutorialspoint"
# Set the index value
index = 6875
res = idx_map_cypher(my_str, index)
print("The original string:", my_str, "\nThe index value:", index, "\nString printing based on the index:", res)

輸出

The original string: Tutorialspoint
The index value: 6875 
String printing based on the index: asli

使用列表推導式

該程式使用列表推導式,其中將使用一個名為 join 的方法來根據給定的索引值組合特定的字串,這有助於構建索引對映密碼。

示例

在以下示例中,從在變數 my_str 中建立輸入字串並顯示變數開始程式。接下來,初始化名為 index 的變數以儲存隨機整數的值,該值根據索引值指定原始字串。現在它將建立 列表推導式,其中使用索引透過 for 迴圈中的值對 my_str 中的字元進行索引,並將這些過程儲存在變數 res 中。繼續使用變數 indexstr(res) 顯示結果。

# Create the string
my_str = "BROWSER"
print("Original string: " + my_str)
# Create the index
index = "4154"
# list comprehension
res = ''.join([my_str[int(i)] for i in index])
# Display the result
print("The index value:", index, "\nstring is", str(res))

輸出

Original string: BROWSER
The index value: 4154 
string is SRES

使用反向索引對映密碼

該程式使用反向索引,這意味著如果變數 index 指定任何整數值,它將以反向順序返回結果。例如:

輸入

my_str = “PLOT”
index = 12

輸出

OL

解釋

輸入字串初始化在變數 my_str 中,而 index 變數將值設定為 12。為了反轉索引,它將使用一些條件並且可以以反向形式列印索引字串。

示例

在以下示例中,我們將從使用一個名為 rev_index_map_cypher 的遞迴函式開始程式,該函式接受兩個引數:r_str 和 index,它們將在函式呼叫期間獲取值。然後將空字串儲存在變數 result 中,該變數將根據反向索引儲存特定字串。現在使用 for 迴圈迭代字串索引值及其切片。繼續在變數 my_str 中建立原始字串,並初始化名為 index 的變數以設定整數值。然後使用函式呼叫並將其儲存在變數 res 中並列印結果。

def rev_index_map_cypher(r_str, index):
    result = ""
    for i in str(index)[::-1]:
        idx = int(i)
        if idx < len(r_str):
            result += r_str[idx]
    return result
# Create the string 
my_str = "INTERSTELLAR"
# Set the index value
index = 7455
res = rev_index_map_cypher(my_str, index)
print("The original string:", my_str, "\nThe index value:", index, "\nString printing based on index:", res)

輸出

The original string: INTERSTELLAR 
The index value: 7455 
String printing based on the index: SSRE

結論

我們討論瞭解決問題陳述的各種方法。索引對映密碼通常用於密碼學和計算機科學領域。術語“密碼”將值定義為索引以查詢特定字串。

更新於: 2023年8月14日

262 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.