ошибка NameError: name 'сursor' is not defined
Вот код:
import telebot
import sqlite3
#bot
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands = ['start'])
def start(message):
user_id = message.from_user.id
user_niсkname = message.from_user.username
add_new_user(user_id, user_niсkname)
def add_new_user(user_id, user_niсkname):
print(user_id)
connect = sqlite3.connect('users.db')
cursor = connect.cursor()
cursor.execute("""CREATE TABLE IF NOT EXISTS users_inf(
id INTEGER,
niсkname TEXT,
warnings_on_real_moment INTEGER
);""")
connect.commit()
#chek id
cursor.execute("""SELECT id FROM users_inf WHERE id = 'user_id'""")
data = cursor.fetchone()
if data is None:
#add values in table
сursor.execute("""INSERT INTO users_inf(id, niсkname, warnings_on_real_moment)
VALUES(?, ?, ?);""", user_id, user_niсkname, 0)
connect.commit()
print('У нас новый пользователь его id: ' + str(user_id) + ' Также его ник: ' + str(user_niсkname))
else:
bot.send_message(message.chat.id, 'Ты что пытаешься сделать?\n Ты уже есть в базе!')
bot.polling()
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
сursor.execute("""INSERT INTO users_inf(id, niсkname, warnings_on_real_moment)
У вас в этой строке в названии переменной сursor первая буква - русская с, поэтому питон и не знает эту переменную, он знает только нормальный cursor полностью из английских букв, а эта переменная с русской буквой не была ранее определена, а вы в этой строке пытаетесь её использовать.
Проверим, что буква не английская:
for i in 'сursor.execute("""INSERT INTO ':
print(ord(i))
Вывод:
1089
117
114
115
111
114
46
...
Видите - код первой буквы совсем из другого диапазона. Это русская буква с, а не английская c.