পাইথ কীভাবে উন্নতি করা যায়? [বন্ধ]


24

পাইথ চলমান বিকাশে রয়েছে, এর অর্থ হ'ল নতুন বৈশিষ্ট্যগুলি সর্বদা যুক্ত হচ্ছে।

আমি পাইথকে আরও উন্নততর ল্যাঙ্গুয়েজ করতে চাই, তাই আমি লোকেরা কী বৈশিষ্ট্যগুলি অনুসন্ধান করছে তা জানতে চাই।

পাইথকে আরও ভাল করার জন্য পোস্টের আইডিয়াগুলি এটিই।

আপনার উত্তরে, দয়া করে বলুন:

  • আপনি কী দেখতে পরিবর্তন / যুক্ত দেখতে চান।

  • পরিবর্তনের একটি উদাহরণ ব্যবহার।

আমি পরামর্শটি বাস্তবায়নের পরিকল্পনা করছি কিনা আমি মন্তব্য করব।

আপনি পরামর্শ দিতে চান ধারণা ইতিমধ্যে প্রস্তাব দেওয়া হয়েছে কিনা তা দয়া করে পরীক্ষা করে দেখুন। আপনি বাস্তবায়িত করতে চান ধারণা আপভোট।


বাস্তবায়িত পরামর্শ:


এই মেটা প্রশ্ন অনুসারে এটি ছিল যখন আমি প্রশ্ন পোস্ট করেছি, এটি আর পরিষ্কার নয়।


1
কেন এটি একটি সম্প্রদায়ের উইকি?
Geobits

4
এটি আলোচনা এবং পরামর্শ সংগ্রহের বেশি। পাইথ বৈশিষ্ট্যর পরামর্শ দেওয়ার জন্য কারওই পক্ষে নাম বা ক্ষতি হারাতে হবে না। এছাড়াও, বাস্তবায়িত পরামর্শগুলি সম্ভবত মুছে ফেলা উচিত। এই সম্পর্কিত প্রশ্নটি কমিউনিটি উইকিও।
ডেনিস

9
আমি নিশ্চিত নই যে এই জাতীয় প্রশ্নগুলি সম্পর্কে আমি কেমন অনুভব করছি। আমি দেখতে পাচ্ছি যে এটি এখানে সাজিয়ে তোলে, কারণ পিপিসিজি সম্ভবত পাইথের ব্যবহারকারীর বেশিরভাগ অংশ জুড়ে (তবে সমস্ত নয়) তবে আমরা নিশ্চিত নই যে এটি আমাদের ইস্যু ট্র্যাকার হিসাবে ব্যবহার করা উচিত। আমি মেটা পোস্টে একটি উত্তর যুক্ত করেছি।
মার্টিন ইন্ডার

এই মেটা করা উচিত নয়? গুরুতরভাবে ছেলেরা
অ্যালেক টেলি

2
@ অ্যালকিটেল "মেটা প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্ট্যাক এক্সচেঞ্জ হল সাইটের অংশ যেখানে ব্যবহারকারীরা প্রোগ্রাম গলফ বা কোড গল্ফ নিজেই আলোচনা করার পরিবর্তে কোড গল্ফ স্ট্যাক এক্সচেঞ্জের কাজ এবং নীতিগুলি নিয়ে আলোচনা করেন।" মেটা বিশেষত এই সম্প্রদায় সম্পর্কে । এটি সত্যিই মেটাতে অন্তর্ভুক্ত নয়। এটি এখানেই হোক বা মোটামুটি পিপিসিজিতে নয় তা বর্তমানে আমার লিঙ্কিত মেটা পোস্টে আলোচনা হচ্ছে।
মার্টিন ইন্ডার

উত্তর:


7

নেস্টেড লুপস

