在 Python 中使用 while 循环的自然对数
Natural logarithm using while loop in Python
函数:y(x) = ln 1/(1-x)
如何编写 Python 程序来针对任何用户指定的 x 值计算上述函数,其中 ln 是自然对数(以 e 为底的对数)?我将强制使用 while
循环,以便程序对输入程序的每个合法 x 值重复计算。当输入非法值“x”时,我使用break
终止程序。
我试过使用下面的代码,但似乎 运行 不合适:
import math
n = int(input("Enter the number to be converted: "))
while n >= 0:
if n <= 0:
break
print("Your number is not positive terminating program.")
x = math.log(n) * 1/(1-n)
print("The Log Value is:", x)
所以实际上你只是在 while 循环中没有正确的行
import math
valid = True
while valid == True:
n = int(input("Enter the number to be converted: "))
if n <= 0:
print("Your number is not positive terminating program.")
valid = False
else:
x = math.log(n) * 1/(1-n)
print("The Log Value is:", x)
尝试:
import math
while True: # infinite loop, to be halted by break
x = float(input('Enter the number to be converted: ')) # get the input
if x >= 1: # is the input legal?
print('The function cannot be evaluated at x >= 1.')
break # break out of the loop if the input is "illegal"
y = math.log(1 / (1 - x))
print('The log value is:', y)
首先,你的程序可能会陷入死循环;例如,如果您输入 n = 1
,则 n >= 0
为真,n <= 0
为假,因此您的程序会无限期地运行 while
循环。
函数的“合法输入”必须是(严格)小于 1 的(实)数。如果 n == 1
,那么您正在除以零。如果 n > 1
,那么您在对数函数中输入了一个负数。
在建议的代码中,我只检查输入的“数字合法性”;即,输入空字符串会引发错误。但我认为这超出了你在作业中的要求。
函数:y(x) = ln 1/(1-x)
如何编写 Python 程序来针对任何用户指定的 x 值计算上述函数,其中 ln 是自然对数(以 e 为底的对数)?我将强制使用 while
循环,以便程序对输入程序的每个合法 x 值重复计算。当输入非法值“x”时,我使用break
终止程序。
我试过使用下面的代码,但似乎 运行 不合适:
import math
n = int(input("Enter the number to be converted: "))
while n >= 0:
if n <= 0:
break
print("Your number is not positive terminating program.")
x = math.log(n) * 1/(1-n)
print("The Log Value is:", x)
所以实际上你只是在 while 循环中没有正确的行
import math
valid = True
while valid == True:
n = int(input("Enter the number to be converted: "))
if n <= 0:
print("Your number is not positive terminating program.")
valid = False
else:
x = math.log(n) * 1/(1-n)
print("The Log Value is:", x)
尝试:
import math
while True: # infinite loop, to be halted by break
x = float(input('Enter the number to be converted: ')) # get the input
if x >= 1: # is the input legal?
print('The function cannot be evaluated at x >= 1.')
break # break out of the loop if the input is "illegal"
y = math.log(1 / (1 - x))
print('The log value is:', y)
首先,你的程序可能会陷入死循环;例如,如果您输入
n = 1
,则n >= 0
为真,n <= 0
为假,因此您的程序会无限期地运行while
循环。函数的“合法输入”必须是(严格)小于 1 的(实)数。如果
n == 1
,那么您正在除以零。如果n > 1
,那么您在对数函数中输入了一个负数。
在建议的代码中,我只检查输入的“数字合法性”;即,输入空字符串会引发错误。但我认为这超出了你在作业中的要求。