سلام
وقت بخیر
من یه برنامه دارم مینویسم که اطلاعاتو از کاربر دریافت میکنه و در دیتابیس دخیره میکنه.. تمامی دیتاهای مربوط به بانک اطلاعاتی به دقت تنظیم شدن مثلا :
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()
بجای درصد% از تابع فرمت استفاده شود:
>>> 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
اگر برای ویرایش تکست با متغیر ها استفاده کنید چندین راه داره مثلا اینکه:
مثال 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 استفاده کنید تکست رو بر میگردونه.
اگر منظورتونو نفهمیدم و اشتباه جواب دادم معذرت میخوام امید وارم استفاده کنید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)