Найти - Пользователи
Полная версия: Помогите найти ошибку.
Начало » Python для новичков » Помогите найти ошибку.
1
Zzzz
Здравствуйте. Программа просит ввести любое написанное латиницей слово, затем вычислят максимально возможное кол-во других слов составленных из букв заданного слова, после чего записывает результаты на экран и в текстовый файл. Почему-то не работает со словами в которых присутствуют 2 и больше повторяющихся символа, таких как например ‘picnic’.
И да, я догадываюсь что используемый здесь алгорим - г#вно, но его просьба обсуждать в последнюю очередь.

# -*- coding: utf-8 -*-
import random
myWord = str(raw_input("Напечатайте любое слово (ENG) и нажмите 'Enter'...\n"))
myArr = list(myWord)
wdLength = len(myWord)
finArr = []
mainCount = 0
combs = 1
for num1 in range(1, wdLength + 1):
combs = combs * num1
print "Вариантов доступно: " + str(combs) + "\nВариантов найдено: "
while mainCount < combs:
counter = 1
anagram = ""
myArr = list(myWord)
while counter <= wdLength:
letter = myArr[random.randint(0, len(myArr) - 1)]
myArr.remove(letter)
anagram = anagram + letter
counter += 1
if anagram in finArr:
mainCount -= 1
else:
finArr.append(anagram)
print str(len(finArr)) + ",",
mainCount += 1
finArr.sort()
finStr = ""
for element in finArr:
if finArr.index(element) % 10 == 0:
finStr = finStr + "\n"
finStr = finStr + element + "," + " "
finStr = finStr[:-2] + "."
print finStr
myFile = open(myWord + ".txt", "w")
myFile.write("Введённое слово: " + myWord + "\nКоличество возможных комбинаций: " + str(combs) + "\n" + finStr)
myFile.close()
Ferroman
Вот интересно, как нам обсуждать ошибку в алгоритме, не обсуждая сам алгоритм? В этом коде разобраться, мягко говоря, проблематично, ибо непонятно, что хотел сказать автор. Зачем там вообще рандом?

Так что pdb вам в помощь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB