मैं अजगर के लिए नया हूँ और मैं बुलबुला प्रकार की कोशिश कर रहा था। त्रुटि खोजने में सक्षम नहीं है। यहाँ थोड़ी मदद।

def bubble(n, list):
    for i in range(0, n):
        for j in range(0, n - i - 1):
            if list[j] > list[j + 1]:
                list[j],list[j+1] = list[j + 1],list[j]

def main():
    n = input('size')
    n = int(n)
    list = []
    for i in range(0, n):
        no = input('no')
        list + [no]
    bubble(n, list)
    print(list)

main()

निष्पादन के दौरान, यह दिखा रहा है: लाइन 4, बबल में अगर (सूची [जे]> सूची [जे + 1]): इंडेक्स त्रुटि: सूची सूचकांक सीमा से बाहर है

लेकिन मैं कैसे पता नहीं लगा सका। सूचकांक हमेशा रहेगा

-1
anna 8 जिंदा 2020, 20:32

1 उत्तर

सबसे बढ़िया उत्तर

पहली समस्या यह है कि आप input('no') को int में नहीं बदलते हैं। यह वर्तमान समस्या का कारण नहीं है, लेकिन बाद में समस्याएं पैदा करेगा।

दूसरी समस्या यह है कि आप एक चर नाम के रूप में list का उपयोग करते हैं। list एक पूर्वनिर्धारित पायथन वर्ग है और आप इसे अधिलेखित कर देंगे। कोई दूसरा नाम चुनें.

तीसरी समस्या यह है कि आप list + [no] का उपयोग करते हैं। यह no को list में नहीं जोड़ेगा। यह केवल आउटपुट को अस्थायी रूप से संग्रहीत करेगा और इसे स्वचालित रूप से हटा देगा। 2 समाधान हैं: 1. += का उपयोग करना a += b, a = a + b के बराबर है। कई अंकगणितीय ऑपरेटरों के लिए भी यही स्थिति है। बस + को += से बदलें। 2. append का उपयोग करना append तेज है। इसे somelist.append(somevalue) की तरह इस्तेमाल करें।

0
CoderCharmander 9 जिंदा 2020, 06:15