TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #83 · 11 мај

У строки в Python есть два очень похожих метода. На столько похожих что кажется они делают одно и тоже. Это метод isdigit() и isnumeric() Давайте посмотрим зачем нам два одинаковых метода? И так ли они одинаковы? Очевидно что isdigit() говорит нам, состоит ли строка только из чисел 0-9 >>> '12'.isdigit() True >>> '12x'.isdigit() False >>> '-12'.isdigit() False >>> '12.5'.isdigit() False Можно предположить что isnumeric() делает более глубокий анализ и распознаёт в строке float или отрицательное число. >>> '15'.isnumeric() True >>> '-15'.isnumeric() False >>> '15.2'.isnumeric() False Нет, всё так же как и с другим методом. В чем же тогда разница? Для начала посмотрим следующие примеры: >>> '5'.isdigit(), '5'.isnumeric() # Обычная цифра 5 # True, True >>> '꧕'.isdigit(), '꧕'.isnumeric() # Яванская 5 # True, True >>> '෩'.isdigit(), '෩'.isnumeric() # Синхала 3 # True, True >>> '৩'.isdigit(), '৩'.isnumeric() # Бенгальская 3 # True, True >>> '༣'.isdigit(), '༣'.isnumeric() # Тибетская 3 # True, True >>> '³'.isdigit(), '³'.isnumeric() # 3 верхний индекс (степень) # True, True >>> '𝟝'.isdigit(), '𝟝'.isnumeric() # Математическая двойная 5 # True, True >>> '๔'.isdigit(), '๔'.isnumeric() # Тайская 4 # True, True >>> '➑'.isdigit(), '➑'.isnumeric() # 8 в круге # True, True А теперь примеры в которых, по мнению Python, результаты не равны >>> '¾'.isdigit(), '¾'.isnumeric() # дробь три четверти # False, True >>> '⅕'.isdigit(), '⅕'.isnumeric() # дробь одна пятая # False, True >>> '𒐶'.isdigit(), '𒐶'.isnumeric() # клинопись 3 # False, True >>> '三'.isdigit(), '三'.isnumeric() # 3 из унифицированной идеограммы # False, True >>> '⑩'.isdigit(), '⑩'.isnumeric() # цифра 10 в круге # False, True >>> 'Ⅳ'.isdigit(), 'Ⅳ'.isnumeric() # Римская 4 # False, True >>> '𑇪'.isdigit(), '𑇪'.isnumeric() # Сенегальская архаическая 10 # False, True >>> '𐌢'.isdigit(), '𐌢'.isnumeric() # Этрусская цифра 10 # False, True >>> 'ↂ'.isdigit(), 'ↂ'.isnumeric() # Римская цифра 10000 # False, True >>> '〇'.isdigit(), '〇'.isnumeric() # Символ ККЯ ноль # False, True Получается, что isdigit() говорит нам, является ли символ десятичной цифрой или спецсимволом, имеющим цифирное значение после преобразования. В свою очередь isnumeric() включает все дополнительные символы юникода которые имеют отношения к числовым и цифровым представлениям. Ну и пара примеров в которых в обоих случаях символ не является числом, это эмодзи. >>> '🕙'.isdigit(), '🕙'.isnumeric() # эмодзи 10 часов # False, False >>> '7️⃣'.isdigit(), '7️⃣'.isnumeric() # эмодзи 7 # False, False Также есть еще один дополнительный и весьма полезный метод isdecimal(). Он нам сообщает, можно ли из указанного символа сделать простую десятичную цифру. То есть сработает ли метод int(x) >>> '෩'.isdecimal(), int('෩') # Синхала 3 # True, 3 >>> '➑'.isdecimal(), int('➑') # 8 в круге # False, ValueError Какие выводы? 🔸 При определении цифры в строке isdigit() подходит лучше чем isnumeric(), но оба не гарантируют успешную конвертацию в int 🔸 Для однозначного определения возможности преобразования строки в int лучше подходит метод isdecimal() 🔸 Для однозначного определения символов 0...9 лучше использовать regex Полный список символов юникода которые определяются как numeric #basic

Hashtags

Резултати

Пронајдени 69 слични објави

Пребарај: #kmp

当前筛选 #kmp清除筛选
Android Broadcast

@android_broadcast · Post #9635 · 01.11.2025 г., 08:31

