Python-сообщество
- Начало
- » Python для новичков
- » Как запретить ввод кириллицы или убрать привязку к регистру.
#1 Июнь 21, 2018 04:28:54
KOMn Зарегистрирован: 2018-06-21 Сообщения: 6 Репутация: 0 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
Доброго времени суток! Подскажите пожалуйста! Учу код и решил написать регистрацию но столкнулся с такой проблемой что когда регистрируешь пользователя с русским логином то Николай и николай при разном регистре будут разными пользователями вот код проверки.
c.execute(“SELECT name FROM user WHERE UPPER(name) LIKE :name”, )
conn.commit()
r = c.fetchone()
elif r != None:
print(‘Логин существует!’)
reg()
Если с латинскими буквами работать то всё норм. Как запретить ввод кириллицы или убрать привязку к регистру? Я туп пока в программировании ) Так что простите за возможно не правильно поставленный вопрос )
#2 Июнь 21, 2018 08:48:24
doza_and От: Зарегистрирован: 2010-08-15 Сообщения: 4138 Репутация: 252 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
KOMn
Если с латинскими буквами работать то всё норм.
Ваш софт будет удобен и востребован если он ведет себя так как принято в сообществе.
А принято как раз обратное. Регистр важен. Я бы очень жестко обматерил разработчика который не так сделает. Более того, и программировать неудобно когда вы делаете “Против течения”
Если вы согласны поменять парадигму то просто убрать UPPER из запроса.
Если нет то править надо не то что вы привели. Upper надо делать в питоне перед записью в базу и перед формированием запроса.
#3 Июнь 21, 2018 09:02:30
KOMn Зарегистрирован: 2018-06-21 Сообщения: 6 Репутация: 0 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
Точнее да мне как раз и нужен регистр. Чтобы не давал в конечном итоге регистрировать пользователя с одинаковым именем когда применяется разный регистр.
Отредактировано KOMn (Июнь 21, 2018 09:03:23)
#4 Июнь 21, 2018 09:06:33
KOMn Зарегистрирован: 2018-06-21 Сообщения: 6 Репутация: 0 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
Тоесть я так понял Upper мне нужно добавить сюда?
c = conn.cursor()
c.execute(“INSERT INTO user (name, password) VALUES (‘%s’,’%s’)”%(username,userpassword))
conn.commit()
print(‘Вы успешно зарегестрировались!’)
Отредактировано KOMn (Июнь 21, 2018 09:08:34)
#5 Июнь 21, 2018 09:23:16
KOMn Зарегистрирован: 2018-06-21 Сообщения: 6 Репутация: 0 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
Я так понял что можно UPPER вообще не использовать для проверки на наличие имени в базе. Но с кириллицей не работает. Как же всё-таки запретить ввод кириллицы в форму?
#6 Июнь 21, 2018 09:45:44
marvellik Зарегистрирован: 2016-05-15 Сообщения: 639 Репутация: 73 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
KOMn
Как же всё-таки запретить ввод кириллицы в форму
проверить на наличие кириллицы
в водимой строке
1 регуляркой выбрав кириллицу из строки и если есть результат то выдать ошибку
2 сравнив множество из строки с множеством из букв в кирил.
3 тупо сравнить побуквенно с списком букв в кирил.
#7 Июнь 21, 2018 10:41:18
KOMn Зарегистрирован: 2018-06-21 Сообщения: 6 Репутация: 0 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
А пример кода можно?
Я примерно представляю но не уверен
Отредактировано KOMn (Июнь 21, 2018 10:41:53)
#8 Июнь 21, 2018 12:43:30
KOMn Зарегистрирован: 2018-06-21 Сообщения: 6 Репутация: 0 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
Всё получилось
Спасибо за подсказку
import re
pattern=re.sub(r’^+’, ‘’, name)
string=str(name)
result=re.findall(pattern, string)
if name in result:
print(’Логин не может содержать русские буквы!’)
reg()
Вот ещё осталось символы добавить
)
Отредактировано KOMn (Июнь 21, 2018 12:46:17)
#9 Июнь 21, 2018 21:08:38
PEHDOM Зарегистрирован: 2016-11-28 Сообщения: 2196 Репутация: 294 Профиль Отправить e-mail
Как запретить ввод кириллицы или убрать привязку к регистру.
KOMn кажеться вы подходите не стой стороны. А если там будет не кирилица а какиенить китайские иероглифы, греческий, арабский или спецсимволы? Вы бы лучше проверяли на вхождение на латиницу и разрешенные сиволы(цифры точка, нижнее подчеркивание, хз что еще), если там есть еще чтото то отлуп.
[code python][/code]
Как в программе запретить ввод любых чисел, кроме целых трёхзначных?
Как запретить ввод любых данных кроме цифр?
Необходимо ввести значения нескольких переменных типа (float). Какой командой можно запретить ввод.
Как запретить ввод любых символов, кроме русских букв?
Есть массив char, как можно реализовать запрет ввода любых символов, кроме русских букв?
Как запретить ввод любых символов кроме русских букв и пробела.
Здравствуйте, уважаемые форумчане. Подскажите, пожалуйста, как запретить ввод любых символов кроме.
Как запретить ввод всех символов кроме чисел?
Допустим есть программа: var x:integer; begin writeln(‘Введите число’); readln(x); x:=x*x;.
4459 / 3212 / 1125
Регистрация: 21.03.2016
Сообщений: 7,949
number = int(input('Запрещен ввод любых чисел, кроме целых трёхзначных!: '))
Регистрация: 08.01.2019
Сообщений: 5
Добавлено через 52 минуты
Решение нашел самостоятельно, если кому интересно, вот фулл код(ответ на вопрос на второй строчке):
a=int(input())
if a>99 and a a1 = a//100
a2 = a%100 // 10
a3 = a%10
print(‘Сумма чисел — ‘, a1 + a2 + a3)
print(‘Произведение чисел — ‘,a1*a2*a3)
else:
print(‘Число не подходит, введите другое’)
![]()
5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977
Добавлено через 2 минуты
Сообщение от Semen-Semenich 
‘Запрещен ввод любых чисел, кроме целых трёхзначных!: ‘
мне кажется, в конце нужно еще резкое слово добавить, чтобы человек, который это читает понял, что мы тут не шутки шутим — сказано нельзя — значит нельзя!
Добавлено через 1 минуту
а то введет не очень целое число и все, кранты
Am I evil? Yes, I am!
![]()
![]()
16120 / 9755 / 2731
Регистрация: 21.10.2017
Сообщений: 21,624
Про отрицательные скромно умолчим.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Запретить ввод всех символов в StringGrid кроме чисел
Добрый день. Как сделать ограничение на StringGrid чтобы можно было вводить только числа?

