পাইথন 3 এ কেন কোনও এক্সরঞ্জ ফাংশন নেই?


273

সম্প্রতি আমি পাইথন 3 ব্যবহার করা শুরু করেছি এবং এতে এক্সরেঞ্জের ঘাটতি দেখা দেয়।

সাধারণ উদাহরণ:

1) পাইথন 2:

from time import time as t
def count():
  st = t()
  [x for x in xrange(10000000) if x%4 == 0]
  et = t()
  print et-st
count()

2) পাইথন 3:

from time import time as t

def xrange(x):

    return iter(range(x))

def count():
    st = t()
    [x for x in xrange(10000000) if x%4 == 0]
    et = t()
    print (et-st)
count()

ফলাফল যথাক্রমে:

1) 1.53888392448 2) 3.215819835662842

তা কেন? মানে, এক্সরেঞ্জ কেন সরানো হয়েছে? এটি শিখার মতো দুর্দান্ত সরঞ্জাম। নতুনদের জন্য, ঠিক আমার মতোই, যেমন আমরা সকলেই এক পর্যায়ে ছিলাম। কেন এটি অপসারণ? কেউ কি আমাকে সঠিক পিইপি-তে নির্দেশ করতে পারে, আমি এটি খুঁজে পাচ্ছি না।

চিয়ার্স।


231
rangeপাইথন 3.x এ xrangeপাইথন ২.x থেকে is এটি আসলে পাইথন ২.x এর rangeসরানো হয়েছিল।
আনরোভ

27
পিএস, আপনার সাথে কখনই সময় কাটা উচিত নয় time। আপনার পক্ষে সহজেই ব্যবহার করা সহজ এবং ভুল হওয়া এবং আপনার জন্য পরীক্ষাগুলির পুনরাবৃত্তি করা, আপনার মনে নেই timeitএমন সমস্ত ধরণের জিনিসগুলির যত্ন নেয় বা এমনকি কীভাবে যত্ন নেবেন তাও জানেন (জিসি অক্ষম করার মতো), এবং এটি ব্যবহার করতে পারে হাজার গুণ ভাল রেজোলিউশন সহ ঘড়ি।
অবসর

7
এছাড়াও, আপনি কেন ফিল্টার rangeচালু করার জন্য সময়টি পরীক্ষা করছেন x%4 == 0? কেন শুধু list(xrange())বনাম পরীক্ষা করা নয় list(range()), সুতরাং যতটা সম্ভব বাহ্যিক কাজ সম্ভব? (উদাহরণস্বরূপ, আপনি কীভাবে জানবেন যে 3.x x%4আরও ধীরে ধীরে করছে না ?) এই বিষয়টির জন্য, আপনি কেন একটি বিশাল নির্মাণ করছেন list, যার মধ্যে পুরো প্রচুর পরিমাণে মেমরি বরাদ্দ রয়েছে (যা ধীর হওয়া ছাড়াও অবিশ্বাস্যভাবে পরিবর্তনশীল) ?
অবসর

5
দেখুন docs.python.org/3.0/whatsnew/3.0.html ) "পরিসীমা (এখন xrange () আচরণ করে ব্যবহার করা মত আচরণ ছাড়া আর নির্বিচারে আকার মান সঙ্গে কাজ করে আধুনিক: অধ্যায়" মতামত এবং Iterators পরিবর্তে তালিকার "। আর বিদ্যমান নেই." সুতরাং, পরিসীমা এখন একটি পুনরাবৃত্তি প্রদান করে। iter(range)অপ্রয়োজনীয়।
টুলমেকারস্টেভ

9
দুঃখিত, পরিবর্তিত ডকটি উদ্ধৃত করা অন্ধভাবে স্পষ্ট করে না। অন্য যে কেউ বিভ্রান্ত হয়ে পড়েছে, এবং দীর্ঘ গৃহীত উত্তর এবং তার সমস্ত মন্তব্যগুলি পড়তে চায় না: আপনি যেখানেই পাইথন 2 তে এক্সরঞ্জ ব্যবহার করছিলেন, সেখানে অজগর 3-তে ব্যাপ্তি ব্যবহার করুন, যা এক্সরেঞ্জ করত যা করে একটি পুনরুক্তি ফেরত। আপনার যদি তালিকায় ফলাফলের প্রয়োজন হয় তবে করুন list(range(..))। এটি পাইথন 2 এর সীমার সমতুল্য। বা এটি অন্য কোনওভাবেlist(range) বলতে: এক্সারেঞ্জের নামকরণ করা হয়েছে পরিসীমা, কারণ এটি আরও ভাল ডিফল্ট; এটি উভয়ই রাখার দরকার ছিল না, যদি আপনার সত্যিই কোনও তালিকার দরকার হয় তবে করুন।
টুলমেকারস্টেভ

