क्या आप कृपया बता सकते हैं कि इंट वैल्यू को चार में बदलने के बाद मुझे खाली स्ट्रिंग क्यों मिल रही है?

पायथन कोड:

s = "10"

for c in s:
    #doing rotation of number by 2
    val = (ord(c) + 2 - 48)%10
    print(type(val), val)
        
    #Convert int to str
    val = chr(val)
    print(type(val), val)

आउटपुट:

>> <class, int> 3
>> <class, str>
>> <class, int> 2
>> <class, str>
0
Sohan Joshi 18 मार्च 2021, 10:45

2 जवाब

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

आपका कोड आपके "रोटेशन" के बाद प्राप्त होने वाली संख्याओं को स्ट्रिंग्स में परिवर्तित कर रहा है, लेकिन उन अंकों में नहीं जो आप चाहते हैं। यदि आप 0 और 9 के बीच के पूर्णांक को उसके अंकों के प्रतिनिधित्व में बदलने के लिए chr का उपयोग करना चाहते हैं, तो आपको यूनिकोड में ऑफसेट में '0' को वापस जोड़ना होगा, 48। आपको इसे पहले घटाना था, जब आपने अंक को उसके कोडपॉइंट में परिवर्तित किया था, अब इसे वापस जोड़ने का समय आ गया है।

प्रयत्न:

val = chr(val + 48)
1
Blckknght 18 मार्च 2021, 11:05

असल में आपको एक खाली स्ट्रिंग नहीं मिलती है, लेकिन एक स्ट्रिंग, जिसमें कोई प्रिंट करने योग्य वर्ण नहीं होता है, क्योंकि chr(2), chr(3) एसटीएक्स और ईटीएक्स नियंत्रण वर्णों से मेल खाता है।

आप chr के बजाय str का उपयोग करने पर विचार कर सकते हैं।

1
guidot 18 मार्च 2021, 10:51