Başlık hemen hemen gerçekleşmesini olsun isterim özetliyor. İşte , izin sadece pozitif tamsayılar
ben ne var ve program pozitif olmayan tamsayı üzerinde patlatmasa ederken, ben kullanıcı pozitif olmayan tamsayı temelde saçma olduğunu haberdar olmak istiyorum.import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-g", "--games", type=int, default=162,
help="The number of games to simulate")
args = parser.parse_args()
Ve çıkışı: negatif olan
python simulate_many.py -g 20
Setting up...
Playing games...
....................
Çıktı: Şimdi
python simulate_many.py -g -2
Setting up...
Playing games...
, belli ki if args.games
negatif olduğunu belirlemek için eğer ben sadece bir ekleme olabilir, ama eğer merak ediyordum otomatik kullanım baskı yararlanmak üzere argparse
seviyesinde tuzak bunu bir yolu vardı. şimdi ben yapıyorum için
python simulate_many.py -g -2
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid positive int value: '-2'
ve ben mutlu değilim sanırım:
python simulate_many.py -g a
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid int value: 'a'
böylece gibi:
İdeal olarak, bu buna benzer bir şey basacaktır
if args.games <= 0:
parser.print_help()
print "-g/--games: must be positive."
sys.exit(1)
sizin işlevi birden çok değer olabilir mi? Bu nasıl çalışıyor? – Tom
Eğer 'int' dönüşümü başarısız olursa, hala okunabilir bir çıktı olacak mı? Yoksa bunun için el ile dönüşümü yükseltmeyi denemelisiniz? – NOhs
@MrZ Bu, hata: argüman foo: geçersiz check_positive değeri gibi bir şey verir: 'foo =' '. Daha iyi bir hata mesajı ile bir istisnayı yeniden gündeme getiren bir 'try: '...' dışında ValueError hariç. –
Yuushi