উত্তর:


175

কিছু কর্মক্ষমতা পরিমাপ, timeitম্যানুয়ালি এটি করার চেষ্টা করার পরিবর্তে ব্যবহার করে time

প্রথম, অ্যাপল 2.7.2 64-বিট:

In [37]: %timeit collections.deque((x for x in xrange(10000000) if x%4 == 0), maxlen=0)
1 loops, best of 3: 1.05 s per loop

এখন, পাইথন.অর্গ 3.3.0 64-বিট:

In [83]: %timeit collections.deque((x for x in range(10000000) if x%4 == 0), maxlen=0)
1 loops, best of 3: 1.32 s per loop

In [84]: %timeit collections.deque((x for x in xrange(10000000) if x%4 == 0), maxlen=0)
1 loops, best of 3: 1.31 s per loop

In [85]: %timeit collections.deque((x for x in iter(range(10000000)) if x%4 == 0), maxlen=0) 
1 loops, best of 3: 1.33 s per loop

স্পষ্টতই, 3.x rangeসত্যই 2.x এর তুলনায় কিছুটা ধীর xrange। এবং ওপির xrangeফাংশনটির সাথে কোনও সম্পর্ক নেই। (অবাক হওয়ার মতো কিছু নয়, যেহেতু __iter__একবারে স্লটে কল করা লুপে যা ঘটেছিল তা 10000000 কলগুলির মধ্যে দৃশ্যমান হওয়ার সম্ভাবনা নেই, তবে কেউ এটিকে সম্ভাবনা হিসাবে নিয়ে এসেছিল))

তবে এটি কেবল 30% ধীর। কীভাবে ওপি 2x আস্তে পেয়েছে? ঠিক আছে, যদি আমি 32-বিট পাইথন দিয়ে একই পরীক্ষাগুলির পুনরাবৃত্তি করি তবে আমি 1.58 বনাম 3.12 পেয়েছি। সুতরাং আমার অনুমান যে এটি those২-বিট ক্ষতিগ্রস্ত উপায়ে x৪-বিট পারফরম্যান্সের জন্য x.x অনুকূল করা হয়েছে সেগুলির মধ্যে এটি আরও একটি।

কিন্তু এটা আসলে ব্যাপার? আবার 3.3.0 64-বিট সহ এটি পরীক্ষা করে দেখুন:

In [86]: %timeit [x for x in range(10000000) if x%4 == 0]
1 loops, best of 3: 3.65 s per loop

সুতরাং, listসম্পূর্ণরূপে পুনরাবৃত্তির তুলনায় দ্বিগুণের চেয়ে বেশি সময় নেয় এটি তৈরি করা।

এবং হিসাবে "পাইথন ২.6++ এর চেয়ে অনেক বেশি সংস্থান গ্রহণ করে", আমার পরীক্ষাগুলি থেকে মনে হয়, একটি 3.x rangeদেখতে ঠিক ঠিক ২.x size আকারের মতো xrangeএবং এটি 10x বড় হলেও, অপ্রয়োজনীয় তালিকা তৈরি করছে পরিসীমা পুনরাবৃত্তি সম্ভবত যা করতে পারে তার চেয়ে আরও প্রায় 10000000x সমস্যা।

এবং forভিতরে সি লুপ পরিবর্তে একটি স্পষ্ট লুপ সম্পর্কে কি deque?

In [87]: def consume(x):
   ....:     for i in x:
   ....:         pass
In [88]: %timeit consume(x for x in range(10000000) if x%4 == 0)
1 loops, best of 3: 1.85 s per loop

সুতরাং, forবিবৃতিতে যতটা সময় নষ্ট হয়েছে তার পুনরাবৃত্তির আসল কাজ হিসাবে range

