मुझे एक प्रोग्राम लिखना है जो जांचता है कि अल्पविराम से अलग स्ट्रिंग पर प्रत्येक संख्या सम या विषम है या नहीं।

मुझे इसे for लूप के साथ करना है, मेरे पास जो कोड है वह यह है:

getallen = '12, 3, 7, 25, 771, 45, 6, 98, 55, 546'

for number in getallen:
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

आउटपुट कुछ इस तरह होना चाहिए:

12 is even
3 is odd
7 is odd etc etc.
1
Matthijs Abma 19 मार्च 2020, 15:53

2 जवाब

आपका कोड काम नहीं कर रहा है क्योंकि getallen एक स्ट्रिंग है, एक सरणी नहीं। आपको इसे पहले getallen = getallen.split(',') के साथ एक सरणी में बदलना होगा

1
Matt 19 मार्च 2020, 15:55

मैट सही है कि आप एक स्ट्रिंग पर पुनरावृति कर रहे हैं, न कि एक सरणी, लेकिन विभाजन के बाद आपको प्रत्येक मान को एक संख्या में बदलने की भी आवश्यकता है। ऐसा करने के कुछ तरीके हैं:

आप सरणी के प्रत्येक आइटम को int का उपयोग करके एक संख्या में बदलने के लिए map का उपयोग कर सकते हैं:

for number in map(int, getallen.split(',')):
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

या आप प्रत्येक संख्या का परीक्षण करते समय उसे रूपांतरित कर सकते हैं:

for number in getallen.split(','):
    if int(number) %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

इन दोनों की उपज होगी:

12 is even
3 is odd
7 is odd
25 is odd
771 is odd
45 is odd
6 is even
98 is even
55 is odd
546 is even
1
Nick 19 मार्च 2020, 17:04