Я работаю с Python и почти написал код как часть необходимого задания.
#------Unit converter------#
#-------Challenge 5-------#
#-------Definitions-------#
def currencyConvert():
print("C")
def tempConvert():
print("T")
def massConvert():
print("M")
def volConvert():
print("V")
#-------Executions--------#
print("Welcome to my unit converter.\nIn this software, you can convert between the following things:")
print(" - Currency: United States Dollar (USD), Pound Sterling (GBP) and Serbian Dinar (RDS).")
print(" - Temperature: Fahrenheit (F) and Celsius (C)")
print(" - Mass: Pounds (lbs) and grams (mg/g/kg)")
print(" - Volume: Fluid ounces (fl oz) and litres (ml/cl/l")
def phaseOne():
global unitType
print("--------------------")
unitType = input("What kind of conversion would you like to make? Currency (C), temperature (T), mass (M) or volume (V)?\n>>>")
if unitType == "C" or "c":
currencyConvert()
elif unitType == "T" or "t":
tempConvert()
elif unitType == "M" or "m":
massConvert()
elif unitType == "V" or "v":
volConvert()
else:
print("That is not a valid input. Please try again.")
phaseOne()
phaseOne()
Моя проблема в том, что когда я запускаю программу и ввожу «V», я ожидаю, что будет вызвана функция volConvert () (следовательно, вывести «V»), но вместо этого она вернет «C». Чем это вызвано?
У меня еще нет навыков работы с Python, но я работаю над этим, и мне нужна небольшая помощь.
Спасибо!






Условия, которые у вас есть, работают как (unitType == "C") or "c", и это не то, что вам нужно. Вместо этого вам нужен unittype in ("C", "c").
@NChauhan: Я не измерял, но слышал похожие вещи. Я обновил свой ответ.
Используйте кортеж вместо списка. Экономит память, и я считаю, что это быстрее.