যদি আপনি কোনও ব্যাপ্তি অবজেক্টের পুনরাবৃত্তিকে অনুকূলকরণ সম্পর্কে উদ্বিগ্ন হন তবে আপনি সম্ভবত ভুল জায়গায় সন্ধান করছেন।


এদিকে, আপনি জিজ্ঞাসা চালিয়ে যান কেন xrangeলোকেরা আপনাকে একবারে একই কথা বলুক না কেন, তবে আমি আবার তা পুনরায় বলব: এটি সরানো হয়নি: এটির নামকরণ করা হয়েছিল range, এবং 2.x rangeমুছে ফেলা হয়েছে।

এখানে কিছু প্রমাণ রয়েছে যে 3.3 rangeঅবজেক্টটি 2.x xrangeঅবজেক্টের সরাসরি বংশধর (এবং 2.x rangeফাংশনের নয়): উত্সটি 3.3range এবং 2.7xrange । এমনকি আপনি পরিবর্তনের ইতিহাসও দেখতে পাচ্ছেন (লিঙ্কযুক্ত, আমি বিশ্বাস করি, যে পরিবর্তনটি ফাইলের যে কোনও জায়গায় "xrange" স্ট্রিংয়ের শেষ উদাহরণটি প্রতিস্থাপন করেছে)।

সুতরাং, এটি কেন ধীর?

হ্যাঁ, একের জন্য তারা অনেকগুলি নতুন বৈশিষ্ট্য যুক্ত করেছে। অন্যটির জন্য, তারা সমস্ত জায়গা (বিশেষত পুনরাবৃত্তির অভ্যন্তরে) জুড়ে সমস্ত ধরণের পরিবর্তন করেছেন যার সামান্য পার্শ্ব প্রতিক্রিয়া রয়েছে। এবং বিভিন্ন গুরুত্বপূর্ণ কেস নাটকীয়ভাবে অপ্টিমাইজ করার জন্য প্রচুর কাজ হয়ে গেছে, এমনকি যদি এটি কখনও কখনও কম গুরুত্বপূর্ণ ক্ষেত্রে কিছুটা হলেও হতাশ করে। এগুলি সব যোগ করুন, এবং আমি অবাক হই না যে rangeযত দ্রুত সম্ভব পুনরাবৃত্তি করা এখন কিছুটা ধীর। এটি এমন কম গুরুত্বপূর্ণ বিষয়গুলির মধ্যে একটি যার দিকে মনোনিবেশ করার জন্য কেউ যথেষ্ট যত্ন নেবে না। কারওরই আসল-জীবন ব্যবহারের সম্ভাবনা নেই যেখানে এই কোডের পারফরম্যান্স পার্থক্য হ'ল হ'ল স্পট code


তবে এটি কেবল 30% ধীর। এখনও ধীর, তবে দুর্দান্ত প্রতিক্রিয়ার সাথী, কিছু ভাবনা। এটি আমার প্রশ্নের উত্তর দেয় না যদিও: এক্সরেঞ্জ কেন সরানো হয়েছিল ?? এটি এইভাবে চিন্তা করুন - যদি আপনার এক-সময় গ্রহণ করার জন্য কতটা সারি প্রয়োজন তা জেনে মাল্টিপ্রসেসিংয়ের ভিত্তিতে যদি পারফরম্যান্স-নির্ভর অ্যাপ্লিকেশন থাকে তবে 30% কী পার্থক্য আনবে বা না? আপনি দেখুন, আপনি বলছেন যে এটি কিছু যায় আসে না, তবে প্রতিবার আমি যখন রেঞ্জ ব্যবহার করি তখন শুনি যে বিশাল কষ্টকর ফ্যান শব্দের অর্থ সিপিইউ সবচেয়ে খারাপ, যদিও এক্সরেঞ্জ এটি করে না। এটি সম্পর্কে আপনাকে ভাবুন;)
ক্যাটালেসিয়া

9
@ ক্যাটালেসিয়া: আবারও, এটি সরানো হয়নি, এটি সবেমাত্র নামকরণ করা হয়েছিল rangerange3.3 বস্তুর সরাসরি বংশধর হয় xrangeনা, 2.7 বস্তুর range2.7 ফাংশন। এটা তোলে যখন জিজ্ঞাসা মত itertools.imapপক্ষে সরানো হয়েছে map। কোনও উত্তর নেই, কারণ এরকম কোনও ঘটনা ঘটেনি।
অবতরণ

