<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Converting VB .cal into Python for Field Calulator in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360956#M28446</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Calculate_Field_examples/005s0000002m000000/" rel="nofollow noopener noreferrer" target="_blank"&gt;See this page for more examples.&lt;/A&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;STRONG&gt;Codeblock:&lt;/STRONG&gt;
def func(Class):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if Class == 1 OR Class == 2:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A15"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == 3:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A20"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == 4:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A30"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == 5:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A40"

&lt;STRONG&gt;Expression:&lt;/STRONG&gt;
func(!theclassfield!)
 &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*I'm not sure if the final 'elif...:' must be an 'else:' instead. I can't find any examples without an 'else:' to end the 'if...:'.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 16:49:42 GMT</pubDate>
    <dc:creator>DarrenWiens2</dc:creator>
    <dc:date>2021-12-11T16:49:42Z</dc:date>
    <item>
      <title>Converting VB .cal into Python for Field Calulator</title>
      <link>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360955#M28445</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My company is finally switching from ArcGIS 9.3 to ArcGIS 10.&amp;nbsp; I am testing our process and have figured out how to change simple calculations we used before into Python, but don't know enough to figure out this Else If Statement.&amp;nbsp; If someone could help it would be much appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This was in the Pre-Logic Script Code box:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim Class As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim Output As String &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Class = [FUNC_CLASS]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output = [FCC]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If Class = "1" OR Class = "2" Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Output = "A15"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Class = "3" Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Output = "A20"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Class = "4" Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Output = "A30"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Class = "5" Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Output = "A40"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And this was in the box below with FCC= being the header (not in the box)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;FCC=&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jul 2011 13:45:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360955#M28445</guid>
      <dc:creator>DennisGookin</dc:creator>
      <dc:date>2011-07-22T13:45:24Z</dc:date>
    </item>
    <item>
      <title>Re: Converting VB .cal into Python for Field Calulator</title>
      <link>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360956#M28446</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Calculate_Field_examples/005s0000002m000000/" rel="nofollow noopener noreferrer" target="_blank"&gt;See this page for more examples.&lt;/A&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;STRONG&gt;Codeblock:&lt;/STRONG&gt;
def func(Class):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if Class == 1 OR Class == 2:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A15"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == 3:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A20"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == 4:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A30"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == 5:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A40"

&lt;STRONG&gt;Expression:&lt;/STRONG&gt;
func(!theclassfield!)
 &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*I'm not sure if the final 'elif...:' must be an 'else:' instead. I can't find any examples without an 'else:' to end the 'if...:'.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 16:49:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360956#M28446</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2021-12-11T16:49:42Z</dc:date>
    </item>
    <item>
      <title>Re: Converting VB .cal into Python for Field Calulator</title>
      <link>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360957#M28447</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hey,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;just a few notes on that:&lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt; &lt;BR /&gt; &lt;LI&gt;Make sure your data types are correct. If the input is field actually a string, you will need to put quotes around the numbers or convert Class to an integer before the conditionals (also handy if you need to do comparative queries, &amp;lt; or &amp;gt;, for example):&lt;/LI&gt; &lt;BR /&gt;&lt;/UL&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Class == '1' ... and so on...

&lt;STRONG&gt;or&lt;/STRONG&gt;

def func(Class_input):
&amp;nbsp;&amp;nbsp;&amp;nbsp; Class = int(Class_input)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if Class == 1 ... and so on...&lt;/PRE&gt;&lt;BR /&gt;&lt;UL&gt; &lt;BR /&gt; &lt;LI&gt;&lt;STRONG&gt;OR&lt;/STRONG&gt; should be lower case:&lt;/LI&gt; &lt;BR /&gt;&lt;/UL&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; if Class == '1' or Class == '2':&lt;/PRE&gt;&lt;BR /&gt;&lt;UL&gt; &lt;BR /&gt; &lt;LI&gt;use brackets for multiple conditional statements (not always necessary, but a good idea):&lt;/LI&gt; &lt;BR /&gt;&lt;/UL&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; if (Class == '1') or (Class == '2'):&lt;/PRE&gt;&lt;BR /&gt;&lt;UL&gt; &lt;BR /&gt; &lt;LI&gt;else/elif at the end is up to the programmer, but note that else doesn't take a conditional, it just does its thing if none of the if/elif statements worked. Generally it is a good idea to have an else at the end, as it will help you identify any messy stuff with your data. For example, if 6 is passed to your code it will fail. What I often do is put else: return None at the end, which will make the field NULL... This does, however depend upon on your application, you could, for example, return 'A50'...&lt;/LI&gt; &lt;BR /&gt;&lt;/UL&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;STRONG&gt;Codeblock:&lt;/STRONG&gt;
def func(Class):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Class == '1') or (Class == '2'):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A15"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == '3':
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A20"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == '4':
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A30"
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif Class == '5':
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "A40"
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None

&lt;STRONG&gt;Expression:&lt;/STRONG&gt;
func(!theclassfield!)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:22:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360957#M28447</guid>
      <dc:creator>StacyRendall1</dc:creator>
      <dc:date>2021-12-12T16:22:48Z</dc:date>
    </item>
    <item>
      <title>Re: Converting VB .cal into Python for Field Calulator</title>
      <link>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360958#M28448</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Stacy.&amp;nbsp; I modified everything to look like you had it and it worked.&amp;nbsp; Really appreciate the help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jul 2011 11:19:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/converting-vb-cal-into-python-for-field-calulator/m-p/360958#M28448</guid>
      <dc:creator>DennisGookin</dc:creator>
      <dc:date>2011-07-25T11:19:44Z</dc:date>
    </item>
  </channel>
</rss>

