带多个子句的Python if语句

2024-05-15 05:57:03 发布

您现在位置:Python中文网/ 问答频道 /正文

im试图创建的代码是根据输入的波长值打印一个波长,例如无线电波或微波。在

    userInput = input("Enter wavelength (m) value: ")
    waveValue= float(userInput)

if waveValue > 10**-1 :
   print("Radio Waves")
elif waveValue < 10**-3  :
   print("Microwaves")
elif waveValue < 7*10**-7 :
   print("Infared")
elif waveValue <4-10**-7 :
   print(" Visible light")
elif waveValue <10**-8 :
   print( "Ultraviolet")
elif waveValue <10**-11 :
   print( "X-rays")
elif waveValue >10**-11 :
   print("Gamma rays")
else : 
   print()

关于如何让第二个if语句工作的任何提示。我输入的每一个输入都只是输出无线电波,因为我的论点不能正常工作。在

另外还有5个输入,我将不得不使用elif命令。在


Tags: 代码inputifvaluefloatprintenter波长
3条回答

我认为你的第二个陈述是错误的。在

它说的是waveValue>;10*-1<;10*-3,我认为是>;-10和<;-30,如果我说的是正确的,那么不可能有大于-10小于-30的数字

对于少量的“中断值”,您的方法没有错。对于大量的“break值”,最好创建一个包含break值和相应操作的表。在

也就是说,在你的例子中,有波长和分类的表格。第一行包含10e-1和“无线电波”,第二行包含10e-3和“微波”

在代码中,您只需循环直到找到waveValue的正确行。在

这在税务表中很常见。另外,您可以将纳税表存储在外部数据库中,而不是在程序中硬编码这些值。在

你想用10的异能吗?因为例如,“10减去1”的约定是1.0e-1。代码中的代码会被转换为“10乘以-1”或-10,我想这不是你想要的。在

我将改写为:

if waveValue > 1.0e-1:
    print("Radio Waves")
elif (waveValue > 1.0e-3) and (waveValue < 1.0e-1):
    print("Micro Waves")

正如前面的一个答案所指出的,对答案进行排序也是更有效的,这样就不需要进行比较的一侧(这些值已经被以前的测试考虑过了)。在

例如:

^{pr2}$

相关问题 更多 >

    热门问题