1
@ ক্যাটালেসিয়া: সামান্য পারফরম্যান্সের পরিবর্তনগুলি সম্ভবত রেঞ্জগুলি ধীরে ধীরে তৈরি করার প্রত্যক্ষ নকশার সিদ্ধান্তের ফল নয়, বরং পাইথন জুড়ে 4 বছরের পরিবর্তনের একটি পার্শ্ব প্রতিক্রিয়া যা অনেকগুলি জিনিসকে আরও দ্রুত করে তুলেছে, কিছু জিনিস কিছুটা ধীরগতির (এবং কিছু জিনিস x86_64 এর চেয়ে দ্রুত তবে x86 এর চেয়ে ধীর গতিতে বা কিছু ব্যবহারের ক্ষেত্রে দ্রুত তবে অন্যদের মধ্যে ধীর গতির ইত্যাদি)। rangeআর কিছুই না করে কিছুক্ষণ পুনরুক্তি করতে কতক্ষণ সময় লাগে তাতে 30% পার্থক্যের বিষয়ে কেউই সম্ভবত চিন্তিত ছিলেন না।
শে

1
" অন্য কিছু না করার পরেও কোনও পরিসীমা পুনরাবৃত্তি করতে কতক্ষণ সময় লাগে সেদিকেই 30% পার্থক্যের বিষয়ে কেউ চিন্তিত ছিলেন না। " ঠিক আছে।
ক্যাটালেসিয়া

18
@ ক্যাটালেসিয়া: হ্যাঁ, ঠিক তবে আপনি মনে করেন যে এটির অর্থ এর বিপরীত। এটি এমন ব্যবহারের ক্ষেত্রে নয় যা যে কেউ কখনও যত্নবান হয়, তাই কেউই লক্ষ্য করেনি যে এটি ৩০% ধীর হয়ে গেছে। তাতে কি? আপনি যদি এমন কোনও বাস্তবজীবন প্রোগ্রাম খুঁজে পেতে পারেন যা পাইথন ৩.৩-এর তুলনায় ২.7 (বা ২.6) এর চেয়ে বেশি ধীরে ধীরে চলে, লোকেরা যত্ন নেবে will আপনি যদি না পারেন তবে তারা তা করবে না এবং আপনারও উচিত নয়।
অবসর

141

Python3 এর পরিসীমা হয় Python2 এর xrange। এর চারপাশে কোনও ইটার মোড়ানো দরকার নেই। পাইথন 3 এ একটি আসল তালিকা পেতে আপনার ব্যবহার করতে হবেlist(range(...))

পাইথন 2 এবং পাইথন 3 এর সাথে কাজ করে এমন কিছু আপনি চাইলে এটি চেষ্টা করে দেখুন

try:
    xrange
except NameError:
    xrange = range

1
কখনও কখনও আপনার কোড দরকার যা পাইথন 2 এবং 3 উভয় ক্ষেত্রেই কাজ করে This এটি একটি ভাল সমাধান।
গ্রেগ গ্লকনার

3
সমস্যাটি হ'ল এটির সাথে, কোড যা উভয় ব্যবহার করে rangeএবং xrangeভিন্নভাবে আচরণ করবে। এটি করার জন্য এটি যথেষ্ট নয়, rangeএটির জন্য কোনওটিকে অবশ্যই কোনও তালিকা ফেরত দিচ্ছে তা কখনই ধরে নিতে হবে না (যেমনটি অজগর 2 তে হবে)।
ল্যাঙ্গেহারে

আপনি এই প্রকল্প থেকে এক্সরেঞ্জ ব্যবহার করতে পারেন। futurizeআপনাকে সোর্স কোডটি স্বয়ংক্রিয়ভাবে রূপান্তর করার জন্য একটি সরঞ্জাম রয়েছে : পাইথন
ফিউচার.আর.জি

17

পাইথন 3 এর rangeধরণ পাইথন 2 এর মতোই কাজ করে xrange। আমি নিশ্চিত না আপনি কেন একটি মন্দা দেখছেন, যেহেতু আপনার xrangeফাংশন দ্বারা পুনরাবৃত্তিটি আপনি rangeসরাসরি পুনরাবৃত্তি করলে আপনি ঠিক কী পাবেন ।

