2017-01-16 44 views
-1

我開始編寫一個程序,使字母表中的所有字母都可以在符號和「編碼」中進行轉換。如何讓所有的隨機字符串不同? [Python]

import random 

char = ("@", "#", "$", "%", "&", "*", "-", "¿", "=", "?", "~", "§", "!", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "£", "º", "°") 

a = random.choice(char) 
b = random.choice(char) 
c = random.choice(char) 
d = random.choice(char) 
e = random.choice(char) 
f = random.choice(char) 
g = random.choice(char) 
h = random.choice(char) 
i = random.choice(char) 
j = random.choice(char) 
k = random.choice(char) 
l = random.choice(char) 
m = random.choice(char) 
n = random.choice(char) 
o = random.choice(char) 
p = random.choice(char) 
q = random.choice(char) 
r = random.choice(char) 
s = random.choice(char) 
t = random.choice(char) 
u = random.choice(char) 
v = random.choice(char) 
w = random.choice(char) 
x = random.choice(char) 
y = random.choice(char) 
z = random.choice(char) 

print a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z 

我該如何讓每一個字母都有它自己的符號而不是重複? 有些輸出我:

°10?¿[email protected]&=2784£- 

°¿~°°?¿£%!2~$270!5º%[email protected]*1º 

[email protected]&~0£!896~!7?$0-£8461-¿- 

回答

3

使用random.shuffle(),不分配給26個獨立變量:

import random 

char = list(u"@#$%&*-¿=?~§!1234567890£º°") 
random.shuffle(char) 

print(u''.join(char)) 

這裏char是一個(隨機洗牌)列表,該指數可以用來代替使用單獨的變量。因此在列表中的索引0處找到a

我對字符做了一個列表Unicode codepoints,因爲您在這裏使用的是非ASCII字符。

+0

我使用python 2.7.10 – shm

+0

@shm:那麼這將工作得很好。 –

+0

Traceback(最近一次調用最後一次): 文件「python」,第6行,在 UnicodeDecodeError:'utf8'編解碼器無法解碼0位字節0xc2:無效繼續字節 – shm

相關問題