208k views
5 votes
Assure that major, minor, sub1 and sub2 each contain four digit numbersIf less than four digits are entered in major OR minor OR sub1 OR sub1, then the fieldshould be padding with zeroes at the beginning (e.g., if the user enters "33", then thescript should convert this to a four digit number "0033", if they enter "0", the scriptshould convert this to "0000")Blank fields are not allowed in the major, minor, sub1. sub2 or ta fieldsHowever, if an account number containing ALL zeroes is INVALID (i.e., if major=0000AND minor=0000 AND sub1=0000 AND sub2=0000, then the journal entry isconsidered INVALID because there will never be an Account Number composed of allzeroes)

1 Answer

7 votes

Answer:

import re

#section 1

while True:

try:

major=input('Enter Major: ')

if re.search(r'^\d{1,4}$',major):

minor=input('Enter minor: ')

else:

raise

try:

if re.search(r'^\d{1,4}$',minor):

sub1=input('Enter sub1: ')

else:

raise

try:

if re.search(r'^\d{1,4}$',sub1):

sub2=input('Enter sub2: ')

else:

raise

try:

if re.search(r'^\d{1,4}$',sub2):

break

else:

raise

except:

print('enter a correct sub 2')

except:

print('enter a correct sub1')

except:

print('Enter a correct minor ')

except:

print('enter a correct Major')

#section 2

sub1= f"{int(sub1):04d}"

sub2= f"{int(sub2):04d}"

major= f"{int(major):04d}"

minor= f"{int(minor):04d}"

if major == '0000' and minor == '0000' and sub1=='0000' and sub2=='0000':

print('INVALID!!! Acount Number')

else:

print('-----------------------')

print('Your Account Number is')

print(major, minor, sub1, sub2)

print('-----------------------')

Step-by-step explanation:

The programming language used is python 3

The Regular Expression Module was imported to allow us perform special operations on string variables.

This is the pattern that was used to check if an input was valid or invalid re.search(r'^\d{1,4}$',string)

what this pattern does is that it ensures that:

  1. (\d) represents digits that is any number from 0-9.
  2. ( ^ ) ensures that it starts with a digit.
  3. ({1,4}) accepts digits with length ranging from 1-4. i.e you can enter at least one digit and at most four digits.
  4. ($) ensures that the input ends with a digit
  5. string is the text that is passed to the pattern

we also made use of fstrings

sub1= f"{int(sub1):04d}"

the above line of code takes 'sub1' in this case, and converts it temporarily to an integer and ensures it has a length of 4 by adding 0's in front of it to convert it to a four digit number.

These are the major though areas, but i'll explain the sections too.

#section 1

In this section the WHILE loop is used in conjunction with the TRY and EXCEPT block and the IF statement to ensure that the correct input is given.

The while loop will keep looping until the correct input is inserted before it breaks and each input is tested in the try and except block using the if statement and the regular expression pattern I explained, as a result, you cannot input a letter, a blank space, a punctuation or numbers with length greater than 4, it has to be numbers within the range of 1-4.

#section 2

The second section converts each entry to a four digit number and checks with an if statement if the entry is all zeros (0000 0000 0000 0000) and prints invalid.

Otherwise, it prints the account number.

check the attachment to see how the script runs.

Assure that major, minor, sub1 and sub2 each contain four digit numbersIf less than-example-1
User Tianyi Cui
by
6.4k points