انجمنهای فارسی اوبونتو
		کمک و پشتیبانی => برنامهسازی => نویسنده: thmkhtry در 03 تیر 1402، 05:36 بظ
		
			
			- 
				سلام،
 1. من میخواهم وقتی به صورت:
 ...
 i=input("enter:)
 ..
مینویسم خروجی به صورت:
 enter:print("hi")
 'hi'
 
بگیرم یعنی میخواهم وقتی متغیر ورودی ورودی ای دریافت کرد که دستورات پایتون بود آن را اجرا کند.
 همچنین نمیخواهم از حالت زیر استفاده کنم چون شلوغ میشود:
 if i=="exit()":
 exit()
چیکار کنم؟
 -----------------------------------------------------------------------
 2. میخواهم کاری کنم که وقتی مثلا کاربر داخل متغیر ورودی
 ( برای مثالi=input("enter:"))
 مثلا نوشت ./example.py فایل example.py اجرا شود.
 چه کار کنم؟
 
- 
				خب الان شما دوتا چیز میخواین. اگر میخواین دستورات پایتون اجرا بشن، از exec میتونید استفاده کنید. مثل: 
 
 i = input("Enter:")
 exec(i)
 
 اگر هم میخواین دستورات command line اجرا بشن، از os.system میتونید استفاده کنید.
 
 ادیت: میشه لطفا این محدودیت اکانتمو بردارید؟ مرسی (:
- 
				با تشکر از شما اولین سوالم حل شد ولی سوال دوم: میخوام کلا بشه باهاش پایتون فایل ها را اجرا کرد
 ادیت: منم محدودیتی دارم.
- 
				برای اجرای یک فایل پایتون دیگر:
 with open("example.py") as f:
 exec(f.read())
- 
				فکر کنم کار اول که میخواهید انجام بدید، اسمش توی برنامهنویسی reflection باشه.
			
- 
				من گیج شدم :( :( میخوای از طریق  bash  وررودی بدی . از طریق پایتون خروجی بگیری ؟؟؟ یا فقط با پایتون میخوای ورودی و خروجی بگیری ؟؟؟
 
 
 منظور بنده این هست که یک اسکریپت نهایتا ۵۰ خطی بنویسد با بش که اینکار رو انجام بده ( از کاربر ورودی بگیره و ورودی گرفته شده رو و دستورات مورد نظرو به زبان پایتون بده)
- 
				من گیج شدم :( :( میخوای از طریق  bash  وررودی بدی . از طریق پایتون خروجی بگیری ؟؟؟ یا فقط با پایتون میخوای ورودی و خروجی بگیری ؟؟؟
 
 فقط با پایتون
- 
				به نظرم دنبال eval هستی. 
 a = input()
 eval(a)
 
- 
				به نظرم دنبال eval هستی. 
 a = input()
 eval(a)
 
 این بهتر کار میکنه یا exec؟
- 
				فکر می کنی اگر یکی از اون یکی بهتر کار می کرد ، هر دو رو نگه می داشتن؟ یا اونی که بدتر کار می کنه رو می ذاشتن کنار و از بهتره استفاده می کردن؟ (:
 
 خلاصهاش کنیم، eval روی یک خط کار می کنه (چیزی که تو پرسیدی) و exec روی کدهای چند خطی هم کار می کنه.