Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 2, 2017 13:09:00

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите создать функцию

Есть строка с символами f98neroi4nr0c3n30irn03ien3c0rfekdno400wenwkowe00koijn35pijnp46ij7k5j78p3kj546p465jnpoj35po6j345" нужно создать функцию которая работает в 4 случаях
1 если длина строки в диапазоне 30-50 принтует длину (количество букв и цифр)
2 если длина меньше 30 принтует сумму всех чисел и отдельно строку без цифр только буквы
3 если длина больше 50 придумать самому
4 и 3 верхние функции поместить в одну

Офлайн

#2 Ноя. 2, 2017 13:19:37

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите создать функцию

А в чем проблема? не знаете как создать функцию, или как узнать длинну строки, или не проходили условный оператор if?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Ноя. 2, 2017 13:26:14

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите создать функцию

я немогу понять как этот скрипт сделать

Офлайн

#4 Ноя. 2, 2017 13:27:06

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите создать функцию

вот есть такой вариант но он не работает

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)

Офлайн

#5 Ноя. 2, 2017 14:25:00

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите создать функцию

Вот отлично, можете если захотите, но есть пару НО:
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)

Офлайн

#6 Ноя. 2, 2017 15:13:53

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите создать функцию

разъясните функция _def foo(in_str)_ проверяет строки и числа?

Офлайн

#7 Ноя. 2, 2017 15:24:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите создать функцию

def foo это обьявление нашей функции которую мы пишем сами. (in_str) аргумент который принимает функция.
А дальше она делает все то что вы написали в ней. Если длинна того что передали более 50 то делаем согласно пункту 3 в задании, если меньше 30 - пункту 2 , иначе пункту 1.

Или нужно было для каждого пункта задания написать отдельную функцию, и потом вызывать их из 4-й?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 2, 2017 15:25:13)

Офлайн

#8 Ноя. 2, 2017 15:39:23

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите создать функцию

как сделать чтобы ввод был с клавы и можно было разделить сколько букв, а сколько цыфр?

Офлайн

#9 Ноя. 2, 2017 15:50:06

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите создать функцию

я понял что это аргумент но мне нужно сделать описание этой функции, я так понимаю этот аргумент это принятие цифр и букв?

Офлайн

#10 Ноя. 2, 2017 15:52:59

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите создать функцию

JZ911
как сделать чтобы ввод был с клавы
Для ввода с клавиатуры есть функция input()
 s = input('Введите строку:')
foo(s)
JZ911
можно было разделить сколько букв, а сколько цыфр?
в смысле?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 2, 2017 15:53:09)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version