Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.010 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'subject:Python': 0.06; '21,': 0.07; 'steve': 0.09; 'alias': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; '7:35': 0.16; '9:15': 0.16; '>>on': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'hayes': 0.16; 'integers.': 0.16; 'types,': 0.16; 'wrote:': 0.18; 'basically': 0.19; '>>>': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; 'cc:2**0': 0.24; 'script': 0.25; 'header:In-Reply- To:1': 0.27; 'function': 0.29; 'chris': 0.29; 'have,': 0.30; 'message-id:@mail.gmail.com': 0.30; 'fri,': 0.33; 'something': 0.35; 'received:google.com': 0.35; 'should': 0.36; 'nov': 0.38; 'pm,': 0.38; 'does': 0.39; 'anything.': 0.68; 'of:': 0.68; 'age': 0.80; 'clearer': 0.84; 'safer': 0.84; 'subject:Using': 0.84; 'careful': 0.91; 'to:none': 0.92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=Hsuyv+Nl6KfBGam5HjlNRPQzmr4FnTYPD2wzu/RpCME=; b=T66/HsKdjBDBA2fk0Xz0YFIe7kG2cvLAkL2zlcUriutOyTp2i7PceGzpADN+jwJ5wN no2qlDxHc+wV7ysPK10T1iFpGVR2lJ7C0jvfcQuJYGtyNs1QRFy20UQHDyxjQ6dkhLp8 vyB7ZW0a8pdiGAZpPxEWaOlIKggeGbPmFXP09k47Uv0qyxmlLik1swzN4r1mudWkH7Gq fsUKfaLVDrACb90Pok1CxJVhSU2Ga+UZFJlVWqlegaWlBLS71XwzcA6EkFdlcUJea7AR KQgIDmKl8iTIb134arzn59d2eo9khjI22x9oi2HQGqWTqjLlFdyaSOnqwE2kQ7GmQrkW /ZmA== MIME-Version: 1.0 X-Received: by 10.42.106.12 with SMTP id x12mr11979275ico.26.1416565097214; Fri, 21 Nov 2014 02:18:17 -0800 (PST) In-Reply-To: References: Date: Fri, 21 Nov 2014 21:18:17 +1100 Subject: Re: Using Python for date calculations From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 23 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1416565105 news.xs4all.nl 2903 [2001:888:2000:d::a6]:35015 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:81187 On Fri, Nov 21, 2014 at 9:15 PM, Steve Hayes wrote: > On Fri, 21 Nov 2014 19:40:22 +1100, Chris Angelico wrote: > >>On Fri, Nov 21, 2014 at 7:35 PM, Steve Hayes wrote: >>> This Python script does it for me. >>> >>> year = input("Year: ") >>> age = input("Age: ") >>> born = year-age >>> print 'Year of birth:', born >> >>One thing to be careful of: The input() function in Python 2 should be >>avoided. Instead, use int(raw_input("Year: ")) and correspondingly >>Age. It's much safer and clearer than what you have, which is an alias >>for eval(raw_input("Year: ")) - very dangerous. > > I though input() was OK for integers. In Py2, input() is basically not OK for anything. On the (extremely!) rare occasions when you actually want to eval() something the user types, it's better to be explicit: eval(raw_input()). ChrisA