猿问

有没有办法用(1/2)的函数替换(输入)零?

我试图将 0 的值替换为 0.5 或最初输入时的 1/2。


例如,我试图在添加功能之前完成它。我只需要为输入重新定义 0 的值,并且只需要为 0 本身的单个实例重新定义。不是 10+ 的值。


以下是项目信息:


IN = input("Enter IN: ")

N = input("Enter N: ")

NP = input("Enter NP: ")


### These two lines are the part I can't get to work:

if digit == float(0):

    digit = float(.5)

###


init = (float(IN)*(float(1)/float(2)))

baselimiter = - (float(N)*(float(1)/float(2))) + ((float(IN)* 

(float(1)/float(2))) * (float(NP)*(float(1)/float(2))))

lset = init + baselimiter

limitconverto1 = (lset / init) * (init / lset)

infalatetoinput = (((init * float(IN))) / init )

limit = limitconverto1 * infalatetoinput


result = limit


print(result)


回首忆惘然
浏览 121回答 2
2回答

慕田峪7331174

所以这里有一个代码可以做你想要的。现在说实话,它有效,但我不明白你为什么这样做。你做了一堆奇怪的计算,比如乘以和除以相同的数字......IN = float(input("Enter IN: "))N = float(input("Enter N: "))NP = float(input("Enter NP: "))# The part that interests you. IN = 0.5 if IN == 0 else INN = 0.5 if N == 0 else NNP = 0.5 if NP == 0 else NPinit = IN * 1/2 baselimiter = -N*1/2 + IN*1/2*NP*1/2 # Removed all the superfluous float() and parenthesis.lset = init + baselimiterlimitconverto1 = (lset / init) * (init / lset) # That's just always 1. What is intended here?infalatetoinput = (((init * float(IN))) / init ) # That's always IN. Same question?limit = limitconverto1 * infalatetoinput # Equivalent to 1 x IN...result = limitprint(result) # Your result is always IN...

摇曳的蔷薇

声明变量时可以使用单行:IN = (float(input("...")) if float(input("...")) != 0 else .5)单行是在声明变量时在一行而不是多行中的for循环或if语句(或两者)。它们只能用于变量的声明。我建议的单行是多行:if float(input("...")) != 0:    IN = float(input("..."))else:    IN = .5 #You don't need to say float(.5) since .5 is a float anyway.我希望我以前的回答的这个编辑完全回答了你的问题,为了更多的澄清,我将在评论中提供
随时随地看视频慕课网APP

相关分类

Python
我要回答