Python can';t弄清楚如何将文本放入表格(playfair密码) 这是我认为我错了
必须使用模块(%) 这是预期的结果:Python can';t弄清楚如何将文本放入表格(playfair密码) 这是我认为我错了,python,Python,必须使用模块(%) 这是预期的结果: def create_table(secret): clear_table() secret = secret.upper() secret.replace(" ","") secret.split(",") for col in range(5): row = 1 if len(secret) % 5: row += 1 print [len(s
def create_table(secret):
clear_table()
secret = secret.upper()
secret.replace(" ","")
secret.split(",")
for col in range(5):
row = 1
if len(secret) % 5:
row += 1
print [len(secret) % 5]
print secret[col]
create_table("mathematics")
print_table()
您可能需要修改:
P L A Y F
A I R * *
* * * * *
* * * * *
* * * * *
您的create_表应该是这样的:
def print_table():
for row in range(5):
for col in range(5):
print table[row][col],
print # Added so it print new lines
测试:
def create_table(secret):
clear_table()
secret = secret.upper()
secret = secret.replace(" ",'')
secret.split(",")
row = 0
col = 0
for i in range(len(secret)):
if i != 0 and i % 5 == 0:
row += 1
col = 0
table[row][col] = secret[i]
col += 1
编辑
要删除重复的字母,请使用以下方法:
create_table("Hi world")
print_table()
>>>
H I W O R
L D * * *
* * * * *
* * * * *
* * * * *
create_table("play fair")
print_table()
>>>
P L A Y F
A I R * *
* * * * *
* * * * *
* * * * *
并将其添加到您的create_table
方法中
def removeDup(mystring):
newStr = ""
for ch in mystring:
if ch not in newStr:
newStr = newStr + ch
return newStr
如果你不想让一封信重复,你能举一个输入输出的例子吗?这是相同的,但公平竞争的例子。你的第二行A没有出现,所以第二行应该是I R***,其余的都一样
def removeDup(mystring):
newStr = ""
for ch in mystring:
if ch not in newStr:
newStr = newStr + ch
return newStr
def create_table_without_rep(secret):
clear_table()
secret = secret.upper()
secret = secret.replace(" ",'')
secret.split(",")
row = 0
col = 0
secret = removeDup(secret) # Add this line
for i in range(len(secret)):
if i != 0 and i % 5 == 0:
row += 1
col = 0
table[row][col] = secret[i]
col += 1