আমি আমার সিস্টেমে মন্দা পুনরুত্পাদন করতে পারছি না। এখানে আমি কীভাবে পরীক্ষা করেছি:

পাইথন 2, এর সাথে xrange:

Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import timeit
>>> timeit.timeit("[x for x in xrange(1000000) if x%4]",number=100)
18.631936646865853

পাইথন 3, এর সাথে rangeসামান্য কিছুটা দ্রুত:

Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:57:17) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import timeit
>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=100)
17.31399508687869

আমি সম্প্রতি শিখেছি পাইথন 3 এর rangeধরণে আরও কিছু ঝরঝরে বৈশিষ্ট্য রয়েছে যেমন কাটা কাটা জন্য সমর্থন: range(10,100,2)[5:25:5]এটি range(20, 60, 10)!


সম্ভবত মন্দাটি নতুন xrangeঅনেক বার দেখা থেকে এসেছে, বা এটি একবারে হয়ে গেছে?
askewchan

একটি পুনরাবৃত্তি আসলে যাইহোক গতি বৃদ্ধি করে? আমি ভেবেছিলাম এটি কেবল স্মৃতি সঞ্চয় করেছে।
জিজ্ঞাসা

3
@catalesia আমি মনে করি এখানে বিন্দু যে xrangeছিল না , সরানো শুধু নতুন নামকরণ
জিজ্ঞাসা

1
@ ব্ল্যাককিংহিট: চিয়ার্স, তবে এটি এর মতো পছন্দগুলির একটি ব্যাখ্যা পেয়েছে: "আক্ষরিক এবং বোধগম্যতা সেট করুন [১৯] [২০] [সম্পন্ন] {x {অর্থ সেট ([x]); {x, y} মানে সেট ([ x, y])। S এফ (এক্স) এস এর জন্য এস যদি পি (এক্স)} এর অর্থ সেট (এফ (এক্স) এস এর ক্ষেত্রে এক্সে পি (এক্স)) হয়। এনবি। {পরিসীমা (এক্স)} মানে সেট ( [রেঞ্জ (এক্স)]), সেট (রেঞ্জ (এক্স)) নেই। খালি সেটটির জন্য কোনও আক্ষরিক নেই; ব্যবহার সেট () (বা {1} & {2} :-)) কোনও হিমশীতল আক্ষরিক নেই; সেগুলিও খুব বেশি খুব কমই প্রয়োজন ""
ক্যাটালেসিয়া

3
3.x সবচেয়ে বড় জয় range, যতদূর আমি উদ্বিগ্ন, ধ্রুবক সময় __contains__। Newbies লিখতে ব্যবহার করত 300000 in xrange(1000000)এবং এটি সম্পূর্ণরূপে পুনরুক্তি ঘটায় xrange(বা এটির কমপক্ষে প্রথম 30%), সুতরাং এটি এতটা অজগর হিসাবে দেখানো সত্ত্বেও, আমাদের কেন এটি খারাপ ধারণা বলে ব্যাখ্যা করতে হয়েছিল। এখন, এটা হয় pythonic।
অবসর

1

আপনার পাইথন 2 কোড ঠিক করার একটি উপায় হ'ল:

import sys

if sys.version_info >= (3, 0):
    def xrange(*args, **kwargs):
        return iter(range(*args, **kwargs))

1
পাইথন 3 এক্সরেঞ্জের পয়েন্টটি সংজ্ঞায়িত করা হয়নি, সুতরাং লিগ্র্যাসি কোড যা এক্সরেঞ্জ ব্রেক ব্যবহার করেছে used
অ্যান্ড্রু পেট 23'17

না, range = xrange@ জন লা রায়
mimi.vx

@ মিমি.ভিএক্স নিশ্চিত নয় যে রেঞ্জ = এক্সরেঞ্জ পাইথন 3 এ কাজ করবে কারণ এক্সরেঞ্জ সংজ্ঞায়িত নয়। আমার মন্তব্যটি আপনার ক্ষেত্রে সেই পুরানো লিগ্যাসি কোড রয়েছে যেখানে এক্সরেঞ্জ কল রয়েছে এবং এটি পাইথন 3 এর অধীনে চালানোর জন্য আপনার চেষ্টা রয়েছে to
অ্যান্ড্রু পেট

