discord icon
سرور دیسکورد گاردایران

Mr.Python

مدير بخش
  • تعداد ارسال ها

    522
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    82

تمامی مطالب نوشته شده توسط Mr.Python

  1. Mr.Python

    تمرین برنامه نویسی با پایتون

    -سوال : برنامه ای بنویسید که، یک رشته، از کاربر دریافت کند که این رشته، حاوی کاراکتر های مختلفی است. از جمله h e l l o که برای ما این کاراکتر ها مهم تر از بقیه هست و باید کاراکتر های h e l l o به ترتیب ذکر شده، در رشته، وجود داشته باشن. به طور مثال weheeellloooow یک رشته، هست که ترتیب hello در ان رعایت شده (دقت کنید که تکرار حروف مجاز است). رشته دیگری را در نظر بگیرید : gggfs344hhhheeeettjjjooolll1ssw ترتیب حروف hello در این رشته ، اشتباست چون از سمت چپ داریم : heol (دقت کنید که وجود هر کاراکتری مجاز هست و فقط ما میخوایم که ترتیی حروف hello تو رشته درست باشه و چیزی مثل hlloe یا... نداشته باشیم.) حروف بزرگ H E L O هم مجاز نیست ولی سایر حروف و کاراکتر ها میتونن به صورت حروف بزرگ تو رشته ظاهر بشن مثلا ssTuFhheeellow حالا باید برنامه رو جوری بنویسیم که وقتی بهش رشته، ای رو میدیم مشخص کنه ترتیب حروف helo توش رعایت شده جوابو پایین میذارم import re def find(string): if len(re.compile("h+[^hHeELlOo]*e+[^hHeELlOo]*l+[^hHeELlOo]*o+[^hHeELlOo]*").findall(string))==0: return False else: return True a=["553nhghhettlloo" , "heeyyyuuulllo", "737hdhsheelllow", "hee62626lltoow", "hhhelleoo", "hello", "helo", "oloowh", "enoughellllllllllowo"] for i in a: print(i, find(i)) من اینجا یه لیست a تعریف کردم و توش چند تا مثال نوشتم که درستی برنامه رو بتونیم تست کنیم. تو تابع find میتونید به صورت یک خط هم بنویسید : return len(re.compile("h+[^hHeELlOo]*e+[^hHeELlOo]*l+[^hHeELlOo]*o+[^hHeELlOo]*").findall(string))==0
  2. Mr.Python

    تمرین برنامه نویسی با پایتون

    -سوال : اعداد اول بین 2 تا 30 جواب به دو روش زیر : def isprime(number): if number%2==0 and number!=2: return False if number==2: return True for i in range(3, int(number**(1/2))+1,2): if number%i==0: return False return True a=2 b=30 print("".join([i for i in range(a, b+1) if isprime(i)])) #2 a=2 while a<30 : b=2 while b<=(a/b): if not a%b: break b+=1 if b> (a/b): print(a, "is prime") a+=1 تو روش دوم هم میشه list comprehension زد اینچه چرا اینکارو کردیم، دلیل خیلی خاصی نداره.. ولی خب از نظر performance ظاهرا بهتر از for loop print هست..
  3. Mr.Python

    تمرین برنامه نویسی با پایتون

    صورت سوال : https://www.codewars.com/kata/5a25ac6ac5e284cfbe000111/train/python حل به دو روش زیر : #1 dc={0:"R",1:"G",2:"B"} dct = {v: k for k, v in dc.items()} st="RGBGRGGB" def get(s1,s2): if s1==s2:return s1 else:return dc[3-(dct[s1]+dct[s2])] while st: print(st) st="".join([get(st[n],st[n+1]) for n in range(len(st)-1)]) #2 a="BGR" def get(s1,s2): if s1==s2:return s1 else:return a.replace(s1,"").replace(s2,"") s=input("").replace(" ","") while s: print(s) s="".join([get(s[n],s[n+1]) for n in range(len(s)-1)])
  4. Mr.Python

    تمرین برنامه نویسی با پایتون

    -سوال دنباله ای از اعداد بسازید که اعداد اول و اخر ان به ترتیب a و b باشد و فاصله ی بین هر دو عدد آن k باشد. درواقع این سوال یچیزی مثل این میمونه که بگیم ، چجوری میشه با تابعrange خروجی float دربیاریم نه Int چون میدونیم تو range اعداد صحیح تولید میشن نه اعشاری. ولی خب تو این سوال، میخوایم مثلا بین دو عدد 2 و 14 با فاصله 0.2 دنباله بسازیم. 2.0 2.2 2.4 2.6 .... اما نکات: 1. استفاده از توابع داخلی و ماژول ها ، مجاز نیست . البته از تابع format و str میتونید استفاده کنین . 2. متغیر های a و b و k میتونن عدد صحیح یا اعشاری باشن .
  5. Mr.Python

    تمرین برنامه نویسی با پایتون

    def compare(string1, string2): if string1=='' and string2=='': return 'Both strings are empty!' else: if string1=='' and string2!='':return string2[::-1] elif string2=='' and string1!='':return string1[::-1] else: if string1[0] == string2[0]: string1=string1.replace(string1[0],'') string2=string2.replace(string2[0],'') elif string1[0]<string2[0]:string1=string1.replace(string1[0],'') else:string2=string2.replace(string2[0],'') if string1=='' and string2!='':return string2 elif string2=='' and string1!='':return string1 else: string1=string1[::-1] string2=string2[::-1] return compare(string1, string2) compare('', '') compare('', 'nima') compare('ali', 'salib') compare('amin', 'nima')
  6. Mr.Python

    تمرین برنامه نویسی با پایتون

    -سوال خب این سوال رو تو سایت quera پیدا کردم گفتم شاید بد نباشه یه مانوری بدیم روش قطعا بهتر و خوشگلتر از حل من هم پیدا میشه . خب سوال اینه: عَلی و سَلیب که با یکدیگر برادر هستند، تصمیم گرفتند یک بازی هیجان‌انگیز دو نفره‌ای را انجام دهند تا شاید آدرنالین خون‌شان افزایش پیدا کند. بازی از این قرار است که عَلی و سَلیب، هر کدام یک رشته انتخاب می‌کنند. سپس حرف اول رشته‌ای که حرف اولش از لحاظ لغت‌نامه‌ای کوچک‌تر است را حذف (اگر حرف اول دو رشته برابر بودند،‌ حرف اول هر دو رشته را حذف می‌کنند.) و هر دو رشته را معکوس می‌کنند. این کار را تا جایی انجام می‌دهند که یکی از دو رشته یا هر دو رشته، خالی شوند. حال شما باید تابع compare(string1, string2) (که string1 رشته‌ی انتخابی عَلی و string2 رشته‌ی انتخابی سَلیب است.) را به گونه‌ای تکمیل کنید که: اگر در نهایت یکی از دو رشته خالی شده بود، محتویات رشته‌ی دیگر را بازگرداند. اگر در نهایت هر دو رشته خالی شده بودند؛ عبارت Both strings are empty! را بازگرداند. توجه کنید که اگر یکی از رشته‌ها خالی شد؛ رشته‌ی دیگر، نباید مجدداً معکوس شود. ورودی: compare('ali', 'salib') خروجی : las حل در پست پایین
  7. Mr.Python

    تمرین برنامه نویسی با پایتون

    def sort(string): l = [] for i in string: l.append(i) while True: flag = 1 n=0 m=1 while m!=len(l): if int(l[n])>int(l[m]): i = l[n] l[n] = l[m] l[m] = i flag=0 n+=1;m+=1 if flag==1: return ''.join(l) s='442254545' print(sort(s)) البته بهترشم میشه کرد که خیلی شلوغ نشه یا از روش دیگه ای ، مثلا یه روش دیگه اینه که اول بیاید کوچکترین و بزرگترین عنصر رو پیدا کنید و به ترتیب تو اول و اخر یه لیست قرار بدید و بعد ، از رشته مورد نظر حذفشون کنید و بعد دوباره اینکارو روی رشته تکرار کنید تا در نهایت یه لیست مرتب داشته باشید . برای حل عکس این سوال ، یعنی ترتیب از بزرگ به کوچیک فقط کافیه علامت < رو برعکس کنید .
  8. Mr.Python

    تمرین برنامه نویسی با پایتون

    سوال -برنامه ای بنویسید که یک رشته از اعداد را دریافت کرده و انها را از کوچک به بزرگ مرتب کند (استفاده از تابع مرتب سازی sorted مجاز نیست ) ورودی : 442254545 خروجی: 224444555 جواب در پست پایین
  9. Mr.Python

    تمرین برنامه نویسی با پایتون

    l = 'guardiran 1224556' while len(l)>0: a=l[0] c=0 for i in l: if i==a: c+=1 while a in l: l = l[:l.index(a)]+l[l.index(a)+1:] print(a, c)
  10. Mr.Python

    تمرین برنامه نویسی با پایتون

    سوال: -برنامه ای بنویسید که تعداد کاراکتر ها ( حروف و اعداد و فضای خالی یک اسپیس ...) را در یک رشته ، نمایش دهد . (استفاده از متد های replace و count و توابع داخلی مجاز نیست) ورودی : guardiran 1224556 خروجی : g 1 u 1 a 2 r 2 d 1 i 1 n 1 1 # فضای خالی 1 1 2 2 4 1 5 2 6 1 در سمت چپ ، خود کارکتر و کنارش تعداد تکرار اون کاراکتر تو رشته ی مورد نظر نمایش داده شده . جواب در پست پایین
  11. Mr.Python

    نحوه ورود به اینستاگرام با پایتون

    دوستان مثل اینکه صحبت راجب این موضوع داغ شده بود گفتم یه سری نکاتو بگم .. ببینید این پست ، پست آموزشی نیست و خیلی واضحه که اینجا من نیومدم بگم بهتون توضیح بدم فلان پارامتر چیه از کجا اومده چجوری نوشته میشه و اسمش چیه (که دوستان میگن Timestamp هستش ( و من دقیق نمیدونم اسمش چیه) - بله شما با یه سرچ کوچیک تو گوگل ، میتونید حتی نحوه قرار دادن این مقدارو تو اسکریپت ، یاد بگیرید ، کاری هم نداره و از ماژول time و data استفاده میشه.. این اسما و اموزشارو دیگه خیلی راحت میتونید تو مقاله ها فروما و سایتا پیدا کنید من نیومدم پست بزنم بگم اموزش نحوه ورود به اینستاگرام...! نیومدم بهتون اموزش بدم هر خط این اسکریپت چیکار میکنه ... صرفا تجربه ای بود که در اختیار دوستان قرار دادم و مجددا عرض میکنم ، کرکر هارو به همین شکل مینوشتم . زمانی هم که اینستاگرام این تغییرات رو نداده بود به خوبی کار میکرد. اما الان هم من با سیستمام تست کردم و مشکلی نداشت اسکریپت به خوبی کار میکنه . کسی که برنامه نویسی بلد باشه با یه تغییر کوچیک (استفاده از Tor یا پروکسی) و اضافه کردن چند تا حلقه همین اسکریپتو به کرکر تبدیل کنه ( اینارو وقعا نباید گفت چون انقدری بدیهی هست که من حتی حوصلم نمیاد بگم!) خلاصه راجب اون عدد ده رقمی ، من طبق (تجربه) گفتم یه عدد دلخواه هست چرا؟ چون خودم تست کردم با عدد های دیگه و مشکلی ندیدم! حالا اینکه اگه دوستی میگه نمیشه و این اسکریپت خطا میده و غیره ، خب عزیز من شما هم تست کن و مشکلتو تو انجمن پست کن باهم بررسی میکنیم ببینیم اشکال از کجا بوده که حتی بتونیم این اسکریپتم بهترش کنیم یچیزایی باهم یاد بگیریم در غیر اینصورت اجازه بدین من این صحبتارو قبول نکنم . چون طبق تست هایی که "شخصا" انجام دادم هیچ مشکلی تو اسکریپت نبوده . پ ن : هیچ اشکالی نداره اگه همه ما سوادمون کم باشه یا اشتباه داشته باشیم ، به شرط اینکه "درست" و با "اخلاق" رفتار کنیم . کمک کنیم به هم که کارا رو درست پیش ببریم . پرخاشگری و عصبانیت های بیجا ، برای خودتون خوب نیست ، الکی سلامت روانتون بهم میریزه ..
  12. کد های پست رو تست کنید و اگر به مشکلی خوردید، تصویر ارور رو قرار بدید و مشکلتونو عنوان کنید. ضمنا خیلی از کرکر ها به همین شکل نوشته میشن و تا به حال کرکر هایی که تو طول این چند سال در انجمن گذاشتیم به همین شکل نوشته شده و دوستان هم جواب گرفته بودند. به دقت نگاه کنید، تو اسکریپتی که قراردادیم به طور خودکار توکن ها از سمت سرور دریافت میشه و کاربر دخالتی تو این موضوع نداره. تغییر هدر هایی مثل user agent هم به راحتی توسط ماژول هایی مه نوشته شده قابل انجامه. بقیه هدر هارم میتونید به همین شکل براش ماژول بنویسید که تغییر بده.. اما در هر صورت، تغییر کل هدر ها در هر بار درخواست به سرور، کار بیهوده ایه..
  13. قبلا در رابطه با این موضوع پستی تو انجمن گذاشتیم.
  14. Mr.Python

    پایتون را از کجا شروع کنیم؟

    با پایتون 3 شروع کنید . تو پایتون 3 یه سری تغییرات تو توابع و سینتاکس ها اعمال شده.. پایتون 2 عملا منسوخ شده .خیلی وقته. البته هنوز هم کار میکنه ولی تو parse کردن و آنالیز کد های اسکی مشکل داره . یه سری اضافات داره که همه اینا رو تو پایتون 3 اوکی کردن . جزئیات بیشترو میتونید گوگل کنید . اما منابع : پیشنهاد میشه از کتاب های انگلیسی استفاده کنید . اکثرشون پی دی اف دارن کتاب های خوب شامل :(اینارو تو بعضی مدارس خارج از کشور هم تدریس میکنن) Head first Python python for everybody python crash course python cookbook think python effective python سه کتاب اول در سطح مبتدی تا متوسط هستن بقیشون سطحشون پیشرفته تره . البته effective python رو هم میتونید بخونید برای شروع .. از آموزش های ویدیویی فارسی به شخصه استفاده نکردم ولی میتونید امتحانشون کنین . سایت های خوب برای یادگیری و تمرین : https://www.geeksforgeeks.org/ https://automatetheboringstuff.com/ https://www.learnpython.org/ https://www.programiz.com/python-programming https://realpython.com/ https://www.pythonforbeginners.com/ https://www.tutorialspoint.com/python/index.htm https://www.w3schools.com/python/ https://www.coursera.org/courses?query=python و اما کتاب های خوب فارسی زبان : آموزش پایتون | جعفر نژاد قمی آموزش کاربردی زبان پایتون | علیرضا عظیم زاده میلانی از هر چیزی برای یادگیری استفاده کنین ولی اینارو بذارید تو اولویت . ضمنا در کنار یادگیری هر زبان برنامه نویسی حتما زبان انگلیسی رو تقویت کنید .
  15. Mr.Python

    دیکد اترنت فریم .

    این کد ها همه یه سری اعداد در مبنای 16 هستن که شما میتونی طبق قاعده ای که برای این نوع اطلاعات از قبل مشخص شده ، برای دیکد کردن استفاده کنی قواعدی که خود سازنده مشخص کرده ، به طور مثال ، سازنده گفته 6 بایت اول رو میذاریم مک ادرس هدف یا تارگت ولی 6 بایت دوم مک ادرس خودم .. 4 بایت بعدی نوع اترنت و مثلا عدد اول از 4 بایت دوم ، ipv6 یا ipv4 رو مشخص کنه . خلاصه که اینا همش تو نت هست .. اما یه بلاک هایی از این کد ها مربوط میشه به هدر ها و پیلود های هر request که شما باید اون اعدادی که تو این بلاک ها هست رو تبدیل کنی به عدد باینری یعنی از مبنای 16 ببری به مبنای 2 (که میتونی از روش دسته بندی استفاده کنی یعنی هر 4 تا عدد تو مبنای 2 میشه یه عدد تو مبنای 16.. ) در نتیجه میای این کدی که به باینری تبدیل شده رو به اسکی یا حروف انگلیسی تبدیل میکنی مثلا یکی از بلاک کدهای موجود تو این پکتی که قرار دادی اینه: 41 75 74 68 6F 72 69 7A 61 74 69 6F 6E 3A 20 42 61 73 69 63 20 59 32 39 75 5A 6D 6B 36 5A 47 56 75 64 47 6C 68 62 41 3D 3D 0D 0A که اگه به باینری و بعد به اسکی تبدیل بشه میشه : Authorization: Basic Y29uZmk6ZGVudGlhbA== تبدیل باینری به اسکی طبق قواعد از پیش تعیین شدس .. هر 8 بیت یک حرف رو نشون میده که جدول این قواعد رو میتونی تو سایت های زیادی پیدا کنی یکیش اینه: https://www.ascii-code.com/ میتونی برای تمام این مراحل کد بنویسی (تبدیل هگز یا مبنای 16 به مبنای 2 (باینری) و بعد تبدیل به اسکی ) چجوری؟ استخراج جدول تو سایت بالا و ذخیره با فرمت خودت تو یه فایل متنی و ... اما متنی که تو باکس بالا داریم یعنی : Y29uZmk6ZGVudGlhbA== یه کد بیس 64 هست که باید دیکد بشه (میتونی باز از برنامه نویسی استفاده کنی یا سایت های اماده انلاین یا ابزار های اماده .. که دیکدش میشه : confi:dential
  16. برنامه واسش نوشتن تو مایکروسافت استور هم هست خودتونم میتونید بنویسید برنامشو.. قبلش تو گوگل سرچ میزدین پیدا میکردین البته من تست نکردم این برنامه هارو که موقع خواب هم جواب میده یا نمیده یا چجوریاس
  17. طبق اموزشی که تو این لینک قرار داده شده عمل کنین نتیجه میگیرین . ضمنا برای ارسال پیام باید بین هر پیام حداقل یه مدت زمانی وقفه بذارید وگرنه ارسال پیام به مشکل میخوره. تو آموزش بالا ما با headless داریم کار میکنیم که شما میتونین بخشهای مربوط به headless و profile رو از کد حذف کنید ، تاروند کار رو بتونین ببینین..
  18. 1.چک کنید که ورژن مرورگر و chromedriver.exe باهم همخونی داشته باشه. حتما از سایت اصلیش دانلود کنین. 2.قبل از اجرای برنامتون، تمام سشن های مربوط به کروم رو ببندید. 3.اگه بازم جواب نگرفتید از نسخه های پایینتر کروم + chromedriver استفاده کنین.
  19. Mr.Python

    تمرین برنامه نویسی با پایتون

    اینم یه مدل دیگش: seconds = int(input('Enter the time : ')) main = [seconds//3600, (seconds-(seconds//3600)*3600)//60, seconds-((seconds//3600)*3600+((seconds-(seconds//3600)*3600)//60)*60)] n = 0 for i in main: if i < 10:main[n] = '0'+str(i) n+=1 print(f'{main[0]}:{main[1]}:{main[2]}')
  20. Mr.Python

    تمرین برنامه نویسی با پایتون

    جواب تمرین 5 : seconds = int(input('Enter the time : ')) h = seconds//3600 m = (seconds-(seconds//3600)*3600)//60 s = seconds-(h*3600+m*60) if h < 10: h = '0'+str(h) if m < 10: m = '0'+str(m) if s < 10: s = '0'+str(s) print(f'{h}:{m}:{s}')
  21. Mr.Python

    تمرین برنامه نویسی با پایتون

    تمرین 5: - برنامه ای بنویسید که زمان را بر حسب ثانیه دریافت کند و ان را به ساعت و دقیقه و ثانیه تبدیل کند (خروجی باید به شکل 01:20:45 باشد) جواب در پست پایین
  22. Mr.Python

    دانلود از یوتیوب Youtube

    لینکی که بهتون میده باید حتما با فیلتر شکن بازش کنید . انواع کیفیت ها + فایل های صوتی رو هم در اختیارتون قرار میده.. در اصل این اسکریپت یه web scraper هست. import requests as rq, json r = rq.post('https://y2mate.guru/api/convert', data={'url':'YouTube Url'}) js = json.loads(r.text) urls = [] n = 0 for i in js['url']: try: total = i['filesize'] if (total / 1024) < 1: size = '{0:.1f}'.format(total) + ' Bytes' elif (total / 1024) > 1: if (total / 1024) < 1024: size = '{0:.1f}'.format(total / 1024) + ' KB' elif (total / 1024) >= 1024 and (total / 1024) < 1048576: size = '{0:.1f}'.format(total / 1048576) + ' MB' else: size = '{0:.1f}'.format(total / (1048576 * 1024)) + ' GB' else: size = '1 KB' print('[%d] '%n+i['name'] + ' / '+ i['subname'] + ' / ' +size) urls.append(i['url']) n += 1 except: pass a = input('\n[+] Which one ? ') print('\n'+urls[int(a)])
  23. خیلی از دوستان از من میپرسیدن چجوری میشه بدون سلنیوم selenium وارد پنل اسکای روم بشیم. برای ورود به کلاس باید از selenium استفاده کنین (برای حاضری زدن ، میتونین دنبال url مربوط به لوگوی در حال لود، باشین و اگه اونو تو driver.page_source پیدا کردین برین تو باسک چت حضوری بزنید - باا یه حلقه while True و try و except به راحتی میتونین اینکارو انجام بدین - جزئیات بیشترو میتونید پیام بدید راهنمایی کنم) اینم سورس خودکار ورود به پنل بدون سلنیوم: import requests import urllib.parse import re user = 'username' pwd = 'password' r = requests.Session() res = r.get('https://www.skyroom.online/users/login') ref = re.compile(r'name="referrer" value="(.*)" />').findall(res.text)[0] payload = {'gadget':"Users", 'action':"Login", 'authtype':"Skyroom", 'referrer':ref, 'username':user, 'password':pwd} headers_text = '''Host: www.skyroom.online User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Content-Type: application/x-www-form-urlencoded Content-Length: %s Origin: https://www.skyroom.online Referer: https://www.skyroom.online/users/login/referrer/%s Upgrade-Insecure-Requests: 1'''%(str(len(urllib.parse.urlencode(payload))), ref) hdrs = {i.split(': ')[0]:i.split(': ')[1] for i in headers_text.split('\n')} res = r.post('https://www.skyroom.online/index.php', data=payload, headers=hdrs) res = r.get('https://www.skyroom.online/skyroom/stats') if '<title>بلوک ورود - اسکای‌روم</title>' in res.text: print('Login failed') else: print('Login Successfully!')
  24. Mr.Python

    تمرین برنامه نویسی با پایتون

    جواب تمرین 4 : import re def moshtaq(k): reg = r'\-*[a-zA-Z1-9]*\d*x\^*\-*\d*[a-zA-Z1-9]*' all = re.compile(reg).findall(k) dv = '' for p in all: if '^' not in p: for i in re.compile(r'(\-*[a-zA-Z1-9]*\d*)x').findall(p): if i == '':dv+='1' elif i == '-':dv+='-1' else: if '-' not in i: dv+='+'+i else: dv+=i else: zarayeb = ''.join(re.compile('(.*)x\^\-*\d*(.*)').findall(p)[0]) zarib = 1 zarib_q = '' z_q = '' for jj in re.compile(r'\d+').findall(zarayeb): zarib *= int(jj) zarayeb = zarayeb.replace(jj, '') while zarayeb != '': if zarayeb[0] == '-': zarib *= -1 else: zarib_q += zarayeb[0] zarayeb = zarayeb[1:] while zarib_q != '': c = zarib_q.count(zarib_q[0]) if c > 1: z_q+= zarib_q[0]+'^'+str(c) zarib_q = zarib_q.replace(zarib_q[0], '') else: z_q+=zarib_q[0] zarib_q = zarib_q.replace(zarib_q[0], '') reg_2 = r'x\^(\-*\d*)' gg = re.compile(reg_2).findall(p) zarib *= int(gg[0]) if '-' not in str(zarib)+z_q: dv += '+'+ str(zarib)+z_q+'x^'+str(int(gg[0]) - 1) else: dv += str(zarib)+z_q+'x^'+str(int(gg[0]) - 1) print(dv) moshtaq('-y5x^-4c4yb-2x^5+4x+7+40x-8+2') moshtaq('-200x^4c4yb-2x^5+4x-5x-5+7+40x^-1-8+2') moshtaq('-ab') moshtaq('ab') moshtaq('1') moshtaq('-x') moshtaq('+x') moshtaq('ax+b') moshtaq('ax^2+bx+c') moshtaq('ax^1') moshtaq('222x') moshtaq('10-40x+30')