আপনি যদি নীড় forলুপ করতে চান তবে আপনাকে বর্তমানে বা এর বিপরীতে F<var><seq>অভ্যন্তর ব্যবহারের জন্য বাইট নষ্ট করতে হবে V<seq>। আমি ল্যাম্বডাসের মতো একই জিনিসটি পেতে চাই, যেখানে লুপগুলি নেস্ট করার সময় লুপের জন্য ব্যবহৃত ভেরিয়েবলটি পরিবর্তিত হত।


এটি অন্যান্য বিষয়গুলির মতো এমনকি বর্ধিতও হতে পারে L, যা পুনরায় সংজ্ঞায়িত করতে পারে, বলুন, Cদ্বিতীয়বার বলা হয়েছিল।
FryAmTheEggman


4

সহজ মডিউল আমদানি

এখন পর্যন্ত, যতবার আমি $এটি ব্যবহার করেছি এটির মতো কিছু ছিল:

$from <module> import <function> as <pyth-function-with-same-arity>$
for example:
$from unicodedata import name as neg$

এটির সংক্ষিপ্তসার হিসাবে একটি নতুন ফাংশন থাকতে পারে উদাহরণস্বরূপ .$:

.$"unicodedata""name""neg"
.$"unicodedata name neg"

অথবা এর মতো নতুন সিনট্যাক্স ব্যবহার করা _Mযা করা সহজ / সম্ভব নাও হতে পারে:

_$unicodedata name$

এছাড়াও, প্রতিটি আরটিটির সাথে একটি ফাংশনকে একটি একক বর্ণের ম্যাক্রোর নাম দেওয়া যেতে পারে যাতে এই কলগুলি আরও সংক্ষিপ্ত হতে পারে ( _$বিকল্প ব্যতীত )।


4

ঘুমন্ত

এটি এখানে সমস্যা সৃষ্টি করেছিল এবং @ এমবিম্ব 600 এটি এটিকে পাইথের উন্নতি হিসাবে রাখার পরামর্শ দিয়েছে । মূলত, এখনই, প্রদত্ত সংখ্যার সেকেন্ডের জন্য ঘুমানোর জন্য, আমাকে এর মতো কিছু করতে হবে:

Q$__import__('time').sleep(Q)$

যা হ্যাক হিসাবে বিরক্তিকর এবং দীর্ঘ।


আপনি তারিখ-ফাংশন সহ ঘুমের আচরণ অনুকরণ করতে পারেন। f>.d1Q0উদাহরণস্বরূপ Qকয়েক সেকেন্ড ঘুমায় ।
জাকুব

@ জাকুব এটি সর্বদা কার্যকর হয় না। ডক্স অনুসারে, ইউনিক্সে, এটি প্রোগ্রামটি কতক্ষণ ধরে চলছে তা ফিরিয়ে দেয়। কোনটি খারাপ যখন ব্যবহারকারী ইনপুট প্রবেশ করায়।
kirbyfan64sos

কিভাবে চেয়ে এই এক সম্পর্কে: J.d0f>-.d0JQ0। এটি বেশ দীর্ঘ যদিও ... আমি সম্মতি জানাই, একটি ঘুমের কাজটি দুর্দান্ত হবে।
জাকুবে

4

আরও লম্বা

এটি সত্যই ফ্রাইআম দ্য এজম্যানের ধারণা , তবে আমি এটি পোস্ট করার জন্য এটি এখানে আছি।

কখনও কখনও আমি দেখতে পাই যে দুটি পৃথক এক-যুক্তিযুক্ত ল্যাম্বডাস ব্যবহার করে কোডটি ছোট করা হবে, যখন একটির জন্য দ্বি-যুক্তিযুক্ত ল্যাম্বডা ব্যবহার না করানো হত।

ভাল লাগবে L, Mএবং বন্ধুরা প্রতিবার ব্যবহৃত একটি আলাদা ফাংশনটির নতুন সংজ্ঞা দেয়; উদাহরণস্বরূপ, এই কোড:

L*b2L*b3y5'5

এটি সংকলন করতে পারে:

@memoized
def subsets(b):
 return times(b,2)
@memoized
def read_file(b):
 return times(b,3)
imp_print(subsets(5))
imp_print(read_file(5))

