2015-12-10 4 views
-2

Мне нужно написать программу, которая перетасовывает алфавит 3 раза, и она должна быть записана в текст каждый раз. Имеет немного проблем.Программа для перетасовки алфавита

def CipherHelperFunction(): 
    import random 
    myAlphabet ="abcdefghijklmnopqrstuvwxyz,';.?" 
    for i in range(3): 
     dst=''.join(random.shuffle(myAlphabet,len(src))) 
     print dst 
+6

Спасибо, что сообщили нам, у вас есть вопрос? Можете ли вы показать свои усилия, так что это не служба написания кода. Идея заключается в том, что вы заявляете о своей проблеме, входных данных, желаемых выходных данных, коде и всех ошибках. – EdChum

+0

Здесь вы можете вставить код. Оставьте здесь некоторый код. –

+0

Какова природа проблемы, с которой вы сталкиваетесь? У вас есть код? – khelwood

ответ

0

random.shuffle вернется None, потому что он не возвращает список, но изменяет сам список. Поэтому сначала вам нужно составить список из своего алфавита, измените этот список на shuffle, а затем оперируйте списком.

import random 

def cipher_helper_function(): 
    my_alphabet = list("abcdefghijklmnopqrstuvwxyz,';.?") 
    for i in range(3): 
     random.shuffle(my_alphabet) 
     dst = ''.join(my_alphabet) 
     print(dst) 

Пожалуйста, обратите внимание, что я изменил функцию и имя переменной в соответствии с Style Guide for Python Code.

+0

Я не уверен, если я вхожу в ту вещь, при тестировании функции, но это мне сказать есть ошибка. Мне нужен алфавит, который нужно перетасовать 3 раза. – Juliana

+0

Защиту CipherHelperFunction(): импорт случайных myAlphabetList = [ "АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ, ';.?"] для г в диапазоне (3): random.shuffle (my_alphabet) ДСТ = '' .join (my_alphabet) печати (dst) – Juliana

+0

Вы определяете 'myAlphabetList' как список только с одним элементом, который является строкой со всем вашим алфавитом. Это не то, что вы хотите. Пожалуйста, посмотрите мой код. Я переношу строку в список, где каждый символ является его элементом. – Matthias

0

Попробуйте это случайные вашу строку, вы можете заменить печать в файл записи:

import random 
src="abcdefghigk" 
for i in range(3): 
    dst=''.join(random.sample(src,len(src))) 
    print dst 
+0

четкости CipherHelperFunction(): импорта случайных SRC = "АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ, ';. ?» для i в диапазоне (3): dst = ''. Join (random.sample (src, len (src))) print dst – Juliana

+0

Говорит, что есть ошибка. Не могу понять, где. – Juliana

+0

распечатать информацию об ошибке – MikeZhang

0

Вы можете просто поменять список элементов алфавита в цикле.

from random import randint 
mini_alphabet = ['a', 'b', 'c', 'd', 'e', 'f'] 

def shuffle(list): 
    for elem in list: 
     swap_list_elem(list, list.index(elem), randint(0, len(list) - 1)) 
    print(mini_alphabet) 
def swap_list_elem(list, a, b): 
    list[b], list[a] = list[a], list[b] 

shuffle(mini_alphabet) 
shuffle(mini_alphabet) 
shuffle(mini_alphabet) 
+0

Использование всего алфавита? – Juliana

+0

Да, определенно. –

+0

def CipherHelperFunction(): from random import randint my_alphabet = ['a', 'b', 'c', 'd', 'e', ​​'f', 'g', 'h', 'i' , 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', ' def shuffle (список): для elem (v), v ',' w ',' x ',' y ',' z ',', ',' '' '' в списке: swap_list_elem (список, список.индекс (elem), randint (0, len (list) - 1)) print (my_alphabet) def swap_list_elem (список, a, b): Список [b], список [a] = список [a], список [б] перетасовки (my_alphabet) перетасовки (my_alphabet) перетасовки (my_alphabet) – Juliana

Смежные вопросы