2016-02-11 192 views
2

我正在處理這個簡單的任務,我需要使用2 while while循環。第一個while循環檢查小時數是否小於0,如果是循環,則應繼續詢問用戶。 這裏是我的代碼:如何在python中退出while循環?

hours = float(input('Enter the hours worked this week: ')) 

count = 0 
while (0 > hours): 
    print ('Enter the hours worked this week: ') 
    count = count + 1 

pay = float(input('Enter the hourly pay rate: ')) 
while (0 > pay): 
    print ('Enter the hourly pay rate: ') 
    count = count + 1 

total_pay = hours * pay 

print('Total pay: $', format(total_pay, ',.2f')) 
+0

請使用正確的格式。你的代碼不會像那樣執行。 – Goodies

回答

4

您退出循環。

在你的情況,你把用戶的輸入,如果hours < 0,您打印的提示和更新計數,但你不更新小時。

while (0 > hours): 
    print ('Enter the hours worked this week: ') 
    count = count + 1 

應該是:

while (0 > hours): 
    hours = float(input('Enter the hours worked this week: ')) 
    count = count + 1 

同樣薪酬:

while (0 > pay): 
    pay = float(input('Enter the hourly pay rate: ')) 
    count = count + 1 
+0

@ munk你的最終代碼是怎麼樣的? – progx

+1

@progx我不會爲你做你的功課。看看你的解決方案,看看我的。應該非常清楚您需要進行更改的位置。在我的代碼中,您將代碼中的一行代入您使用的每個while循環的一行。 – munk

+0

我按照你的建議做了,但是在工作時間輸入2個負數後失敗。我使用python 3.4的方式 – progx

4

break是你在找什麼。

x = 100 
while(True): 
    if x <= 0: 
     break 
    x -= 1 
print x # => 0 

至於你的例子,沒有什麼會導致休息的發生。例如:

hours = float(input('Enter the hours worked this week: ')) 

count = 0 

while (0 > hours): 
    print ('Enter the hours worked this week: ') 
    count = count + 1 

您根本沒有編輯hours變量。這隻會繼續打印出"Enter the hours worked this week: "並且無限增加count。我們需要知道提供更多幫助的目標是什麼。

+0

爲什麼不'while(x> 0)'? –

+1

否則'break'不會被顯示 –

+0

關鍵是要顯示OP實際上做了什麼。 while(真)是一個沒有斷言的無限循環。 – Goodies

1

好了,對方的回答顯示瞭如何跳出while循環的,但你也不能分配給工資和小時變量。您可以使用內置的輸入功能讓用戶通過使用兩種或break使病情提供假到什麼到你的程序

hours = float(input('Enter the hours worked this week: ')) 

count = 0 
while (0 > hours): 
    hours = input('Enter the hours worked this week: ') 
    count = count + 1 

pay = float(input('Enter the hourly pay rate: ')) 
while (0 > pay): 
    pay = input('Enter the hourly pay rate: ') 
    count = count + 1 

total_pay = hours * pay 

print('Total pay: $', format(total_pay, ',.2f')) 
+0

@我輸入2個負數後,你的代碼會失敗。 – progx

+0

@ Garret如果我這樣做:輸入本週工作的小時數:-30然後輸入本週工作的小時數:-12。我收到一個錯誤 – progx

+0

你會得到什麼錯誤?在我的機器,它不停地問我,直到我在正值 –