![](/img/trans.png)
[英]How to have dedicated variable for multiprocessing worker, which keeps its value between calls?
[英]Variable keeps its value
我再次需要幫助。 問題是,當我調用應添加到變量的函數時,該變量將保持其原始值。
碼:
import random
def christncombat(x,y,z):
x += 1
if x > 26:
x = 1
y += 1
if y > 26:
y = 1
z += 1
if z > 26:
z = 1
x = 1
y = 1
encrypt = {65:90, 66:90, 67:72, 68:78, 69:77, 70:83, 71:87, 72:67, 73:73, 74:89, 75:84,
76:81, 77:69, 78:68, 79:79, 80:66, 81:76, 82:82, 83:70, 84:75, 85:85, 86:86,
87:71, 88:88, 89:74, 90:65}
encrypted = []
r1 = random.randint(1,26)
r2 = random.randint(1,26)
r3 = random.randint(1,26)
security = str(r1) + "a" + "-" + str(r2) + "b" + "-" + str(r3) + "c"
input_en = input("Zadejte text, ktery chcete zasifrovat (pouzivejte velka pismena): ")
for i in range(0,len(input_en)):
coded = input_en[i]
coded = ord(coded)
coded = encrypt[coded]
full = r1 + r2 + r3
coded += full
while(coded > 90):
rekt = coded - 90
coded = 65 + rekt
christncombat(r1,r2,r3)
full1 = r1 + r2 + r3
coded += full1
while(coded > 90):
rekt = coded - 90
coded = 65 + rekt
done = chr(coded)
encrypted.append(done)
print(encrypted)
print("Bezpecnostni kod je",security)
盡管問題可能出在這部分:
def christncombat(x,y,z):
x += 1
if x > 26:
x = 1
y += 1
if y > 26:
y = 1
z += 1
if z > 26:
z = 1
x = 1
y = 1
也許您想從函數中返回值? 您可以將值放在列表中並返回列表:
def christncombat(x,y,z):
x += 1
if x > 26:
x = 1
y += 1
if y > 26:
y = 1
z += 1
if z > 26:
z = 1
x = 1
y = 1
value_list = [x, y, z]
return value_list
現在,您可以在代碼的主要部分中調用該函數:
new_value_list = christncombat(r1,r2,r3)
現在,在您的new_value_list中,您將r1,r2和r3都更改為希望的值。 現在,您可以訪問所有變量:
new_r1 = new_value_list[0]
new_r2 = new_value_list[1]
new_r3 = new_value_list[2]
您需要從函數返回修改后的值,如下所示:
def christncombat(x,y,z):
x += 1
if x > 26:
x = 1
y += 1
if y > 26:
y = 1
z += 1
if z > 26:
z = 1
x = 1
y = 1
return x, y, z
然后,在調用代碼中,您可以捕獲這些返回的值,如下所示:
r1, r2, r3 = christncombat(r1, r2, r3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.