Как запретить ввод в строку всех символов, кроме 0, 1 и пробела?
как запретить ввод в строку всех символов, кроме 0, 1 и пробела
Как можно запретить ввод всего кроме формата dd/mm/yyyy?
как можно запретить ввод всего кроме формата dd/mm/yyyy? Спасибо Dim D As String .

Как в javaFX запретить ввод в TextField символов кроме цифр и точки?
в javaFX сделать запрет на ввод символов кроме цифр и точки пишу такой код: .

Как запретить ввод цифр и других знаков кроме букв в edit на delphi 10?
Хочу сделать так, чтобы у пользователя не было возможности ввода цифр или знаков в поле edit, в.
Как запретить ввод букв и других символов кроме цифр в поле ввода (Entry)
Всем доброго времени суток. Нужна помощь. Пишу программу и она должна проводить математические.

Запрет на ввод любых символов, кроме цифр
Есть ли в свойствах Edit нечто такое, что разрешит вводить в нём только цифры? И если нету, то.
Как запретить вводить числа
Чтобы где переменная name там запретить вводить числа, а где переменная number запретить вводить слова.
Отслеживать
9,335 6 6 золотых знаков 24 24 серебряных знака 57 57 бронзовых знаков
задан 2 июл 2017 в 10:45
user255692 user255692
2 июл 2017 в 10:55
можно ввод числа не запрещать, а потом все числа «вынуть» иэ строки
– user236939
2 июл 2017 в 10:56
связанный вопрос: Как выполнить несколько проверок введенных пользователем данных?
4 июл 2017 в 5:26
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
#!/usr/bin/env python3 #-*- coding: utf-8 -*- import re i=False while not i: # Цикл будет выполняться пока i не станет True name = input('Введите имя ') if re.findall(r'\d', name)==[]: # re.findall(r'\d', name) вернет список из цифр которые используються в значении переменой name, если цифры не использовались вернеться пустой список i=True print("Данные введены верно") else: print("Данные введены неверно, попробуйте еще раз") i=False while not i: number = input('Введите номер ') if re.findall(r'\D', number)==[]: # re.findall(r'\D', name) вернет список из букв которые используються в значении переменой number, если цифры не использовались вернеться пустой список i=True print("Данные введены верно") else: print("Данные введены неверно, попробуйте еще раз")
Отслеживать
ответ дан 2 июл 2017 в 17:20
user239032 user239032
1- Вместо re.findall(r’\d’, name)==[] , стоит использовать: not re.search(r’\d’, name) . 2- вместо while not i: . i=True , можно просто while True: . break написать
Как запретить пользователю ввод букв или цифр в python
Я не очень хорошо знаю Питон. Есть ли в нем функции консольного ввода символа без подтвержения ввода Enter? Должны быть. Как-то же игрушки пишутся и программа реагирует на нажатие тех же стрелок.
На Си это просто
do c = geth() ;
while( (c >= ‘0’ && c = ‘A’ && c = ‘a’ c = ‘A’ && c = ‘а’ && c putcnar(c) ; // При этом нажатые клавиши не будут отображаться на экране, поэтому если нажат разрешенный символ, то его нужно будет вывести на экран
Александр ТарасовМыслитель (5998) 3 года назад
Конечно в питоне можно сделать чтение клавиш без нажатия Enter. Библиотека keyboard автору вопроса в помощь
Сергей Бизон Искусственный Интеллект (481202) Ну так и напиши ответ на Питоне, исходя из моей логики )))
