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

Python score system

I am writing a program were add and subtract numbers from an integer to keep score. The admin and subtracting is working but I am trying to add a feature that if you add number after the word add or subtract it changes by that number, but I can’t get that to work.

cont = True
score = 0
num = False
while cont == True:
  q = input("add, subtract, or end: ")
  for char in q:
    n = q.isnumeric()
    if n == True:
      num = True
      num2 = q
  if num == False:
   if q.lower() == "add":
     score += 1
   elif q.lower() == "subtract" or q.lower() == "sub":
     score -= 1
   elif q.lower() == "end":
    cont = False
   print(score)
  elif num == True:
   if "add" in q.lower():
     score += num2
   elif "subtract" in q.lower() or "sub" in q.lower():
     score -= num2
   elif q.lower() == "end":
    cont = False
   print(score)

I expect it to add one if you type add subtract one if you type sub or subtract and end the program if you type end, that works the part that I expected and doesn’t work is that it is supposed to detect if there is a number in the string using the isnumeric() function and add or subtract that number.

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

>Solution :

Your code simplifies neatly to something like:

score = 0
while True:  # Infinite loop; we'll use `break` to end
    print("Score:", score)
    q = input("add, subtract, or end: ").lower().strip()  # lower-case, remove whitespace
    words = q.split()  # Split entry by spaces
    verb = words.pop(0)  # Remove first word

    if verb == "end":
        break

    if words and words[0].isnumeric():  # If there is a second word and it's numeric
        value = int(words[0])
    else:  # Otherwise default to 1
        value = 1

    if verb == "add":
        score += value
    elif verb == "subtract":
        score -= value
    else:
        print("Unknown verb", verb)
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