I'm learning to code in python and I created a code to calculate the amount of a debt its compound interest and the instalments to pay the debt. The code works fine with small amounts but if I go over 10k with the debt the program gets into an infinite loop, can anyone help? Code below: print('Debt')  a = float(input('Debt amount: $ ')) b = float(input('interest rate: % ')) c = float(input('monthly instalment: R$ ')) b /= 100 x = 0 div = a ttp = 0  while div &gt; 0:     inte = div*b     div = (div + inte) - c     x += 1  ttp = (c*x) + div print ('The total of months to pay out the debt was: %d\nThe total paid was: R$%.2f ' % (x, ttp)) print('The total paid in interest was: $ %.2f' % (ttp-a))
27
Consider the following code:   0.1 + 0.2 == 0.3  -&gt;  false   0.1 + 0.2         -&gt;  0.30000000000000004   Why do these inaccuracies happen?
111701
I'm messing around with some C code using floats, and I'm getting 1.#INF00, -1.#IND00 and -1.#IND when I try to print floats in the screen. What does those values mean?  I believe that 1.#INF00 means positive infinity, but what about -1.#IND00 and -1.#IND? I also saw sometimes this value: 1.$NaN which is Not a Number, but what causes those strange values and how can those help me with debugging?  I'm using  which I believe uses  representation for float point numbers.  Can someone list all those invalid values and what they mean?
57093
I think there's a lot for me to learn about data types. Why this happens  double result = ((3/8)*100).ToString();   it gives zero .. should be 37,5 ... :(
30360
Specifically, I notice that on a mortgage statement, my payment is "amortized" so that at the beginning of the loan, I am paying almost entirely interest and very little principal.  However, on a credit card balance, it seems interest is only charged on the balance.  Why do amortization schedules work the way they do, and are they typically used for most loans, and why?
77855
I have a simple spreadsheet where I track the balance in my investment account.  What should I do to handle new deposits in the account?  For example:   End of Day 1: balance = $100   End of Day 2: $120 (daily gain 20%)   End of Day 3: $150 (daily gain 25%)   So after Day 3 I have made 50%. Let's say that in between Day 3 and Day 4, I deposit $100, so at the beginning of Day 4, the balance is $250.    If I compute the return as above, all of a sudden it drops to 25% ($250 balance, $200 in), which is clearly wrong.  And furthermore obviously the gain from Day 3 to Day 4 is not 66% ($250/$150), it's zero.  I'm pretty frequently depositing new money into my investment account, so what's the best way to account for this?  Is the rate of return some weighted average based on how long the money was in the account?
61458
What is the monthly payment for a $800,000 mortgage for the first 119   payments that is due in 10 years, has a 25 year amortization, at 5%   interest? What is the amount of the 120th payment?   I use excel to compute the amortization table,    But, I'm still don't understand the question. If I finish the loan at payment 300, for 25 years or I ended at 120 with a full balloon payment.   I ask my professor and he told me: 'If mortgage due in 10 then final payment is a balloon payment including interest and principal'.  Question: I need to know what schedule I suppose to calculate (on excel or any other way that could be easier), and some hint to understand what actually the problem ask.  Thanks!
3567
Given the following code, what does the if __name__ == "__main__": do?  # Threading example import time, thread  def myfunction(string, sleeptime, lock, *args):     while True:         lock.acquire()         time.sleep(sleeptime)         lock.release()         time.sleep(sleeptime)  if __name__ == "__main__":     lock = thread.allocate_lock()     thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))     thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))
57804
I've been struggling with this problem, actually I was doing a program in python and did   1j ** 1j(complex numbers) (In python a**b = $a^b$ )   and found out the answer to be a real number with value $0.2079$, How to calculate this value of $i^i$?
74131
I was doing some software engineering and wanted to have a thread do something in the background to basically just waste CPU time for a certain test.  While I could have done something really boring like for(i &lt; 10000000) { j = 2 * i }, I ended up having the program start with $1$, and then for a million steps choose a random real number $r$ in the interval $[0,R]$ (uniformly distributed) and multiply the result by $r$ at each step.   When $R = 2$, it converged to $0$. When $R = 3$, it exploded to infinity.    So of course, the question anyone with a modicum of curiosity would ask: for what $R$ do we have the transition. And then, I tried the first number between $2$ and $3$ that we would all think of, Euler's number $e$, and sure enough, this conjecture was right. Would love to see a proof of this.    Now when I should be working, I'm instead wondering about the behavior of this script.   Ironically, rather than wasting my CPUs time, I'm wasting my own time. But it's a beautiful phenomenon. I don't regret it. $\ddot\smile$
17043
I have a Python script which takes as input a list of integers, which I need to work with four integers at a time.  Unfortunately, I don't have control of the input, or I'd have it passed in as a list of four-element tuples.  Currently, I'm iterating over it this way: for i in range(0, len(ints), 4):     # dummy op for example code     foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]  It looks a lot like &quot;C-think&quot;, though, which makes me suspect there's a more pythonic way of dealing with this situation.  The list is discarded after iterating, so it needn't be preserved.  Perhaps something like this would be better? while ints:     foo += ints[0] * ints[1] + ints[2] * ints[3]     ints[0:4] = []  Still doesn't quite &quot;feel&quot; right, though.  :-/ Related question:
15847
When I debug a C# program and I get an exception throwed (either thrown by code OR thrown by the framework), the IDE stops and get me to the corresponding line in my code.  Everything is fine for now.  I then press "F5" to continue. From this moment, it seams like I'm in an infinite loop. The IDE always get me back to the exception line. I have to Shift + F5 (stop debugging/terminate the program) to get out of his.  I talked with some co-workers here and they told me that this happens sometime to them too.  What's happening?
70618
So I was writing up a simple binary tree in Python and came across [...]  I don't believe this to be related to the Ellipsis object, more it seems to have something to do with an infinity loop (due to Python's shallow copy?). The source of this infinity loop and why it doesn't get expanded while expanding when accessed is something I'm completely lost to, however   &gt;&gt;&gt; a [[[[[], [], 8, 3], [[], [], 3, 2], 6, 3], [], 1, 4], [[], [], -4, 2], 0, 0] &gt;&gt;&gt; Keys(a)#With a+b [0, 1, 6, 8, 3, -4] &gt;&gt;&gt; Keys(a)#With [a,b] [8, [...], [...], 3, [...], [...], 6, [...], [...], 1, [...], [...], -4, [...], [...], 0, [...], [...]] &gt;&gt;&gt; Keys(a)[1]#?? [8, [...], [...], 3, [...], [...], 6, [...], [...], 1, [...], [...], -4, [...], [...], 0, [...], [...], 8, [...], [...], 3, [...], [...], 6, [...], [...], 1, [...], [...], -4, [...], [...], 0, [...], [...]]     Version using a+b  def Keys(x,y=[]):     if len(x):y+=[x[2]]+Keys(x[0],y)+Keys(x[1],y)#Though it seems I was using y=y[:]+, this actually outputs an ugly mess     return y   version using [a,b]  def Keys(x,y=[]):     if len(x):y+=[x[2],Keys(x[0],y),Keys(x[1],y)]     return y   So what exactly is [...]?
9898
Code like this often happens: l = [] while foo:     # baz     l.append(bar)     # qux  This is really slow if you're about to append thousands of elements to your list, as the list will have to be constantly resized to fit the new elements. In Java, you can create an ArrayList with an initial capacity. If you have some idea how big your list will be, this will be a lot more efficient. I understand that code like this can often be refactored into a list comprehension. If the for/while loop is very complicated, though, this is unfeasible. Is there an equivalent for us Python programmers?
4188
While I was investigating a problem I had with lexical closures in Javascript code, I came along this problem in Python:  flist = []  for i in xrange(3):     def func(x): return x * i     flist.append(func)  for f in flist:     print f(2)   Note that this example mindfully avoids lambda. It prints "4 4 4", which is surprising. I'd expect "0 2 4".   This equivalent Perl code does it right:  my @flist = ();  foreach my $i (0 .. 2) {     push(@flist, sub {$i * $_[0]}); }  foreach my $f (@flist) {     print $f-&gt;(2), "\n"; }   "0 2 4" is printed.  Can you please explain the difference ?    Update:   The problem is not with i being global. This displays the same behavior:  flist = []  def outer():     for i in xrange(3):         def inner(x): return x * i         flist.append(inner)  outer() #~ print i   # commented because it causes an error  for f in flist:     print f(2)   As the commented line shows, i is unknown at that point. Still, it prints "4 4 4".
9452
In Python, how can I parse a numeric string like "545.2222" to its corresponding float value, 545.2222? Or parse the string "31" to an integer, 31?  I just want to know how to parse a float str to a float, and (separately) an int str to an int.
23852
I have this hypothetical situation on my mind and I am not sure which is the best solution. Given:  Loan 1: $340,000 at an interest rate of 1.69% per year Loan 2: $40,000 at an interest rate of  3.6% per year  I have a fixed amount available to pay these, let's say, $1,500 monthly and I can decide how much I want to pay each one (I could pay 750/750, 1000/500, 1500/0 for instance). I do not have a time limit to pay these. My question: What is the optimal way to pay these? What I always heard is: pay the debt that has the highest interest first. This would lead me to a solution: pay loan 2 as fast as possible. But the total amount of interest on 340,000 is higher (in this case, $5780 annually) than the amount over $40,000 (1440, in this case), so, to me, it feels I should pay the Loan 1 first. I would love to run some simulations, but I have no idea how to calculate these things (I don't even have a clue on how to research it). ps: this is really a hypothetical situation, I am not getting such loans without being able to calculate it, don't worry ;)
12751
Various constructions can cause TeX (aka the lion) to go into an infinite loop. The simplest example is \def~{~}~, which defines ~ to expand to itself, then expands it. Now, if we exclude macro expansion, getting a loop is more difficult. With pure TeX, the two shortest methods I found (without macros) are  \everypar{\the\everypar}. \toksdef~0~{\the~}\the~.   (including the trailing dots); note that the second is not macro expansion, but the expansion of \the\toks0 in hiding. With eTeX, I got down to  \if\unexpanded\fi   which has the additional "quality" of being expandable. Here, \unexpanded could be replaced by \detokenize or \scantokens.   Why does that trigger an infinite loop? Is there a similarly short TeX constructions which does not use macro expansion (preferably only primitives)?