У меня есть задание для моего компьютерного класса, и один из вопросов попросил нас написать код, который будет вычислять среднее число цифр, пока оно не попадет на букву (алфавит) ,Как рассчитать среднее значение цифры в Python
Это было описание:
Эта функция принимает в качестве входного одной строки, содержащей цифры или буквы. Функция должна возвращать одно число с плавающей запятой, равное среднему, рассчитанному с учетом всех цифр в строке, начиная с первой позиции в строке и считая все цифры до тех пор, пока не будет найдена одна буква или до достижения конца строки. Если цифр нет, функция должна вернуть значение
0.0
.
Так что я придумал следующий код:
def avgUntilLetter (st):
digits1 = [int(x) for x in st if x.isdigit()]
total = sum(digits1)
if digits1:
avg = float(total)/len(digits1)
return avg
if st.isalpha():
return 0.0
Для ответа, например, я должен получить 2.0
в качестве возвращаемого значения, если CodeWrite положить в avgUntilLetter('123a456')
. Я получаю среднее значение от всех цифр, что мне нужно для ввода кода, чтобы исправить это?
Как можно заметить, что ваш код делает * не попытка * не останавливаться при достижении нецифровой; где-то вам придется «ломать», когда это произойдет. – jonrsharpe
Я проголосовал за это, потому что OP * предпринял разумную попытку решить эту проблему самостоятельно и включил их код, ожидаемый результат и то, что они получили. –