2015-02-06 9 views
5

मुझे पता है कि इससे पहले पूछा गया है, लेकिन उत्तरों ने मेरी मदद नहीं की:/टाइप एरर: रेंज() पूर्णांक अंत तर्क अपेक्षित, फ्लोट मिला?

मैंने एक ऐसा फ़ंक्शन बनाया जो इनपुट के वर्ग अधिकतम पर लूप के लिए चलाता है, और सभी खातों से मेरा कोड सही है .. और फिर भी यह अभी भी फ्लोट इनपुट के लिए पूछता है।

def spiral(X, Y): 

x = y = 0 
dx = 0 
dy = 0 
count = 0 

for i in range(max(X, Y)**2): 
    if (-X/2.0 < x <= X/20) and (-Y/2.0 < y <= Y/2.0): 
     print (x, y) 

    if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y): 
     dx, dy = -dy, dx 

    x, y = x+dx, y+dy 

प्रिंट सर्पिल (3.0,3.0)

और मैं इस त्रुटि मिलती है: TypeError: range() integer end argument expected, got float.

लेकिन मैं 3.0 डाल जब मैं कोशिश करते हैं और समारोह प्रिंट ... तो क्या मुझे याद आ रही?

धन्यवाद :)

+0

आप 'एक्स' और' वाई' के मानों के लिए फ्लोट में गुजर रहे हैं, इसके बजाय पूर्णांक में पास करें। – 101

+0

इस प्रकार मैं फ़ंक्शन को कॉल करता हूं: प्रिंट सर्पिल (3.0, 3.0) – Chef1075

+1

@ Chef1075 - बिल्कुल। '3.0' में' float' टाइप किया गया है, न कि 'int'। :-)। – mgilson

उत्तर

5

अन्य लोगों की तरह कहा टिप्पणी में, समस्या मुख्य रूप से सीमा समारोह में नाव मूल्य की वजह से है। क्योंकि रेंज फ़ंक्शन फ्लोट प्रकार को तर्क के रूप में स्वीकार नहीं करेगा।

for i in range(max(int(X), int(Y))**2): 
संबंधित मुद्दे