Recur12. Описать рекурсивную функцию DigitCount(S) целого типа, которая находит количество цифр в строке S, не используя оператор цикла. С помощью этой функции найти количество цифр в каждой из пяти данных строк.

Решение на Python 3:

import random
import string
import numpy as np

def RndString():
ru_letters = u"абвгдеёзийклмнопрстуфхъыьэАБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЬЭ"
en_letters = u"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
tj_letters = u"ғӣқӯҳҷҒӢҚӮҲҶ"

N = random.randrange(1,10)
s_ru = random.sample(ru_letters, N)
N = random.randrange(1,10)
s_en = random.sample(en_letters, N)
N = random.randrange(1,10)
s_tj = random.sample(tj_letters, N)
N = random.randrange(1,10)
s_digit = list(np.random.choice(list(string.digits), N))
s = s_ru + s_en + s_tj + s_digit + [' ',' ']
random.shuffle(s)
rnd_str = "".join(s)
return rnd_str

def DigitCount(S):
print(S)
if S[0] in string.digits:
x = 1
else:
x = 0

if len(S) == 1:
return x

return x + DigitCount(S[1:])

rnd_str = RndString()
print("String:",rnd_str)
print("Number of digits:",DigitCount(rnd_str))