পাইথনে গল্ফ অপ্টিমাইজেশান অনুশীলন করা একটি চ্যালেঞ্জ - কয়েকটি অক্ষর শেভ করার জন্য পুনরায় ব্যবহারযোগ্য কৌশল এবং শর্টকাট। অনেকে পাইথন গল্ফারদের সাথে পরিচিত এবং পাইথন টিপস থেকে সাধারণ ধারণা ব্যবহার করবেন । এগুলির মধ্যে কয়েকটি পাইথন-নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করে যা আপনি না দেখলে হয়ত অজানা থাকতে পারে, তাই যদি আপনি আটকে থাকেন তবে টিপসটি একবার দেখুন।
লক্ষ্য: দশটি সমস্যা রয়েছে, প্রতিটি আপনার অনুকূলকরণের জন্য পাইথন কোডের একটি রেফারেন্স স্নিপেট এবং কোডটির বিবরণ দেয়। আপনার লক্ষ্যটি এটি সংক্ষিপ্ত হয়ে পুনরায় লিখতে হবে তবে এখনও কার্যত সমতুল্য।
আপনার স্কোর, যা আপনি হ্রাস করার চেষ্টা করছেন তা হ'ল আপনার কোডের সমস্ত স্নিপেটের মোট দৈর্ঘ্য। রেফারেন্স স্নিপেটের দৈর্ঘ্য ১৫০ T টাইব্রেকার প্রথম পোস্ট।
উত্তর পোস্ট করা: প্রতিটি সমস্যার জন্য আপনার কোড এবং এর অক্ষর গণনা পোস্ট করুন। আপনি যদি কিছু ছোট না পেয়ে থাকেন তবে আপনি রেফারেন্স স্নিপেট পোস্ট করতে পারেন। এটি উদ্দেশ্য যখন আপনি নিজের পোস্ট করার সময় অন্যের উত্তর তাকান না। পৃথক চরিত্রের গণনা সহ প্রতিটি পৃথক সমস্যাটিকে স্পয়লার-ট্যাগ করুন। আপনি প্রকাশিত মোট গণনা ছেড়ে যেতে পারেন। আপনার সমাধানটি আনসোপাইল করতে বা নতুন অযথিত সমাধান পোস্ট করার জন্য এখন নির্দ্বিধায়।
বৈধতার উপর বিশদ: কার্যকরী সমতুল্য মানে কোডটিকে কোনও প্রোগ্রামে তার আচরণকে প্রভাবিত না করে (অভিব্যক্তির অংশ হিসাবে মেমরির ব্যবহার এবং অপারেটরের অগ্রাধিকারের মতো বিষয়গুলি উপেক্ষা করে) প্রতিস্থাপন করা যেতে পারে। এক্সপ্রেশনগুলির দ্বারা সমমানের মানগুলি তৈরি করা উচিত ==
। নোট করুন 1.0==1==True
। অন্যথায় না বলা পর্যন্ত আপনার কোডের কোনও পার্শ্ব-প্রতিক্রিয়া হওয়া উচিত। আমি সমস্যাগুলি সংস্করণ-নির্দিষ্ট হওয়ার ইচ্ছা করি না, তবে কেবলমাত্র যদি আপনি প্রতিটি সমস্যার জন্য পাইথন সংস্করণ নির্দিষ্ট করতে পারেন।
সমস্যা 1: যতক্ষণ তালিকায় L
কমপক্ষে 7 টি উপাদান রয়েছে ততক্ষণ পুনরাবৃত্তি করুন
# 16 chars
while len(L)>=7:
সমস্যা 2 : দুটি ভাসমান x
এবং y
উভয়ই ইতিবাচক কিনা তা পরীক্ষা করে দেখুন ।
# 11 chars
x>0 and y>0
সমস্যা 3 : যদি বুলিয়ান b
সত্য হয় তবে এর প্রথম উপাদানটি সরান L
। অন্যথায় এটি অপরিবর্তিত রেখে দিন।
# 12 chars
if b:L=L[1:]
সমস্যা 4 : খালি খালি তালিকার তালিকার সমস্ত উপাদান L
সমান কিনা তা পরীক্ষা করে দেখুন। এই সমস্যার জন্য, তালিকাটি পরিবর্তন করা ঠিক আছে OK
# 22 chars
all(x==L[0]for x in L)
সমস্যা 5 : কেবলমাত্র ইতিমধ্যে সেই সংখ্যাটি অন্তর্ভুক্ত থাকলে n
তালিকার শেষে একটি সংখ্যা যুক্ত করুন।L
L
# 16 chars
if n in L:L+=[n]
সমস্যা 6 : একটি ফ্লোটের চিহ্নটি প্রকাশ করুন x
: +1
ধনাত্মক হিসাবে, 0
0 এর -1
জন্য, নেতিবাচক জন্য।
# 20 chars
abs(x)/x if x else 0
সমস্যা 7L
বুলিয়ানদের তালিকার প্রথম উপাদান যতক্ষণ না একটি লুপ চালিয়ে যান True
। L
খালি থাকলেও থামুন।
# 17 chars
while L and L[0]:
সমস্যা 8 : n
1 এর চেয়ে বেশি দীর্ঘ হিসাবে একটি লুপ চালিয়ে যান The সংখ্যাটি n
ইতিবাচক পূর্ণসংখ্য হিসাবে গ্যারান্টিযুক্ত।
# 10 chars
while n>1:
সমস্যা 9 : কোনও স্ট্রিং হিসাবে উপস্থাপিত কোনও পূর্ণসংখ্যা s
নেতিবাচক কিনা তা পরীক্ষা করুন (যেমন, '-' দিয়ে শুরু হয়) starts
# 9 chars
s[0]=='-'
সমস্যা 10 : একটি বুলিয়ান রূপান্তর b
করতে "Win"
/ "Lose"
সঙ্গে True
-> "Win"
এবং False
-> "Lose"
।
# 17 chars
["Lose","Win"][b]
সতর্কতা: নীচের স্পিলাররা, আপনি যদি এগুলি নিজে সমাধান করতে চান তবে নীচে স্ক্রোল করবেন না।
আপনি যদি কেবল সমস্যার জন্য অনুকূল স্কোরটি জানতে চান:
সমস্যা 1:
12
সমস্যা 2:
5
সমস্যা 3:
7
সমস্যা 4:
13
সমস্যা 5:
13
সমস্যা 6:
8
সমস্যা 7:
12
সমস্যা 8:
9
সমস্যা 9:
5
সমস্যা 10:
15