مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ikooshk

عضویت از 1398/08/11

راهنمایی در مورد INSERT شدن یک عدد از طریق پایتون در بانک اطلاعاتی

  • شنبه 11 آبان 1398
  • 23:54
تشکر میکنم

سلام

وقت بخیر

من یه برنامه دارم مینویسم که اطلاعاتو از کاربر دریافت میکنه و در دیتابیس دخیره میکنه.. تمامی دیتاهای مربوط به بانک اطلاعاتی به دقت تنظیم شدن مثلا :

Age  INT و ...

حالا موقعی که کاربر اسنرینگ وارد میکنه به درستی داخل بانک ذخبره میشه ولی موقعی که  عدد دریافت میکنه با خطا مواجه میشه نمونه کد رو خدمت شما عنوان میکنم:

sql = """INSERT INTO Authors(atID, aFName, aLName, Age, Ranking, Email, Mobile, sumPayment) 
                 VALUES(%s, %s, %s, %i, %s, %s, %s, %d)"""

عبارت sql برابر استرینگ هست.. من چطور میتونم %i و %d رو تبدیل به اینتجر کنم بطوری که این بخش تبدیل به عدد بشه و داخل دیتابیس دخیره بشه

ممنون میشم راهنمایی کنید.. بسیار بسیار احتیاج به راهنمایی شما دارم

نمونه کد:

mycursor = mydb.cursor()
n = int(input("Enter N Number For Users: "))
mylist = []

for i in range(0, n):
    
    if mycursor:
        print("Enter Number "+ str(i+1) + " Authors Information")
        print("========================================")
        sql = """INSERT INTO Authors(atID, aFName, aLName, Age, Ranking, Email, Mobile, sumPayment) 
                 VALUES(%s, %s, %s, %i, %s, %s, %s, %d)"""
        atID = input("Enter AT ID: ")
        aFName = input("Enter First Name: ")
        aLName = input("Enter Last Name: ")
        Age = input("Enter Your Age: ")
        Ranking = input("Enter Your Ranking: ")
        Email = input("Enter your Mail: ")
        Mobile = input("Enter Your Mobile: ")
        sumPayment = input("Enter Your sumPayment: ")
        val = (atID, aFName, aLName, Age, Ranking, Email, Mobile, sumPayment)
        mylist.append(val)
    mycursor.executemany(sql, mylist)
    mydb.commit()
    print(mycursor.rowcount, "Records Inserted.")
    mydb.close()

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

bairam

عضویت از 1398/08/13

  • دوشنبه 13 آبان 1398
  • 21:06

بجای درصد% از تابع  فرمت استفاده شود:

>>> txt = "For only {price:0.0f} dollars!"
>>> txt.format(price=25.5)
'For only 26 dollars!'
 مراجعه شود به https://www.w3schools.com/python/ref_string_format.asp

فایل های ضمیمه

کاربر سایت

ahmad2910

عضویت از 1398/11/27

  • یکشنبه 27 بهمن 1398
  • 15:40

اگر برای ویرایش تکست با متغیر ها استفاده کنید چندین راه داره مثلا اینکه:

مثال 1:

>>> value_1 = 1
>>> value_0 = 0
>>> "value %i and %i" % (value_0,value_1)
'value 0 and 1'

در این مثال بعد از نوشتن تکست داخل کتیشن جا هایی که میخواین داده ها باشن رو با %i برای عدد صحیح %s برای رشته یا استرینگ %f برای اعداد فلات بعد علامت درصد رو میزارین و داخلی پرانتز به ترتیب داده هارو تعریف می کنین.

مثال 2:

>>> value_1 = 1
>>> f"value {value_0} and {value_1}"
'value 0 and 1'

در این مثال واجب تر از همه اینه که اول حرف f کوچیک رو تایپ کنید و سپس کتیشن رو باز کنید و تکست رو بنویسید و جا هایی که میخواید داده بزارید براکت رو باز کنید و داده رو بنویسید و بعد براکت رو ببندید و سپس ادامه تکست بعد کتیشن رو ببندید بعد از زدن اینتر جواب رو نشون میده (به نظر من این بهترین راه است).

مثال 3:

>>> value_0 = 0
>>> value_1 = 1
>>> "value",value_0,"and",value_1
('value', 0, 'and', 1)
>>> print("value",value_0,"and",value_1)
value 0 and 1

در این مثال هم از تاپل ها استفاده میکنیم که تکست رو میزاریم بعد ویرگول رو میزارید و داده هارو می نویسه سپس اگر در به صورت خالی value رو بنویسید داخل پرانتز مینویسه و تاپل حساب میکنه ولی اگر در دستور print استفاده کنید تکست رو بر میگردونه.

اگر منظورتونو نفهمیدم و اشتباه جواب دادم معذرت میخوام امید وارم استفاده کنید.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)