1

I'm new to python and want to make a program that generates Pi with the given decimal numbers. Problem is that I don't know how to check if the user has inputted a positive number.

This is the function that generates Pi (I don't know for sure how it works)

def PiBerekening(limiet): q = 1 r = 0 t = 1 k = 1 n = 3 l = 3 decimaal = limiet teller = 0 while teller != decimaal + 1: if 4 * q + r - t < n * t: # yield digit yield n # insert period after first digit if teller == 0: yield '.' # end if decimaal == teller: print('') break teller += 1 nr = 10 * (r - n * t) n = ((10 * (3 * q + r)) // t) - 10 * n q *= 10 r = nr else: nr = (2 * q + r) * l nn = (q * (7 * k) + 2 + (r * l)) // (t * l) q *= k t *= l l += 2 k += 1 n = nn r = nr 

And this is how I ask the user how many decimals he wants to see

while not verlaatloop: try: pi_cijfers = PiBerekening(int(input("With how many decimals would you like to calculate Pi?"))) assert pi_cijfer > 0 # This is one of the things I've tried but I get the "NameError: name 'pi_cijfer' is not defined" error and I don't know what to do to check if the inputted number is negative except ValueError: print("This isn't a valid number, try again") except AssertionError: print("This number is negative, try again") else: verlaatloop = True 

This is how I show the calculated Pi

 for pi_cijfer in pi_cijfers: print(pi_cijfer, end='') 

1 Answer 1

2

You can first validate the input and then pass it to the PiBerekening function. Something like this:

while not verlaatloop: try: no_decimals = int(input("With how many decimals would you like to calculate Pi?")) if no_decimals > 0: pi_cijfers = PiBerekening(no_decimals) #assert pi_cijfer > 0 # This is one of the things I've tried but I get the "NameError: name 'pi_cijfer' is not defined" error and I don't know what to do to check if the inputted number is negative except ValueError: print("This isn't a valid number, try again") except AssertionError: print("This number is negative, try again") else: verlaatloop = True 
Sign up to request clarification or add additional context in comments.

1 Comment

Is there no other way of first asking the user for input and then validating it?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.