//我两周前开始学习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..
第一个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语句,您可能希望使用elif
或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