🏝🤖 На сайте Android Developers обновили материалы по Kotlin Multiplatform: 👉 Обновили главную страницу 👉 Появился базовый курс по KMP (бесплатный) 👉 Обновленные руководство по использованию Jetpack библиотека с поддержкой KMP #android#kmp

Hashtags

Android Broadcast

@android_broadcast · Post #9076 · 08.05.2025 г., 13:55

📹Android Developers Backstage 215. KMP. Have your code and eat it too Software Engineers Dustin Lam и Yigit Boyar присоединяются к ведущему Tor Norbye, чтобы обсудить Kotlin Multiplatform (KMP). 0:00 - Введение 0:29 - Что такое KMP: не новый продукт, а Kotlin с новыми возможностями 3:20 - Зачем нужен KMP: преимущества и цели 6:17 - KMP vs. другие кроссплатформенные фреймворки 6:41 - Общая бизнес-логика — основной сценарий использования 9:18 - Практическое внедрение: превращение Android-приложения в KMP 13:15 - Работа с платформо-специфичными зависимостями 28:56 - Поддержка библиотек в Kotlin Multiplatform 35:56 - Developer Experience: инструменты и интеграция 40:16 - Совместимость с iOS: как добиться взаимодействия 42:51 - KMP в действии: как Google использует эту технологию 47:17 - Долгосрочное видение и потенциал KMP 51:30 - Консистентность поведения vs. нативная производительность 55:32 - Попробуйте KMP и присоединяйтесь к разработке! #android#kmp

Hashtags

Android Broadcast

@android_broadcast · Post #9015 · 27.04.2025 г., 04:58

