1

作成しようとしているコードは、入力された波長値に基づいて電波やマイクロ波などの波長を出力することです。

    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()

2番目のifステートメントを機能させる方法に関するヒント。私の引数が適切に機能しないため、入力したすべての入力は電波を出力するだけです。

また、elif コマンドを使用する必要がある入力がさらに 5 つあります。

4

5 に答える 5

0

bisectこれにはモジュールを使用できます。

from bisect import bisect
freqs = [10**-11,  10**-8, 4*10**-7, 7*10**-7, 10**-3, 10**-1]
names = ['Gamma rays', 'X-rays', 'Ultraviolet', 'Visible light', 
         'Infared', 'Microwaves', 'Radio Waves']
>>> names[bisect(freqs, 10**-2)]
'Radio Waves'
>>> names[bisect(freqs, 10**-4)]
'Microwaves'
于 2013-09-13T18:14:45.987 に答える