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 語句來設定比較 idx 和 r_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 中。繼續使用變數 index 和 str(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
結論
我們討論瞭解決問題陳述的各種方法。索引對映密碼通常用於密碼學和計算機科學領域。術語“密碼”將值定義為索引以查詢特定字串。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP