//我 2 周前開始學習 python,現在這個問題堆了幾天。我需要有人給我提示或接近解決方案的東西。謝謝。這是我的代碼。
from math import sqrt
# Write your solution here
number = int(input("Please type in a number:"))
while True:
if number > 0:
print(sqrt(number))
break
if number == 0:
print("Invalid number")
break
if number < 0:
print("Exiting...")
break
//Expected output example
Please type in a number: 16
4.0
Please type in a number: 4
2.0
Please type in a number: -3
Invalid number
Please type in a number: 1
1.0
Please type in a number: 0
Exiting..
uj5u.com熱心網友回復:
第一個break陳述句總是跳出回圈,所以你永遠不會到達第二個(和第三個 if)。您可能希望將其縮進為 if 陳述句主體的一部分:
from math import sqrt
# Write your solution here
number = int(input("Please type in a number:"))
while True:
if number > 0:
print(sqrt(number))
break
if number == 0:
print("Invalid number")
break
if number < 0:
print("Exiting...")
break
另外,如果你想繼續回圈直到0被讀取,你可能想要洗掉前兩個break陳述句并將輸入讀取移動到函式中:
from math import sqrt
# Write your solution here
while True:
number = int(input("Please type in a number:"))
if number > 0:
print(sqrt(number))
if number == 0:
print("Invalid number")
if number < 0:
print("Exiting...")
break
if 的條件是互斥的,因此一次只能輸入一個陳述句。在更復雜的場景下,如果你只想輸入一個 if 陳述句,你可能想使用elifor continue:
from math import sqrt
# Write your solution here
while True:
number = int(input("Please type in a number:"))
if number > 0:
print(sqrt(number))
continue # continue with next loop iteration, skip anything below
elif number == 0: # only check condition, if first loop condition was false
print("Invalid number")
elif number < 0:
print("Exiting...")
break
編輯:John Gordon 正確地指出,您的案例exit和invalid number被交換了。為確保這是一個完整的解決方案,我還將合并此更改:
from math import sqrt
# Write your solution here
while True:
number = int(input("Please type in a number:"))
if number > 0:
print(sqrt(number))
elif number < 0:
print("Invalid number")
elif number == 0:
print("Exiting...")
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/534566.html
標籤:Python循环验证
