Note that there are some explanatory texts on larger screens.

plurals
  1. POPython mysterious error
    primarykey
    data
    text
    <p>So I am working on a program to create portmanteaus. I have the code and functions I need, and I have put them together. </p> <p>Here is the code:</p> <pre><code>def portmanteauscore(start, mid, end): totallen = len(start) + len(mid) + len(end) return totallen - abs((len(start)/totallen) - len(start)) - abs((len(mid)/totallen) - len(mid)) - abs((len(end)/totallen) - len(end)) def portmanteaugenerator(word1, word2, words): mid = longest_common_substring(word1, word2) start = word1[:word1.index(mid)] end = word2[len(mid):] if start + mid in words and mid + end in words: return start, mid, end def natalie(words): "Find the best Portmanteau word formed from any two of the list of words." wordpermutations = list(itertools.permutations(words)) maxscore, bestnatalie = 0, '' for perm in wordpermutations: start, mid, end = portmanteaugenerator(perm[0], perm[1], words) if portmanteauscore(start, mid, end) &gt; maxscore: bestnatalie, maxscore = start + mid + end, portmanteauscore(start, mid, end) print bestnatalie return bestnatalie def longest_common_substring(s1, s2): m = [[0] * (1 + len(s2)) for i in xrange(1 + len(s1))] longest, x_longest = 0, 0 for x in xrange(1, 1 + len(s1)): for y in xrange(1, 1 + len(s2)): if s1[x - 1] == s2[y - 1]: m[x][y] = m[x - 1][y - 1] + 1 if m[x][y] &gt; longest: longest = m[x][y] x_longest = x else: m[x][y] = 0 return s1[x_longest - longest: x_longest] </code></pre> <p>But when I run the code, I keep getting this error message, </p> <pre><code>Traceback (most recent call last): File "vm_main.py", line 33, in &lt;module&gt; import main File "/tmp/vmuser_ijxrjleuxj/main.py", line 107, in &lt;module&gt; print test_natalie() File "/tmp/vmuser_ijxrjleuxj/main.py", line 87, in test_natalie assert natalie(['adolescent', 'scented', 'centennial', 'always', 'ado']) in ('adolescented','adolescentennial') File "/tmp/vmuser_ijxrjleuxj/main.py", line 67, in natalie start,mid,end=portmanteaugenerator(perm[0],perm[1],words) TypeError: 'NoneType' object is not iterable </code></pre> <p>This occurs when I return the start,mid,and end variables for the portmanteau generator. When given a list of words, it should return a portmanteau from two words that is the best according to portmanteau score.</p> <p>But I keep getting this type error for some reason. I have tried making start,mid,end a list and it still fails to run. Can you please help me? </p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload