Форум сайта python.su
Есть строка с символами f98neroi4nr0c3n30irn03ien3c0rfekdno400wenwkowe00koijn35pijnp46ij7k5j78p3kj546p465jnpoj35po6j345" нужно создать функцию которая работает в 4 случаях
1 если длина строки в диапазоне 30-50 принтует длину (количество букв и цифр)
2 если длина меньше 30 принтует сумму всех чисел и отдельно строку без цифр только буквы
3 если длина больше 50 придумать самому
4 и 3 верхние функции поместить в одну
Офлайн
А в чем проблема? не знаете как создать функцию, или как узнать длинну строки, или не проходили условный оператор if?
[code python][/code]
Офлайн
я немогу понять как этот скрипт сделать
Офлайн
вот есть такой вариант но он не работает
def foo(input):
if len(input) > 50:
print('Pridumal sam')
elif len(input) < 30:
for ch in input:
sum = 0
new_str = ''
if ch.isdigit:
sum += int(ch)
else:
new_str += ch
print(sum)
print(new_str)
else:
print(len(input)
Офлайн
Вот отлично, можете если захотите, но есть пару НО:
1. input и sum это встроенные функции пайтона, лучше не использовать такие имена для переменных.
2. isdigit это метод, соответственно его вызывать нужно.
3. обнуление переменных нужно делать до цикла
в итоге получаем:
def foo(in_str): if len(in_str) > 50: print('Pridumal sam') elif len(in_str) < 30: s = 0 new_str = '' for ch in in_str: if ch.isdigit(): s += int(ch) else: new_str += ch print(s) print(new_str) else: print(len(in_str)) s = 'f98neroi4nr0c3n30irn03ien3c0rfekdno400wenwkowe00koijn35pijnp46ij7k5j78p3kj546p465jnpoj35po6j345' foo(s) s = 'f98neroi4nr0c3n30irn03ien3c0rfekdno400we' foo(s) s = 'f98nero' foo(s) >>> Pridumal sam 40 17 fnero >>>
[code python][/code]
Отредактировано PEHDOM (Ноя. 2, 2017 14:30:35)
Офлайн
разъясните функция _def foo(in_str)_ проверяет строки и числа?
Офлайн
def foo это обьявление нашей функции которую мы пишем сами. (in_str) аргумент который принимает функция.
А дальше она делает все то что вы написали в ней. Если длинна того что передали более 50 то делаем согласно пункту 3 в задании, если меньше 30 - пункту 2 , иначе пункту 1.
Или нужно было для каждого пункта задания написать отдельную функцию, и потом вызывать их из 4-й?
[code python][/code]
Отредактировано PEHDOM (Ноя. 2, 2017 15:25:13)
Офлайн
как сделать чтобы ввод был с клавы и можно было разделить сколько букв, а сколько цыфр?
Офлайн
я понял что это аргумент но мне нужно сделать описание этой функции, я так понимаю этот аргумент это принятие цифр и букв?
Офлайн
JZ911Для ввода с клавиатуры есть функция input()
как сделать чтобы ввод был с клавы
s = input('Введите строку:') foo(s)
JZ911в смысле?
можно было разделить сколько букв, а сколько цыфр?
[code python][/code]
Отредактировано PEHDOM (Ноя. 2, 2017 15:53:09)
Офлайн