2016-08-12 1 views
0

私は旅行に行くことができる簡単なプログラムを書いていますが、最後3最小。全体のプログラムは、すべてがうまく動作より多くの部品を持っており、全体のプログラムは動作しますが、今、私はそれが最も基本的なフォームのでは、それを強化し、3与えられた整数パラメータがXより小さい場合に再起動する関数またはループを定義する、または3未満の値を受け入れることを拒否する

に機能hotel_cost(days)の最小限のパラメータ値を設定したい、私の機能は次のとおりです。

def hotel_cost(days): 
    # hotel costs 140$ per day 
    return 140 * int(days) 

以上は明らかに動作しますが、私はそれが私はしばらくの間、およびブールを試してい未満3.

を受け付けないように、それを変更したいが、それは私にNoneを与え、私は」また、偶発的な無限回帰に直面した。申し訳ありませんが、この質問が基本的すぎる場合は、それは私の最初のものです。私は検索しようとしたが役に立たなかった。

def hotel_cost(days): 
    if int(days) >= 3: 
     return 140 * int(days) 
    else: 
     return False 

をそしてあなたが行うことができます:質問の私の理解から、

+0

あなたが実験したものを表示していない間は、私たちは手助けできません。 – jrjc

答えて

0

あなたは、ユーザーに日数を尋ねて、価格を1つの機能で提示することができます。

def ask_num_hotel_days(): 
    i = int(input("Enter nuber of days: ")) 
    while(i < 3): 
     print(str(i) + " is not a valid number of days") 
     i = int(input("Enter nuber of days: ")) 
    return 140 * i 
+0

Ha!はい!できます!コードはとてもシンプルでわかりやすいものです。答えは簡単だとわかっていましたが、ステップロジックによるステップに欠陥があったに違いありません。もし私が単に 'i = int(.......)'をもう一度呼び出すことができれば、それは壊れません。私は 'while 'と' try、except'を試しましたが、すべてを 'input 'と組み合わせた状況ではそれを理解できませんでした。 – Aleksik

0

、あなたがこれを行うことができ、それはしばらくの外に到達したら

while not hotel_cost(days): 
    print("How many days are you staying?") 
    days = input() 

を、日量は次のようになります有効なだけでなく、コスト。

EDIT:

私が提案内容についてより明確にするには、whileループ内のコードを書きました。

私はそれが役に立ちそうです。 乾杯。

+0

'' Days> = 3'という行が 'TypeError'を返すという点を除いて、あなたのメソッドはほぼ正しいです。変更は 'int(days)> = 3'になります。 –

+0

ありがとうございました。 –

+0

確かに。その脳はいつも指先より先に進んでいます;) –

関連する問題