পটভূমি
আপনার ওয়েব ব্রাউজারে জাভাস্ক্রিপ্ট পরিবেশনের সময়, মিনিফায়ারগুলি সাধারণত ব্যবহৃত হয়। এটি সাধারণত পাঠানো বাইটের সংখ্যা হ্রাস করতে ব্যবহৃত হয়। ব্যান্ডউইথ সংরক্ষণ করা সুস্পষ্ট কারণে কার্যকর। কিছু লোক obfuscaters ব্যবহার করে (যা উদ্দেশ্যমূলকভাবে কোডগুলি পড়া আরও কঠিন করে তোলে), আমি সেগুলি সম্পর্কে কথা বলছি না।
আমরা পাইথন 2 হ্রাস করব
আমি জাভাস্ক্রিপ্ট বা পাইথনটি ক্ষুদ্রতর অভিজ্ঞতার জন্য ব্যবহার করব কিনা তা নিয়ে আমি বিতর্ক করছিলাম এবং আমি দুটি কারণে পাইথনের বিষয়ে সিদ্ধান্ত নিয়েছিলাম: সাদা স্থানের বিষয়টি এবং আমি মনে করি যে এটি একটি আকর্ষণীয় গতিশীল সমস্যা যুক্ত করবে। অতিরিক্তভাবে, পাইথন ২.7 ব্যবহার করে অন্য একটি গতিশীল সরবরাহ করা হবে, যেমন ()
একটি মুদ্রণের সময় অতিরিক্ত অতিরিক্ত অপসারণ (যেমন print("Hello world")
বনাম print"Hello world"
)। আমি ব্যক্তিগতভাবে এটি যে কোনও ভাষায় খুলতে পছন্দ করতাম তবে কিছু ভাষার ক্ষেত্রে এই প্রক্রিয়াটি খুব একটা বোঝায় না। এবং, আপনি কোন ভাষাটি ছোট করার সিদ্ধান্ত নিয়েছেন তা সরাসরি আপনার স্কোরকে প্রভাবিত করবে (এবং ভাষাটি যদি ছোট করাও যায়)।
চশমা
আপনার লক্ষ্যটি কেবল কোডটি এমনভাবে সংশোধন করা যা কোনওভাবেই এটির কার্যকারিতা পরিবর্তন করবে না। আপনি অবশ্যই ভেরিয়েবলের নাম (আপনার মিনিফাইং প্রোগ্রামের অভ্যন্তরে) পরিবর্তন করতে পারবেন যতক্ষণ না এটি আউটপুটকে প্রভাবিত করে না ( সুযোগের সন্ধান করুন )। যদিও আমি আপনাকে একটি নির্দিষ্ট প্রোগ্রাম দিচ্ছি, দয়া করে পরীক্ষার কেসটির জন্য অনুকূলিত হবেন না কারণ সমস্ত স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
স্কোর : আপনি প্রোগ্রামটি ছোট করার পরে দৈর্ঘ্য।
ইনপুট : যেকোন পাইথন ২.7 প্রোগ্রাম (এতে কোনও ত্রুটি নেই)
আউটপুট : একটি সংক্ষিপ্ত সংস্করণ।
যদিও আপনার কোডে সমস্ত বৈধ পাইথন ২.7 ইনপুট সমন্বিত করতে সক্ষম হওয়া উচিত, তবে আপনার স্ক্রিপ্টটির কার্যকরতার প্রমাণ দেওয়ার জন্য কোনও কিছুর বিরুদ্ধে এটি পরীক্ষা করা প্রয়োজন।
উদাহরণ প্রোগ্রামটি দেখতে এখানে ক্লিক করুন ।
সমস্যাটিকে আরও সহজলভ্য করে তোলা
আমার সমাধানের ভিতরে পাওয়া কোনও কোড ব্যবহার করতে বা পরিবর্তন করতে নির্দ্বিধায় (তালিকাভুক্ত বেলো)। আপনাকে উদ্ধৃতি বেসিক উদ্ধৃতি হ্যান্ডলিং দিয়ে শুরু করতে আমি এটি করেছি; তবে আপনি এটিকে ইন্ডেন্টেশন ইত্যাদিতে প্রসারিত করতে পারেন etc.
পাইথনকে খাটো করার উপায়
সমস্ত সাদা স্থান ন্যূনতম সম্ভাব্য পরিমাণের সাথে প্রতিস্থাপিত হতে পারে (আমি স্বীকার করি যে পাইথনে আপনি ট্যাবগুলি দিয়ে কিছু কৌশলপূর্ণ জিনিস করতে পারেন , তবে আমি এটি প্রয়োগ করব কিনা তা স্থির করার জন্য এটি আপনার উপর ছেড়ে দেব)।
উদাহরণ
পরবর্তী:
def print_a_range(a):
for i in range(a):
print(i)
হতে পারে:
def print_a_range(a):
for i in range(a):
print(i)
প্রযুক্তিগতভাবে, লুপের ভিতরে যদি কেবল একটি লাইন থাকে তবে আপনি এটি আরও সংকোচ করতে পারেন:
def print_a_range(a):
for i in range(a):print(i) #Note, you can also remove the `()` here.
যাইহোক, পাইথনের সাদা স্থানকে ছোট করে তোলার আরও একটি উপায় রয়েছে:
পরবর্তী:
print ([a * 2 for a in range(20) if a % 2 == 0])
হতে পারে:
print([a*2for a in range(20)if a%2==0])
দ্রষ্টব্য, 2
এবং এর মধ্যে কোনও জায়গার দরকার নেই for
। পরিবর্তনশীল, ফাংশন এবং কীওয়ার্ড সংখ্যা দিয়ে শুরু করতে পারে না । সুতরাং, পাইথন ইন্টারপ্রেটার ঠিক আছে <num><keyword>
, কোনও স্থান নেই। আপনার মনে রাখতে হবে যে এখানে )
এবং এর মধ্যে কোনও স্থান নেই if
।
দ্রষ্টব্য, আপনি অবশ্যই প্রোগ্রামের আউটপুট পরিবর্তন করবেন না! তাই:
print"f(x)=x*2 is a great equation!"
উপরে মুদ্রণ বিবৃতি কারণ মধ্যে স্থান সরানোর একই থাকতে হবে 2
এবং is
আউটপুট সংশোধন হবে।
'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'
মধ্যে '1'*100
অনুমতি? আচরণ যেমন হয় তেমন করার দরকার?