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