पायथन के लिए पोस्ट करें। मैंने अन्य पोस्ट पढ़ीं और सुनिश्चित किया कि यह डुप्लिकेट नहीं है

मैंने अपने पायथन में दो चर बनाए और उन दोनों में स्ट्रिंग 0 है। मैंने 1 और 0 के 2 अलग-अलग तारों के साथ प्रयास किया और जब मैं उन्हें जोड़ता हूं तो मुझे 10 मिलता है। लेकिन जब मैं 0 और 0 को जोड़ता हूं तो मुझे एक और 0 मिलता है। कोड:

a = 0
b = 0
b = int(str(a)+str(b))
print(b)

आउटपुट: 0. मैं चाहूंगा कि आउटपुट 00 . हो

0
Beginner_Steve 5 सितंबर 2021, 10:25

6 जवाब

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

किसी संख्या में अग्रणी शून्य होने पर हटा दिया जाएगा। यह मान नहीं बदलेगा इसलिए पायथन उन्हें हटा देता है।

जैसा कि आप देख सकते हैं:

>>> 0123
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
>>> 

0 को लिटरल के सामने रखने से एरर मिलता है। लेकिन अगर आप बस करते हैं:

>>> int('0123')
123
>>> 

यह स्वचालित रूप से शून्य को हटा देगा।

इसे ठीक करने के लिए इसे पूर्णांक में न बदलें:

a = 0
b = 0
x = str(a) + str(b)
print(x)

आउटपुट:

00
2
U12-Forward 5 सितंबर 2021, 07:29

रूपांतरण को वापस int . में निकालें

a = 0
b = 0
b = str(a)+str(b)
print(b)
1
Gábor Pálovics 5 सितंबर 2021, 07:26

इस लाइन में b = int(str(a)+str(b)) आप 00 को int में और 00 को int में 0 में कनवर्ट करते हैं। आप अपना कोड नीचे की तरह बदल सकते हैं फिर आपको अपनी इच्छा आउटपुट मिल जाएगी:

a = 0
b = 0
print(str(a)+str(b))

यह भी शायद यह उदाहरण आपकी मदद करता है:

print(00)
# 0
print("00")
# 00
1
user1740577 5 सितंबर 2021, 07:44

आप यहां बहुत सारी शब्दावली को भ्रमित कर रहे हैं, मेरा सुझाव है कि आप पायथन में प्रकारों पर एक ट्यूटोरियल का अनुसरण करें (या पढ़ें दस्तावेज़ीकरण)

आपकी समस्या के रूप में। आप ए और बी में तारों को संग्रहित नहीं कर रहे हैं, आप पूर्णांक संग्रहित कर रहे हैं:

# These will be integers:
a = 0
b = 0

# These will be strings:
a = '0'
b = '0'

स्ट्रिंग्स पर उद्धरणों पर ध्यान दें, पूर्णांकों पर कोई उद्धरण नहीं।

फिर आप यह हिस्सा करते हैं:

b = int(str(a)+str(b))

आप ए और बी को एक स्ट्रिंग (दोनों '0' युक्त) में कास्टिंग कर रहे हैं, और उन्हें संयोजित कर रहे हैं, स्ट्रिंग '00' बना रहे हैं। यही वह है जिसे आप प्रिंट करना चाहते हैं, लेकिन फिर आप उन्हें int() का उपयोग करके पूर्णांक में वापस डाल देते हैं। और जब आप अग्रणी शून्य के साथ एक स्ट्रिंग को int में डालते हैं, तो अग्रणी शून्य छोड़े जाते हैं, जो आपको '0' के साथ वापस छोड़ देता है।

अंत में, आप अनावश्यक प्रकार के कास्ट को हटाकर और अपने चर के लिए सही टाइपिंग का उपयोग करके अपना कोड ठीक कर सकते हैं:

a = '0'
b = '0'
b = a + b
print(b)

या यदि आपको पूर्णांक के रूप में a और b की आवश्यकता है:

a = 0
b = 0
print(str(a) + str(b))
1
ExtraFishness 5 सितंबर 2021, 07:48

यदि आप चाहते हैं कि आउटपुट '00' हो, तो b को एक स्ट्रिंग के रूप में रखें। जब आप इसे इंट में बदलते हैं, तो पायथन इसे सरल करता है और बस एक 0 प्रिंट करता है।

नया कोड:

a = 0
b = 0
b = str(a)+str(b)
print(b)
0
Jayanti 5 सितंबर 2021, 07:29

ऐसा इसलिए है क्योंकि गणितीय रूप से 00 का अर्थ 0 भी है। इसलिए इसे int() टाइप में कनवर्ट करते समय इसे केवल 0 के रूप में लिया जाता है।

तो प्रिंट स्टेटमेंट में int() में कनवर्ट न करें इसे स्ट्रिंग में रहने दें।

तो प्रिंट करें (str (ए) + str (बी))

0
I3lackI3uck 5 सितंबर 2021, 07:31