Я написал программу в Ruby, которая принимает вес пользователя/высоту в качестве входных данных. Я застрял, превратив его в Python. Вот мой рубин код, который работает отлично:Перевод If/Else && RegEx - Ruby to Python
print "How tall are you?"
height = gets.chomp()
if height.include? "centimeters"
#truncates everything but numbers and changes the user's input to an integer
height = height.gsub(/[^0-9]/,"").to_i/2.54
else
height = height
end
print "How much do you weigh?"
weight = gets.chomp()
if weight.include? "kilograms"
weight = weight.gsub(/[^0-9]/,"").to_i * 2.2
else
weight = weight
end
puts "So, you're #{height} inches tall and #{weight} pounds heavy."
Кто-нибудь есть какие-либо советы или указания о том, что я могу перевести это? Вот мой код Python:
print "How tall are you?",
height = raw_input()
if height.find("centimeters" or "cm")
height = int(height)/2.54
else
height = height
print "How much do you weight?",
weight = raw_input()
if weight.find("kilograms" or "kg")
weight = int(height) * 2.2
else
weight = weight
print "So, you're %r inches tall and %r pounds heavy." %(height, weight)
Это не работает. Здесь ошибка я получаю:
MacBook-Air:Python bdeely$ python ex11.py
How old are you? 23
How tall are you? 190cm
Traceback (most recent call last):
File "ex11.py", line 10, in <module>
height = int(height)/2.54
ValueError: invalid literal for int() with base 10: '190cm'
'если height.find ("см" или "см")' - это как 'if height.include? ("сантиметры" || "см") '. Python хорош, но это не волшебство; попробуйте '' сантиметры "в высоту или" см "в высоту'. То же самое для килограммов. Затем вы можете использовать одно и то же регулярное выражение - посмотрите на модуль re. – Ryan
Я не уверен, что в Ruby есть 'height = height' и' weight = weight', но здесь, в Python, вы также можете оставить их – scohe001
Число заполнителей форматирования также не совпадает с '(возраст, рост, вес) 'вы проходите.В любом случае, добавление ошибки, которую вы пытаетесь исправить на этот раз, было бы очень полезно ... – Ryan