0

Im a very new Python user (2.7) and have been working my way through the Learn Python The Hard Way course and up to chap 37 and decided to do read through some other learning materials and go over the basics again and do exercises there. I have been reading through this:

http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/ifstatements.html

and I just did this:

3.1.4.1. Graduate Exercise
Write a program, graduate.py, that prompts students for how many credits they have. Print whether of not they have enough credits for graduation. (At Loyola University Chicago 120 credits are needed for graduation.)

and this is my code for that:

print "How many credits do you currently have: "
credits = raw_input("> ")
if credits >= 120:
   print "You have graduated!"
else:
   print "Sorry not enough credits"

but no mater what number I input it just gives "Sorry not enough credits" as the answer every time, why? I have tried moving some things around and making it > instead of >= but nothing worked. Im sure this is something stupidly simple Im missing but I cant figure it out.

I've done several other if statement exercises in the LPTHW course similar to this and never had a problem.

1
  • its reading the input as string convert it as int. Commented Apr 4, 2014 at 13:37

4 Answers 4

4

raw_input() returns a string:

>>> credits = raw_input("> ")
> 150
>>> type(credits)
<type 'str'>

You need to cast it to int:

credits = int(raw_input("> "))
Sign up to request clarification or add additional context in comments.

1 Comment

could help to mention try/except aswell.
0

In your code, at the if statement you are comparing a str type with a int type. so it is not working as you axpected. Cast the credit as int

print "How many credits do you currently have: "
credits = raw_input("> ")
credits = int(credits)
if credits >= 120:
   print "You have graduated!"
else:
   print "Sorry not enough credits"

Comments

0

I am refering to the same material by Dr. Andrew Harrington and I am doing the same program, my program may look pretty much amatuerish so I would highly appreciate if someone can kindly refine it

def graduateEligibility(credits):
    if credits >= 120:
        print("Congratulations on successfully completing the course.....see you on graduation day!")
    else:
        print("Sorry! Your credits are below 120, please kindly retake the evaluaton tests")


def main():
    E = float(input("Enter your English marks:"))
    M = float(input("Enter your Mathematics marks:"))
    P = float(input("Enter your Physics marks:"))
    C = float(input("Enter your Chem marks:"))
    Cf = float(input("Enter your Comp.Fundamentals marks:"))
    Fin_Edu = float(input("Enter your finance marks:"))
    Const = float(input("Enter your Constitutional.Stds marks:"))
    R = float(input("Enter your Reasoning marks:"))
    TotalCredits = (E+M+P+C+Cf+Fin_Edu+Const+R)
    YourCredits = graduateEligibility(TotalCredits)
main()

For simplicity sakes i have taken 8 subjects each have 20 credits.

Comments

0

You need to accept integer input for that and also need to handle non integer inputs.

print "How many credits do you currently have: "
try:
    credits = int(raw_input("> "))
    if credits >= 120:
        print "You have graduated!"
    else:
        print "Sorry not enough credits"
except ValueError:
    print "Invalid input"

Output:

> 100
Sorry not enough credits

> 121
You have graduated!

> aaaa
Invalid input

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.