uncertain problem with if and list

This is the place for queries that don't fit in any of the other categories.

uncertain problem with if and list

Postby mckryall » Sun Nov 24, 2013 3:35 am

Well, this will be a long read.
I am making a calculator for slope-intercept form equations, and I had a problem with code that worked in other places.
File "s_i_form.py", line 164
if slope in ['y', 'Y', 'yes', 'Yes', 'YES']:
^
SyntaxError: invalid syntax

... I would suggest using CTRL+F to find it, unless you want to read all 250 lines of code.
Code: Select all
import time
twop = raw_input("Do you have two ordered pairs?")
if twop.lower() in ['n', 'no']:
   print "Don't use this program."
if twop.lower() in ['y', 'yes']:
   print "Ok."
   slope = raw_input("Do you have the slope?")
   if slope.lower() in ['n', 'no']:
      print "Ok."
      print "Input the first ordered pair."
      x1 = int(raw_input("X > "))
      y1 = int(raw_input("Y > "))
      print "Input the second ordered pair."
      x2 = int(raw_input("X > "))
      y2 = int(raw_input("Y > "))
      print """\n %d$1$ - %d$2$
               ---------
               %d$1$ - %d$2$
      """ % (y1, y2, x1, x2)
      b = raw_input("Do you have the b value?")
      time.sleep(1)
      #prints full equation
      if b.lower() in ['n', 'no']:
         y = int(raw_input("y= "))
         m = int(raw_input("m= "))
         x = int(raw_input("x= "))
         b = int(raw_input("b= "))
         if b == 0:
            pos_neg = ''
         elif b > 0:
            pos_neg = '+'
         elif b < 0:
            pos_neg = '-'
         if b == 0:
            b1 = ''
         else:
            b1 = b
         print "%d = %d(%d)%s%s" % (y, m, x, pos_neg, b1)
      #solves for b and displays finished equation
      if b.lower() in ['n', 'no']:
         print "Ok."
         print "1st ordered pair or second?"
         ord_p = raw_input("> ")
         if ord_p.lower in ['1st', 'first']:
            y = y1
            m = int(raw_input("m= "))
            x = x1
            print "%d = %d(%d)+b" % (y, m, x)
            time.sleep(1)
            if m != 0:   
               if x != 0:
                  mx = m * x
                  print "%d = %d+b" % (y, mx)
                  print "^That is a direct variation.^"
                  if mx != 0:   
                     if mx < 0:
                        pos_neg2 = '+'
                        y_mx = y + mx
                     elif mx > 0:
                        pos_neg2 = '-'
                        y_mx = y - mx
                     print "%d%s%d = %d+b%s%d" % (y, pos_neg2, mx, mx, pos_neg2, mx)
                     time.sleep(1)
                     print "%d = b" % y_mx
                     time.sleep(1)
                     if y_mx == 0:
                        pos_neg3 = '+'
                     elif y_mx > 0:
                        pos_neg3 = '+'
                     elif y_mx < 0:
                        pos_neg3 = ''
                  else:
                     print "%d = b" % y
                     time.sleep(1)
                     if y == 0:
                        pos_neg3 = '+'
                     elif y > 0:
                        pos_neg3 = '+'
                     elif y < 0:
                        pos_neg3 = ''
                     y_mx = y
               elif x == 0:
                  print "%d = b" % y
                  time.sleep(1)
                  if y == 0:
                     pos_neg3 = '+'
                  elif y > 0:
                     pos_neg3 = '+'
                  elif y < 0:
                     pos_neg3 = ''
                  y_mx = y
            elif m == 0:
               print "%d = b" % y
               time.sleep(1)
               if y == 0:
                  pos_neg3 = '+'
               elif y > 0:
                  pos_neg3 = '+'
               elif y < 0:
                  pos_neg3 = ''
               y_mx = y
            print "%d = %d(%d)%s%d" % (y, m, x, pos_neg3, y_mx)
            print "1st ordered pair or second?"
         ord_p = raw_input("> ")
         if ord_p.lower in ['2nd','second']:
            y = y2
            m = int(raw_input("m= "))
            x = x2
            print "%d = %d(%d)+b" % (y, m, x)
            time.sleep(1)
            if m != 0:   
               if x != 0:
                  mx = m * x
                  print "%d = %d+b" % (y, mx)
                  print "^That is a direct variation.^"
                  if mx != 0:   
                     if mx < 0:
                        pos_neg2 = '+'
                        y_mx = y + mx
                     elif mx > 0:
                        pos_neg2 = '-'
                        y_mx = y - mx
                     print "%d%s%d = %d+b%s%d" % (y, pos_neg2, mx, mx, pos_neg2, mx)
                     time.sleep(1)
                     print "%d = b" % y_mx
                     time.sleep(1)
                     if y_mx == 0:
                        pos_neg3 = '+'
                     elif y_mx > 0:
                        pos_neg3 = '+'
                     elif y_mx < 0:
                        pos_neg3 = ''
                  else:
                     print "%d = b" % y
                     time.sleep(1)
                     if y == 0:
                        pos_neg3 = '+'
                     elif y > 0:
                        pos_neg3 = '+'
                     elif y < 0:
                        pos_neg3 = ''
                     y_mx = y
               elif x == 0:
                  print "%d = b" % y
                  time.sleep(1)
                  if y == 0:
                     pos_neg3 = '+'
                  elif y > 0:
                     pos_neg3 = '+'
                  elif y < 0:
                     pos_neg3 = ''
                  y_mx = y
            elif m == 0:
               print "%d = b" % y
               time.sleep(1)
               if y == 0:
                  pos_neg3 = '+'
               elif y > 0:
                  pos_neg3 = '+'
               elif y < 0:
                  pos_neg3 = ''
               y_mx = y
            print "%d = %d(%d)%s%d" % (y, m, x, pos_neg3, y_mx
   if slope.lower() in ['y', 'yes']:
      print "Ok."
      b = raw_input("Do you have the b value?")
      time.sleep(1)
      #prints full equation
      if b.lower() in ['y', 'yes']:
         
         y = int(raw_input("y= "))
         m = int(raw_input("m= "))
         x = int(raw_input("x= "))
         b = int(raw_input("b= "))
         if b == 0:
            pos_neg = ''
         elif b > 0:
            pos_neg = '+'
         elif b < 0:
            pos_neg = '-'
         if b == 0:
            b1 = ''
         else:
            b1 = b
         print "%d = %d(%d)%s%s" % (y, m, x, pos_neg, b1)
      #solves for b and displays finished equation
      if b.lower() in ['n', 'no']:
         print "Ok."
         y = int(raw_input("y= "))
         m = int(raw_input("m= "))
         x = int(raw_input("x= "))
         print "%d = %d(%d)+b" % (y, m, x)
         time.sleep(1)
         if m != 0:   
            if x != 0:
               mx = m * x
               print "%d = %d+b" % (y, mx)
               time.sleep(1)
               print "^That is a direct variation.^"
               if mx != 0:
                  if mx < 0:
                     pos_neg2 = '+'
                     y_mx = y + mx
                  elif mx > 0:
                     pos_neg2 = '-'
                     y_mx = y - mx
                  print "%d%s%d = %d+b%s%d" % (y, pos_neg2, mx, mx, pos_neg2, mx)
                  time.sleep(1)
                  print "%d = b" % y_mx
                  time.sleep(1)
                  if y_mx == 0:
                     pos_neg3 = '+'
                  elif y_mx > 0:
                     pos_neg3 = '+'
                  elif y_mx < 0:
                     pos_neg3 = ''
               else:
                  print "%d = b" % y
                  time.sleep(1)
                  if y == 0:
                     pos_neg3 = '+'
                  elif y > 0:
                     pos_neg3 = '+'
                  elif y < 0:
                     pos_neg3 = ''
                  y_mx = y
            elif x == 0:
               print "%d = b" % y
               time.sleep(1)
               if y == 0:
                  pos_neg3 = '+'
               elif y > 0:
                  pos_neg3 = '+'
               elif y < 0:
                  pos_neg3 = ''
               y_mx = y
         elif m == 0:
            print "%d = b" % y
            time.sleep(1)
            if y == 0:
               pos_neg3 = '+'
            elif y > 0:
               pos_neg3 = '+'
            elif y < 0:
               pos_neg3 = ''
            y_mx = y
         print "%d = %d(%d)%s%d" % (y, m, x, pos_neg3, y_mx)

python version 2.7.1
Last edited by Mekire on Sat Nov 30, 2013 7:37 am, edited 1 time in total.
Reason: Locked
Python 2.7
Mac Mini
Laptop w/ Ubuntu 14.04
Steam; PSN
mckryall
 
Posts: 100
Joined: Sat Nov 23, 2013 6:13 pm

Re: uncertain problem with if and list

Postby Mekire » Sun Nov 24, 2013 4:09 am

You forgot a parenthesis on the line directly before the one listed in the Traceback.

This:
Code: Select all
print "%d = %d(%d)%s%d" % (y, m, x, pos_neg3, y_mx
Should be this:
Code: Select all
print "%d = %d(%d)%s%d" % (y, m, x, pos_neg3, y_mx)

-Mek
User avatar
Mekire
 
Posts: 988
Joined: Thu Feb 07, 2013 11:33 pm
Location: Amakusa, Japan

Re: uncertain problem with if and list

Postby mckryall » Sun Nov 24, 2013 4:10 am

Thanks. Still not used to the way it returns errors.
Last edited by Mekire on Sat Nov 30, 2013 7:37 am, edited 1 time in total.
Reason: Locked.
Python 2.7
Mac Mini
Laptop w/ Ubuntu 14.04
Steam; PSN
mckryall
 
Posts: 100
Joined: Sat Nov 23, 2013 6:13 pm


Return to General Coding Help

Who is online

Users browsing this forum: No registered users and 3 guests