数値の入力を受け入れて、確認するスクリプトを作成しようとしています。
(a)入力が実際には数値であり、(b)問題の数値が17以下であること。
私はさまざまな「if」ステートメントを無駄に試しましたが、今は「try」ステートメントに頭を悩ませようとしています。これは、これまでの私の最善の試みです。
def listlength():
print "How many things (up to 17) do you want in the list?"
global listlong
listlong = raw_input("> ")
try:
listlong = int(listlong)
listlong <= 17
except:
print "Gotta be a number less than 17, chumpy!"
listlength()
liststretcher()
これは、試行の最初の要素に対して機能します。数値でない場合は、listlength関数を再度実行する必要があります。ただし、2番目の要素(<= 17)は完全に無視されます。
私も試しました
try:
listlong = int(listlong) and listlong <= 17
...しかし、それでも機能的な最初のチェックしか得られず、2番目のチェックは完全に無視されます。
2つのtryステートメントがある場合も同じ結果が得られます。
try:
listlong = int(listlong)
except:
print "Gotta be a number, chumpy!"
listlength()
try:
listlong <=17
except:
print "Gotta be less than 17!"
listlength()
liststretcher()
試してみる方法はありますか:2つのことを確認し、例外を通過する前に両方を通過する必要がありますか?または、liststretcher()コマンドに進む前に、同じ定義のステートメントを2つ試してみる必要がありますか?
以下のS.Lottに応えて、私の意図は、「try:listlong <= 17」が、「listlong」変数が17以下であるかどうかを確認することでした。そのチェックが失敗した場合は、「例外」に移動します。合格すると、以下のliststretcher()に移動します。
これまでの回答を読んで、フォローアップするものが約8つあります...