ある測定値を別の測定値に変換するコードを作成しました。 (私は辞書を使用することはできません) NameError:name 'num2'は定義されていません。つまり、2番目のループのif文が決して真実にならないことを意味します。それでも、何がうまくいかなかったのか分かりません。Python、メトリック変換プログラム、辞書なし
アイデアをお寄せいただきありがとうございます。ありがとう!
# Metric conversion program
def displayWelcome():
print('This program converts convert one length unit into another unit')
print('Following are the available units: (mm), (cm), (m), (km), (inches), (ft), (yds), (miles)')
def getConvertfrom():
which1 = input('Which unit would you like to convert from: ')
def getConvertto():
which2 = input ('Which unit would you like to convert to: ')
num1 = float(input('Enter a value: '))
available_units = ('mm', 'cm', 'm', 'km', 'inches', 'ft', 'yds', 'miles')
conversions = (1, 10, 1000, 1e6, 25.4, 304.8, 914.4, 1.609344e6)
# Display program welcome
displayWelcome()
# Get which conversion
which1 = getConvertfrom()
which2 = getConvertto()
index = 0
for i in range (0, len(available_units)):
if available_units[i] == str(which1):
num_in_mm = num1 * conversions[i]
for j in range (0, len(available_units)):
if available_units[j] == str(which2):
num2 = num_in_mm/conversions[j]
print(num1, which1, "is equal to", num2, which2)
'range(0、len(available_units))' - > 'range(len(available_units))'です。 'which1'はすでに文字列なので、' str(which1) ' - >' which1'です。一致が見つかったときに '中断したい 'とし、' else'ブロックをあなたのforループに追加して、ユニットが不明であると不平を言います... –
私は最初の部分でリターンを使用したことがないことを知りました。みんな、ありがとう! – Lexi