1
আহ, আমার খারাপ .. xrange = range... আমি বিবৃতিগুলি পরিবর্তন করেছি
mimi.vx

পরিসর IS একটি iiterator, এবং যাহাই হউক না কেন এই, একটি ভয়ানক ধারণা এমনকি যদি এটা ছিল না হবে, কারণ এটি প্রথম সমগ্র পরিসীমা প্যাকমুক্ত হয়েছে এবং জিনিস এই সাজানোর জন্য কোনো ইটারেটরে ব্যবহার করে সুফল হারায়। সুতরাং সঠিক প্রতিক্রিয়াটি "রেঞ্জ = এক্সরেঞ্জ" এর "এক্সরেঞ্জ = রেঞ্জ" নয়
শায়েন

0

পাইথন 2 থেকে এক্সরেঞ্জ হল একটি জেনারেটর এবং পুনরুক্তি কেবলমাত্র একটি ফাংশন থাকা অবস্থায় পুনরুক্তি প্রয়োগ করে। পাইথন 3-এ আমি জানি না কেন এক্সরেঞ্জ থেকে বাদ দেওয়া হয়েছিল।


না, পরিসীমা কোনও ইন্টারেটার নয়। আপনি এই কাঠামোটি সহ পরবর্তী () করতে পারবেন না। আরও তথ্যের জন্য, আপনি এখানে পরীক্ষা করতে পারেন treyhunner.com/2018/02/python-range-is-not-an-iterator
মিশেল ফার্নান্দেস

স্পষ্টির জন্য আপনাকে অনেক ধন্যবাদ। তবে আমি মূল মন্তব্যের অভিপ্রায়টি পুনরুদ্ধার করব এবং এটি হল পিওয়াই range()3 পিওয়াই 2 এর সমতুল্য xrange()। এবং এইভাবে পিওয়াই 3 xrange()এ অপ্রয়োজনীয়।
স্টিফেন রাউচ

-2

কমপ্লেক্স : ~ y পাইথন পাইথন ২.7..6 (ডিফল্ট, জুন 22, 2015, 17:58:13) [জিসিসি 4.8.2] লিনাক্স 2 এ

>>> import timeit
>>> timeit.timeit("[x for x in xrange(1000000) if x%4]",number=100)

5,656799077987671

>>> timeit.timeit("[x for x in xrange(1000000) if x%4]",number=100)

5,579368829727173

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=100)

21,54827117919922

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=100)

22,014557123184204

সময়সূত্র সংখ্যা = 1 পরম সহ:

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=1)

0,2245171070098877

>>> timeit.timeit("[x for x in xrange(1000000) if x%4]",number=1)

0,10750913619995117

কমপ্লেক্স: ~ y পাইথন 3 পাইথন ৩.৪.৩ (ডিফল্ট, অক্টোবর 14 2015, 20:28:29) [জিসিসি 4.8.4] লিনাক্সে

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=100)

9,113872020003328

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=100)

9,07014398300089

সময়কাল সংখ্যা সহ = 1,2,3,4 পরম দ্রুত এবং রৈখিক উপায়ে কাজ করে:

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=1)

0,09329321900440846

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=2)

0,18501482300052885

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=3)

0,2703447980020428

>>> timeit.timeit("[x for x in range(1000000) if x%4]",number=4)

0,36209142999723554

সুতরাং মনে হচ্ছে যদি আমরা টাইমাইট.টাইমাইটের মতো 1 টি চলমান লুপ চক্র পরিমাপ করি ("[x এর জন্য এক্সের জন্য রেঞ্জ (1000000) যদি x% 4]", সংখ্যা = 1) (যেমন আমরা বাস্তবে বাস্তব কোড ব্যবহার করি) পাইথন 3 দ্রুত কাজ করে, তবে পুনরাবৃত্ত লুপগুলিতে পাইথন 2 থেকে অজগর 2 এক্সরেঞ্জ () গতিবেগের বিরুদ্ধে গতিতে জয়ী হয়) from


তবে এটি ভাষা থেকেই ... এক্সরেঞ্জ / রেঞ্জের সাথে কিছুই করার নেই।
mimi.vx
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.