Форум сайта python.su
xam1816В том-то и дело, что мы ищем первую букву строки, после неё ищем вторую букву строки такую, перед которой есть цифра.
В этой строке первая цифра 1,далее ищем первую букву после цифры:
!#@ $,первая буква попавшаяся после цифры j,вторая k
Офлайн
py.user.next
ищем первую букву строки, после неё ищем вторую букву строки такую, перед которой есть цифра.
def f(string): flag_alpha = False flag_digit = False second_alpha = None for s in string: if flag_alpha and flag_digit: if s.isalpha(): second_alpha = s break else: continue if s.isalpha() and not flag_alpha: flag_alpha = True continue elif s.isdigit() and not flag_digit: flag_digit = True continue return second_alpha s1 = 'aaa bbb ccclkj!@# $lll kkk 1!#@ $jkkk 123 bbb aaa' print(s1) print(f(s1)) s2 = ',;1abc bbb ccclkj!@# $lll kkk' print(s2) print(f(s2)) s3 ='bbb ccclkj!@# $lll kkk123::@' print(s3) print(f(s3))
aaa bbb ccclkj!@# $lll kkk 1!#@ $jkkk 123 bbb aaa j ,;1abc bbb ccclkj!@# $lll kkk b bbb ccclkj!@# $lll kkk123::@ None Process finished with exit code 0
Офлайн
xam1816None - неправильный ответ, строка none должна выводиться. Это указано в задании.
вывод...
bbb ccclkj!@# $lll kkk123::@
None
xam1816не проходит 8 тестов из 20 тестов из-за nonedef f(string): flag_alpha = False flag_digit = False second_alpha = None for s in string: if flag_alpha and flag_digit: if s.isalpha(): second_alpha = s break else: continue if s.isalpha() and not flag_alpha: flag_alpha = True continue elif s.isdigit() and not flag_digit: flag_digit = True continue return second_alpha
Отредактировано py.user.next (Дек. 21, 2020 19:13:13)
Офлайн
я один пришел на викторину
def f(string): n = 0 for s in string: n += 1 if s.isalpha(): for i in string[n:]: n += 1 if i.isdigit(): for j in string[n:]: if j.isalpha(): return j elif s.isdigit(): for i in string[n:]: n += 1 if i.isalpha(): for j in string[n:]: if j.isalpha(): return j return 'none'
Отредактировано xam1816 (Дек. 21, 2020 21:27:22)
Офлайн
с двумя флагами
def f(string): flag_alpha = False flag_digit = False l = len(string) n = 0 while n!=l: if flag_alpha and flag_digit: if string[n].isalpha(): return string[n] elif string[n].isalpha(): flag_alpha = True elif string[n].isdigit(): flag_digit = True n+=1 return 'none'
Офлайн
Функция xam1816 link
xam1816Проходит все тесты из 20 тестов.def f(string): n = 0 for s in string: n += 1 if s.isalpha(): for i in string[n:]: n += 1 if i.isdigit(): for j in string[n:]: if j.isalpha(): return j elif s.isdigit(): for i in string[n:]: n += 1 if i.isalpha(): for j in string[n:]: if j.isalpha(): return j return 'none'
xam1816Проходит все тесты из 20 тестов.def f(string): flag_alpha = False flag_digit = False l = len(string) n = 0 while n!=l: if flag_alpha and flag_digit: if string[n].isalpha(): return string[n] elif string[n].isalpha(): flag_alpha = True elif string[n].isdigit(): flag_digit = True n+=1 return 'none'
Отредактировано py.user.next (Дек. 22, 2020 00:51:27)
Офлайн
py.user.next
можешь теперь их оптимизировать
def f(string): flag_alpha = False flag_digit = False while string: if flag_alpha and flag_digit: if string[0].isalpha(): return string[0] elif string[0].isalpha(): flag_alpha = True elif string[0].isdigit(): flag_digit = True string =string.replace(string[0],"",1) return 'none'
Офлайн
через переменную
def f(string): found = 'not' while string: if found == 'alpha and digit': if string[0].isalpha(): return string[0] elif found == 'not': if string[0].isdigit(): found = 'digit' elif string[0].isalpha(): found = 'alpha' elif found == 'alpha': if string[0].isdigit(): found = 'alpha and digit' elif found == 'digit': if string[0].isalpha(): found = 'alpha and digit' string = string.replace(string[0],'',1) return 'none'
Офлайн
У меня есть вопрос, но пока не могу его сформулировать. Постараюсь на выходных. Но я совсем новичок, я только робота прошел, и черепашку начал, со списками даже ещё не работал …
Офлайн
Функция xam1816 link
xam1816Проходит все тесты из 24 тестов.def f(string): flag_alpha = False flag_digit = False while string: if flag_alpha and flag_digit: if string[0].isalpha(): return string[0] elif string[0].isalpha(): flag_alpha = True elif string[0].isdigit(): flag_digit = True string =string.replace(string[0],"",1) return 'none'
xam1816Проходит все тесты из 24 тестов.def f(string): found = 'not' while string: if found == 'alpha and digit': if string[0].isalpha(): return string[0] elif found == 'not': if string[0].isdigit(): found = 'digit' elif string[0].isalpha(): found = 'alpha' elif found == 'alpha': if string[0].isdigit(): found = 'alpha and digit' elif found == 'digit': if string[0].isalpha(): found = 'alpha and digit' string = string.replace(string[0],'',1) return 'none'
Офлайн