为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

回首忆惘然 2021-07-28 14:41:53
我试图将 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 + baselimiterlimitconverto1 = (lset / init) * (init / lset)infalatetoinput = (((init * float(IN))) / init )limit = limitconverto1 * infalatetoinputresult = limitprint(result)
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

所以这里有一个代码可以做你想要的。


现在说实话,它有效,但我不明白你为什么这样做。你做了一堆奇怪的计算,比如乘以和除以相同的数字......


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 IN

N = 0.5 if N == 0 else N

NP = 0.5 if NP == 0 else NP


init = IN * 1/2 

baselimiter = -N*1/2 + IN*1/2*NP*1/2 # Removed all the superfluous float() and parenthesis.


lset = init + baselimiter

limitconverto1 = (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 = limit


print(result) # Your result is always IN...


查看完整回答
反对 回复 2021-08-03
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

声明变量时可以使用单行:


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.


我希望我以前的回答的这个编辑完全回答了你的问题,为了更多的澄清,我将在评论中提供


查看完整回答
反对 回复 2021-08-03
  • 2 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信