Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 20, 2024 14:33:12

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

Помогите проверить входят ли числа от 0-9 в строку

Добрый день всем!!
Нужно проверить входят ли числа от 0 до 9 в строку «Земля-2023»???

Делаю через метод isalnum из-за того что есть - Оно выдает False ((

 print("земля-2023".isalnum())

Офлайн

#2 Фев. 21, 2024 08:10:13

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите проверить входят ли числа от 0-9 в строку

Ну так это же логично.
Давайте посмотрим на сам оператор даже без его описания
isalnum - это сокращенно IS ALL NUMBERS
Что означает - все симоволы числа
В вашем примере
“земля-2023” не все символы числа - но числа среди них есть. По этому просто нужно пройтись по каждому символу - и если это число - вернуть “True”

 def chek_nums(string):
    for letter in string:
        if letter.isdigit():
            return True
    return False
s1 = "This is test"
s2 = "земля-2023"
print(chek_nums(s1)) # False
print(chek_nums(s2)) # True



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Фев. 21, 2024 14:11:59

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

Помогите проверить входят ли числа от 0-9 в строку

ZerG
Ну так это же логично.Давайте посмотрим на сам оператор даже без его описанияisalnum - это сокращенно IS ALL NUMBERSЧто означает - все симоволы числаВ вашем примере“земля-2023” не все символы числа - но числа среди них есть. По этому просто нужно пройтись по каждому символу - и если это число - вернуть “True”

А без цикла нельзя? Я просто еще не проходил функции. Задача с теми о строках.

Офлайн

#4 Фев. 21, 2024 14:12:50

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

Помогите проверить входят ли числа от 0-9 в строку

Есть ли более простой метод? Или только через функцию и циклы?

Офлайн

#5 Фев. 21, 2024 14:48:21

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите проверить входят ли числа от 0-9 в строку

Да есть конечно. Методов то море.
https://www.w3schools.com/python/python_ref_string.asp

Но в данной простейшей задаче сделать проверку без циклов ПРОЩЕ не получится.
Возможность сама есть, ну например хотябы и так:

 txt = "0Company X-! 1"
# вычислим количество символов в строке без цифр
result = len(txt.translate(str.maketrans('', '', '0123456789')))
# Добавим простейшую проверку - если разница будет не 0 значит явно есть цифры
if (len(txt) - result) != 0:
    print(f"{txt} has numbers")
else:
    print(f"{txt} DON'T has numbers")

Но вы должны понимать что всеравно внутри это будут циклы. Более того я не уверен что с вашим уровнем знаний на данный момент вы можете понять что данный код делает.
Фнкции же тут - совершенно не причем ибо можно обойтись и без них

 txt = "0Company X-! 1"
for letter in txt:
    if letter.isdigit():
        print("Has numbers")
        break



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#6 Фев. 21, 2024 18:24:18

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1365
Репутация: +  120  -
Профиль   Отправить e-mail  

Помогите проверить входят ли числа от 0-9 в строку

DMM
А без цикла нельзя? Я просто еще не проходил функции. Задача с теми о строках.
 print(len("земля") != len("земля".strip('123456789')))

Онлайн

#7 Фев. 22, 2024 15:32:00

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

Помогите проверить входят ли числа от 0-9 в строку

ZerG
Да есть конечно. Методов то море.https://www.w3schools.com/python/python_ref_string.aspНо в данной простейшей задаче сделать проверку без циклов ПРОЩЕ не получится.Возможность сама есть, ну например хотябы и так:

Спасибо за пояснение)) Читаю как раз о цыклах, да логичней и правильней делать конечно через них, но просто задача еще с теми о строках и как бы предполагает решение только методом строк. Просто думал что такой метод сушествуе.

Офлайн

#8 Фев. 22, 2024 15:39:05

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

Помогите проверить входят ли числа от 0-9 в строку

xam1816

Если так то всегда будет возвращать True, а если к примеру строка не имеет чисел тогда как проверить вхождение если результат всегда один и тот же???

Офлайн

#9 Фев. 22, 2024 17:07:01

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

Помогите проверить входят ли числа от 0-9 в строку

ZerG
Да есть конечно. Методов то море.https://www.w3schools.com/python/python_ref_string.aspНо в данной простейшей задаче сделать проверку без циклов ПРОЩЕ не получится.Возможность сама есть, ну например хотябы и так:

 txt = "0Company X-! 1"
# вычислим количество символов в строке без цифр
result = len(txt.translate(str.maketrans('', '', '0123456789')))
# Добавим простейшую проверку - если разница будет не 0 значит явно есть цифры
if (len(txt) - result) != 0:
    print(f"{txt} has numbers")
else:
    print(f"{txt} DON'T has numbers")

А можете хочь немного рассказать о методе translate и maketranslate, а то почитал в инете и не очень понимаю как они работают, какие у них обизательные параметры?

Офлайн

#10 Фев. 22, 2024 17:15:11

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

Помогите проверить входят ли числа от 0-9 в строку

ZerG
Да есть конечно. Методов то море.https://www.w3schools.com/python/python_ref_string.aspНо в данной простейшей задаче сделать проверку без циклов ПРОЩЕ не получится.Возможность сама есть, ну например хотябы и так:

 if (len(txt) - result) != 0:
    

Еще хотел спросить по поводу вот этой записи не очень понимаю что значит здесь знак - между переменными ?

Отредактировано DMM (Фев. 22, 2024 17:16:16)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version