কার্যকারিতার সঠিক পছন্দ অবশ্যই পরিবর্তন করা যেতে পারে।


3

বহুমাত্রিক অ্যারে উন্নত

বহুমাত্রিক অ্যারে ব্যবহার করা বর্তমানে করা বরং বরং কঠিন। উদাহরণস্বরূপ, সি কোডটি পাইথ A[B][C][D]অনুবাদ করবে would @@@ABCDএর মতো কিছু @A[BCD)খুব সুন্দর হবে (যদিও এখানে কোনও সংক্ষিপ্ত নয়)। একই জন্য যায় X; A[B][C][D] = Eবর্তমানে X@@ABCDEযখন এটি হতে পারে XA[BCD)E


3

কিছু ছোটখাটো ধারণা

  • সম্পূর্ণ পার্থক্য, অর্থাত্ abs(val1 - val2) । বর্তমানে এটি .a-<val1><val2>
  • min/ maxমানের জন্য। বর্তমানে এটি hS,<val1><val2>/ eS,<val1><val2>বা আরও মান সহ একই জিনিস। ( hS<seq>/ eS<seq>সিকোয়েন্সগুলির জন্য যথেষ্ট ছোট)

3

পাইথ বৈশিষ্ট্য নয়, তবুও ...

পাইথ কোডটি মডুলারি করুন

এটি কেবল হুডের নীচে পাইথকে প্রভাবিত করে। পাইথ বাস্তবায়নের কয়েকটি অংশ যথেষ্ট অগোছালো। প্রচুর গ্লোবাল ভেরিয়েবল এবং অন্যান্য হ্যাকি জিনিস।

আমি সত্যই হতাশ হয়েছি কিছুদিন আগে, যখন আমি পাইথন প্রয়োগের কয়েকটি ফাংশন (পাইথ কমান্ডের স্ট্রিং কার্যকর করার মতো) অন্য পাইথন স্ক্রিপ্ট থেকে ব্যবহার করার চেষ্টা করেছি।

নীচের মত কিছু সুন্দর হবে:

from pyth import execute_pyth
print(execute_pyth(code='sQ', input='[1, 2, 3]'))

ঠিক আছে, আমি অনুমান করি এটি পাইথ 5 এর জন্য কেবল একটি সহায়তা কল।



1

অনন্য উপাদান

পাইথের বর্তমানে সিকোয়েন্সের অনন্য উপাদান পাওয়ার কোনও ছোট উপায় নেই। আপনি এটি অনন্য কিনা তা পরীক্ষা করতে পারেন তবে বাস্তবে অনন্য আইটেমগুলি আপনি পাবেন না। বর্তমানে, সবচেয়ে সংক্ষিপ্ততম উপায় :

{.-Q{Q

6 বাইট! যে তুলনা কে, যেখানে অনন্য উপাদান পেয়ে এক বাইট অপারেশন হল: =x

হয়তো .}এখানে কাজ করবে?


কী ব্যবহারের ক্ষেত্রে (তাত্পর্যপূর্ণ একটি চ্যালেঞ্জ ব্যতীত) আপনি ভাবছেন?
isaacg

@ আইস্যাএজি আমি বেশ স্মরণ করতে পারি না তবে এর আগে আমাকে তালিকার অনন্য উপাদানগুলি চেষ্টা করে দেখতে হয়েছিল এবং অন্য কিছু ব্যবহার করতে হয়েছিল (যা সর্বদা দীর্ঘ ছিল)।
kirbyfan64sos

আমি পাইথ প্রোগ্রামার নই, তবে আমি গল্ফস্ক্রিপ্ট / সিজেমে সর্বদা এটি চালাচ্ছি: শ্রদ্ধা .&_&প্রচুর উত্তরে হাজির। এটা খুব দরকারী।
লাইন 21

1
এটি কীভাবে আলাদা {Q?
isaacg

1
@ আইস্যাক এইটি বাছাই করা হয়েছে
Ypnypn
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.