Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to make sure first number in string isn't a 0?

This is for Harvard Uni’s CS50P, the requirements given were that I should implement a function is_valid that checks if the user input fits the requirements for a vanity plate.

My code fulfills all requirements except "The first number used cannot be a ‘0’."

The function is_valid needs an if/else statement that takes the user input (string) (passed to is_valid as "s") and makes sure that the first number in it isn’t a 0.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Ideally it would return False if the first number found is a 0 since that would make the plate invalid as a vanity plate.

The Requirements are listed here: https://cs50.harvard.edu/python/2022/psets/2/plates/

My code is the following: (Comments removed since I don’t get Github formatting)

def main():
    plate = input("Plate: ")
    if is_valid(plate):
        print("Valid")
    else:
        print("Invalid")

def is_valid(s):
    if len(s) < 2 or len(s) > 6: 
        return False

    if s[0].isdigit() == True or s[1].isdigit() == True: 
        return False

    for i in range(len(s)): #
        if s[i].isdigit():
            if not s[i:].isdigit():
                return False

    if s.isalnum() == False:
        return False

    else:
        return True
main()

>Solution :

First you have to loop over the string, and if current char is a digit, then if it is 0, return False, otherwise, go to the next step


for i in s:
    if i.isdigit():
        if int(i)==0:
            return False
        else:
            break

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading