&gt;Try explaining to your class how to ignore case in string comparisons<p>Okay: You can&#x27;t. You&#x27;ll need to convert both strings to the same case, and then compare those. In the majority of cases, you can do:<p>return string_a.lower() == string_b.lower()<p>But sometimes that won&#x27;t work, because converting case isn&#x27;t always easy. And that&#x27;s a unicode issue, not a python issue. It&#x27;s not even completely a unicode issue, just a &quot;writing can be very weird&quot; issue.<p>For example, &quot;ß&quot; (U+00DF) is a character that doesn&#x27;t&#x2F;shouldn&#x27;t have an uppercase form. Unicode does support it as U+1E9E, but all the examples I know of will convert it to &quot;SS&quot; ([U+0053, U+0053]) instead.<p>Try this in a javascript console, for example.<p><pre><code>  &gt; &quot;ß&quot;.toUpperCase().toLowerCase() === &quot;ß&quot;.toLowerCase()
  false
  &gt; &quot;ß&quot;.toUpperCase() === &quot;SS&quot;.toUpperCase()
  true
  &gt; &quot;ß&quot;.toLowerCase() === &quot;SS&quot;.toLowerCase()
  false
  &gt; &quot;ß&quot;.length
  1
  &gt; &quot;ß&quot;.toLowerCase().length
  1
  &gt; &quot;ß&quot;.toUpperCase().length
  2
  &gt; &quot;ß&quot;.toUpperCase().toLowerCase()
  &quot;ss&quot;
</code></pre>
Also, try ctrl+f&#x27;ing for &quot;ss&quot; on the Wiki page for ß [0] and see what it matches. Or ctrl+f this page for &quot;ß&quot; and it will match every &quot;ss&quot;. I think it&#x27;s pretty neat.<p>[0] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;%C3%9F" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;%C3%9F</a><p>(edit: You might already know everything in this comment, but I started writing and it ended up being a cool exercise for myself, so I figured I&#x27;d submit).