Получение отношения a в b

#python #python-3.x

#python #python-3.x

Вопрос:

Это текущий код, который у меня есть, проблема, очевидно, в том, что я не могу разделить строки на строки, но я не уверен, как приступить к редактированию кода, чтобы заставить его работать.

 def Fraction(c, s):
    #Returns the fraction of 's' formed by 'c'.
    return c / s
print(Fraction("a", "ababab"))
  

Теоретически должно быть напечатано 0,5; 'a' составляет половину всего текста 'ababab' .

Комментарии:

1. не могли бы вы объяснить, почему он должен печатать 0.5?

2. a составляет половину (0,5) от общей строки. в строке есть 6 символов, и 3 из них являются a.

3. Итак, вам нужно соотношение , а не доля.

Ответ №1:

Очевидно, вам нужно соотношение здесь; число от 0.0 до 1.0, указывающее, какой процент от большей строки использует меньшую строку:

 def ratio(c, s):
    return (float(s.count(c) * len(c))) / len(s)
  

ДЕМОНСТРАЦИЯ:

 >>> def ratio(c, s):
...     return (float(s.count(c) * len(c))) / len(s)
...
>>> ratio("a", "ababab")
0.5
>>> ratio("ab", "ababab")
1.0
  

Комментарии:

1. Это работает, я просто назвал его в соответствии с требованиями. Тем не менее, работает, спасибо.

2. Именование довольно .. запутанное, потому что в Python есть fractions.Fraction() тип .

3. хм, хорошо, я все еще новичок во всем этом и просто пытаюсь соответствовать тому, как должна быть названа функция.