from math import log

def duckiedai_intro(program_name,wait=True):
 title=program_name[:16]
 empty=16-len(title)
 left=empty//2
 right=empty-left
 print("+----------------------+")
 print("|   "+" "*left+title+" "*right+"   |")
 print("|                      |")
 print("|       __             |")
 print("|   ___(o )>  quack!   |")
 print("|   \\ <_. )           |")
 print("|    `---'             |")
 print("|     by DuckieDai     |")
 print("+----------------------+")
 print("Loading...")
 if wait:
  input("Press enter to start ")
  print("\n"*6)

def num(s,zero=0):
 while 1:
  try:
   x=float(input(s))
   if x>0 or zero and x>=0:return x
  except:pass
  print("Enter a valid #")

def ratio():
 while 1:
  x=num("I/I0: ")
  if x<=1:return x
  print("I/I0 must be <=1")

duckiedai_intro("BEER LAMBERT")
print("BEER-LAMBERT LAW")
print("1 Find A")
print("2 Find conc")
print("3 Find epsilon")
print("4 Find path")
print("5 A from I/I0")
print("6 Light from A")
c=""
while c not in ("1","2","3","4","5","6"):
 c=input("Choose 1-6: ")

if c=="1":
 e=num("epsilon: ",1)
 x=num("Conc mol/L: ",1)
 l=num("Path cm: ")
 a=e*x*l
 print("A =",a)

elif c=="2":
 a=num("Absorbance A: ",1)
 e=num("epsilon: ")
 l=num("Path cm: ")
 print("Conc mol/L =",a/(e*l))

elif c=="3":
 a=num("Absorbance A: ",1)
 x=num("Conc mol/L: ")
 l=num("Path cm: ")
 print("epsilon =",a/(x*l))
 print("L/(mol*cm)")

elif c=="4":
 a=num("Absorbance A: ",1)
 e=num("epsilon: ")
 x=num("Conc mol/L: ")
 print("Path cm =",a/(e*x))

elif c=="5":
 print("1 Enter I and I0")
 print("2 Enter I/I0")
 q=""
 while q not in ("1","2"):
  q=input("Choose 1 or 2: ")
 if q=="1":
  i0=num("I0: ")
  i=num("I: ")
  r=i/i0
 else:r=ratio()
 print("A =",-log(r,10))
 print("I/I0 =",r)
 print("%T =",r*100)

else:
 a=num("Absorbance A: ",1)
 r=10**(-a)
 print("I/I0 =",r)
 print("%T =",r*100)
 q=input("Find I? 1=yes: ")
 if q=="1":print("I =",num("I0: ")*r)

input("ENTER for guide: ")
print("QUICK GUIDE")
print("A=epsilon*c*l")
print("A=-log(I/I0)")
print("Higher A: less light")
print("A has no units")
print("DuckieDai: done!")
input("ENTER to exit: ")