Reanimator - простоя библиотека для Jetpack ViewModel (с поддержкой KMP) для работы с состоянием. Подробный разбор в статье (EN,11м) или альтернативной ссылке @Serializable data class MyUiState( // Persistent val data: List<String> = emptyList(), val selectedItem: String? = null, // Transient val isLoading: Boolean = false, val error: String? = null ) class MyViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() { // Define which properties are transient private val transientProps = listOf("isLoading", "error") // Declare your state flow - Reanimator handles the rest! private val _uiState by savedStateHandle.getMutableStateFlow( defaultValue = MyUiState(), // Initial/default state coroutineScope = viewModelScope, // Scope for saving changes transientProperties = transientProps // What NOT to save // key = "custom_state_key" // Optional: custom key ) val uiState: StateFlow<MyUiState> = _uiState.asStateFlow() // ... rest of your ViewModel logic ... fun updateData(newData: List<String>) { // Just update the state - Reanimator saves persistent parts automatically _uiState.update { it.copy(data = newData, isLoading = false) } } } #android#kmp

Hashtags

Android Broadcast

@android_broadcast · Post #9161 · 20.05.2025 г., 21:07

🚀Вышел Jetpack Window Manager 1.4 - библиотека для работы с разными форматами устройства и несколькими окнами с поддержкой KMP Что нового в свежей версии: 👉 Улучшения Activity Embedding 👉 Улучшения API WindowMetrics 👉 Улучшили API для тестирования #jetpack#kmp

Hashtags

Android Broadcast

@android_broadcast · Post #9073 · 08.05.2025 г., 05:36

📹Compose/iOS готов к продакшену? Прямой эфир с ответами на вопросы Когда: четверг, 8 мая, 18:30 (GMT+3) Буквально вчера вышел Compose iOS Stable и конечно же открывает возможности Android разработчиками по написанию мобильных приложений под обе платформы. Но всё ли так сладко, как заявляет JetBrains? Будем разбираться в этом с экспертом кто уже познал прелести продакшена! 👨‍💻 Эксперт - Никита, фуллстек Kotlin разработчик, автор проектов FlowMVI и respawn.pro. При анонсе Compose iOS Stable, его приложение было в официальном анонсе 🔥 👨‍💻 И еще одни эксперт - Чикишев Тимур, Senior Android разработчик в KTS. Начал пробовать Compose iOS еще до официального релиза. Успел адаптировать Android приложение с Compose на iOS, буквально на этой неделе сделали релиз Задавайте свои вопросы в комментариях к посту, чтобы они были заданы на эфире #android#compose#kmp

Android Broadcast

@android_broadcast · Post #8637 · 05.02.2025 г., 07:04

Вышел Coil 3.1.0 - популярный загрузчик картинок с поддержкой KMP 👉Улучшили производительность AsyncImage: скорость работы стала лучше на 25-40%, а потребление памяти - на 35-48% 👉 FakeImage теперь deprecated 👉 Появился ColorImage - полезен для возвращения фейковых значений в тестах и для Compose превью 👉 coil-compose-core больше не зависит от Dispatchers.Main.immedate, что позволило исправить баги в работе Paparazzi и Roborazzi 🛠 Множество других исправлений и улучшений API #kmp#android#compose

Android Broadcast

@android_broadcast · Post #9979 · 04.05.2026 г., 05:43

🤯 Те кто использовал Jetpack Paging 3 знают насколько он может справиться только с базовыми сценариямми. Шаг влево или вправо - уже боль! Сегодня хочу познакомить вас с альтернативой — библиотекой 🐱Paginator. Это KMP-решение для пагинации, которое решает те самые проблемы, где Paging 3 начинает "буксовать". Paginator построен на отличной модели от Jetpack Paging 3: страница — это адресуемая ячейка в кэше, кэш — обычная структура данных, а навигация — обычные методы. 1️⃣✅ Адресуемые страницы Прямые методы goNextPage(), goPreviousPage() и jump(Bookmark). Deeplink на сообщение из пуша решается одной строкой. 2️⃣✅ Мутации по запросу MutablePaginator предоставляет CRUD-операции: replace { it.id == 42 }, removeWhere { it.deleted }. Один лайк меняет один элемент без инвалидации всей страницы. 3️⃣✅ Сохраняемое состояние Кэш — обычная структура данных, которую можно сериализовать через kotlinx.serialization. Методы serializeToJson() и restoreFromJson() решают проблему Process Death без плясок с бубном. 4️⃣✅ Библиотека, а не фреймворк Написан на чистом Kotlin без платформенных зависимостей и живёт в commonMain. Логика пагинации становится частью общего доменного слоя KMP, не копируется между платформами и не имеет двух реализаций. 5️⃣✅ Курсорная пагинация "из коробки" Отдельный класс CursorPaginator с единой моделью состояний, транзакций и сериализации. Paginator — это не обёртка над Paging 3. Это другая модель, переосмысливающая ключевые типы. Обёртка просто не смогла бы дать ни мутации элемента, ни сериализации кэша. 🔗Оригинальная статья на Хабре 🐱Репозиторий Paginator #Android#AndroidDev#KMP

YuKongA | Channel

@YuKongA13579 · Post #1846 · 03.02.2026 г., 10:28

最近发现有不少新人因为 miuix 库来尝试 KMP/CMP 跨平台项目。我必须声明一点,对比其他耳熟能详的跨平台方案,KMP/CMP 并不是一个 API 成熟的、积极维护的、社区活跃的项目,也没有丰富的社区资源和解决方案。 我写这个 ui 库单纯只是因为第一个接触的语言是 Kotlin、第一个接触的声明式 UI 是 Compose,而它现在刚好支持跨平台。 如果你没有解决 KMP/CMP 本身各种问题的能力,或者甚至你只会 vibe coding,还是不要吃这个螃蟹了,Flutter、 Electron、 Tauri、RN 都会是更好的选择。 如果你是拿来写 Android/JVM only,那倒是基本上没什么问题。 #cmp#kmp#misc

YuKongA | Channel

@YuKongA13579 · Post #936 · 17.08.2024 г., 15:22

换用最新写的 miuix ui 的极简版本 相比原本去掉了扩展设置(灵动脑门支持,手动深浅色切换)、关于页面。可以说是非常简洁了。 要说新增的话,就是多了 ui 带的特性,越界回弹和顶栏模糊吧。 #Updater#KMP#MIUIX

Android Broadcast

@android_broadcast · Post #9349 · 21.07.2025 г., 12:06

🤯Команда Anvil решила прекратить развитие проекта в пользу другого решения Anvil - Kotlin плагина для расширения возможностей Dagger 2 и упрощения работы с ним решили прекратить развивать. Коллега автором решения сделал Metro и компания будет переходить на него и участвовать в его развитии. Metro - это compile-time DI фреймворк с поддержкой KMP, который вдохновлялся Dagger, Anvil, Kotlin-Inject. #di#kmp

Hashtags

123•••56
ПретходнаСтраница 1 од 6Следна