Eenvoudig beginners vraagje

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Eenvoudig beginners vraagje

Marc Stevens
Hoe onderschep ik een error melding als bij de invoer van een getal als een letter word ingegeven?
Bijv:


import math

x=int(raw_input(“geef een getal in”))
wortel=math.sqrt(x)
print x

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Eenvoudig beginners vraagje

Dorian Hoxha
Hi Marc. Try this:

while True:
    try:
        x = int(raw_input("give a number:")
        break
    except (ValueError, KeyError):
        print "x must be a number, while you entered %s" % x
math.sqrt root = (x)
print x

See docs to learn more: https://docs.python.org/2/library/exceptions.html (python2.7)



2015-03-17 0:32 GMT+01:00 Marc Stevens <[hidden email]>:
Hoe onderschep ik een error melding als bij de invoer van een getal als een letter word ingegeven?
Bijv:


import math

x=int(raw_input(“geef een getal in”))
wortel=math.sqrt(x)
print x

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl



_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Eenvoudig beginners vraagje

Dorian Hoxha

On Tue, Mar 17, 2015 at 1:09 AM, Dorian Hoxha <[hidden email]> wrote:
Hi Marc. Try this:

while True:
    try:
        x = int(raw_input("give a number:")
        break
    except (ValueError, KeyError):
        print "x must be a number, while you entered %s" % x
math.sqrt root = (x)
print x

See docs to learn more: https://docs.python.org/2/library/exceptions.html (python2.7)



2015-03-17 0:32 GMT+01:00 Marc Stevens <[hidden email]>:
Hoe onderschep ik een error melding als bij de invoer van een getal als een letter word ingegeven?
Bijv:


import math

x=int(raw_input(“geef een getal in”))
wortel=math.sqrt(x)
print x

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl




_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Eenvoudig beginners vraagje

Ward De Ridder-2
Hoewel dit antwoord met try en catch zeker zal werken, lijkt dit me in dit geval niet de beste oplossing.
Er bestaat in python een isdigit functie [1], die je kan gebruiken als test of een string enkel uit getallen bestaat. Aan de hand daarvan kan je kijken of je input valid is of niet.
Voor complexere inputvalidatie is er altijd nog de regular expression, maar dat is een beetje moeilijker [2].

Just my 2 cents
Ward

[1] http://www.tutorialspoint.com/python/string_isdigit.htm
[2] https://docs.python.org/2/library/re.html

nog een beetje code:

x=raw_input("geef een getal in: ")
if x.isdigit():
    wortel=math.sqrt(int(x))
    print wortel
else:
    print "invalid input"

On Tue, Mar 17, 2015 at 01:10:53AM +0100, Dorian Hoxha wrote:

> This link is better:
> https://docs.python.org/2/tutorial/errors.html
>
>
> On Tue, Mar 17, 2015 at 1:09 AM, Dorian Hoxha <[hidden email]>
> wrote:
>
> > Hi Marc. Try this:
> >
> > while True:
> >     try:
> >         x = int(raw_input("give a number:")
> >         break
> >     except (ValueError, KeyError):
> >         print "x must be a number, while you entered %s" % x
> > math.sqrt root = (x)
> > print x
> >
> > See docs to learn more: https://docs.python.org/2/library/exceptions.html
> > (python2.7)
> >
> >
> >
> > 2015-03-17 0:32 GMT+01:00 Marc Stevens <[hidden email]>:
> >
> >> Hoe onderschep ik een error melding als bij de invoer van een getal als
> >> een letter word ingegeven?
> >> Bijv:
> >>
> >>
> >> import math
> >>
> >> x=int(raw_input(“geef een getal in”))
> >> wortel=math.sqrt(x)
> >> print x
> >>
> >> _______________________________________________
> >> Python-nl mailing list
> >> [hidden email]
> >> https://mail.python.org/mailman/listinfo/python-nl
> >>
> >>
> >

> _______________________________________________
> Python-nl mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/python-nl

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Eenvoudig beginners vraagje

Floris van Manen
In reply to this post by Dorian Hoxha

On 17 Mar 2015, at 01:09, Dorian Hoxha <[hidden email]> wrote:

while True:
    try:
        x = int(raw_input("give a number:")
        break
    except (ValueError, KeyError):
        print "x must be a number, while you entered %s" % x
math.sqrt root = (x)
print x


Er lopen wat dingen door elkaar.
Je vraagt een getal, maar eigenlijk wil je een integer.
Als je iets niet-integer invult, zal x geen waarde hebben, die kun je later dus ook niet printen.
Bovendien moet je nadat je een fout hebt gemeld niet alsnog die ongedefinieerde waarde gebruiken voor de berekening van de sqrt.



while True:
    try:
        x = raw_input(“Give an integer number:”
        print math.sqrt( int(x) )
    except (ValueError, KeyError):
        print "You entered a non-integer %s" % x



_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Eenvoudig beginners vraagje

Michiel Overtoom
In reply to this post by Ward De Ridder-2

On Mar 17, 2015, at 05:11, Ward De Ridder wrote:

> Hoewel dit antwoord met try en catch zeker zal werken, lijkt dit me in dit geval niet de beste oplossing.
> Er bestaat in python een isdigit functie [1], die je kan gebruiken als test of een string enkel uit getallen bestaat. Aan de hand daarvan kan je kijken of je input valid is of niet.

Pythonischer is het om ervan uit te gaan dat de input wel goed zal zijn en  alle validatie aan int() over te laten in dit geval. Scheelt een hoop code. Vang echter wel een eventuele exception af, mocht het mis gaan.

"It is easier to obtain forgiveness than permission."

Groets,

--
"You can't actually make computers run faster, you can only make them do less." - RiderOfGiraffes

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Loading...