मैं एक प्रोग्राम लिख रहा हूं जो यह गिनता है कि फ़्रीक्वेंसी एनालिसिस में मेरी मदद करने के लिए प्रत्येक अक्षर कितनी बार टाइप किया गया है। मेरा कार्यक्रम काम करता है, लेकिन यह हमेशा एक सुडौल रेखा के साथ मेरे उत्तरों का हिस्सा आउटपुट करता है। उदाहरण आउटपुट:
Length of message: 591 characters
A 11 1%
B 27 4%
C 37 6%
D 2 0%
E 2 0%
F 5 0%
G 17 2%
H 8 1%
I 9 1%
J 49 8%
L 7 1%
M 44 7%
N 20 3%
P 42 7%
Q 6 1%
R 36 6%
S 1 0%
U 6 1%
V 22 3%
W 13 2%
X 56 9%
Y 11 1%
मैं निम्नलिखित कोड का उपयोग कर रहा हूँ:
text = input()
symbols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
letters = collections.Counter(text.upper())
length = len(text)
print('Length of message: {} characters'.format(length))
for letter, times in sorted(letters.items()):
if letter not in symbols:
continue
percent = str(int((times / length) * 100)) + '%'
print(letter, times, percent)
मैं इसे कुछ इस तरह प्रदर्शित करने की कोशिश कर रहा हूं:
A 11 1%
B 27 3%
C 37 6%
D 2 0%
E 2 0%
F 5 0%
G 17 2%
H 8 1%
I 9 1%
J 49 8%
L 7 1%
M 44 7%
N 20 3%
P 42 7%
Q 6 1%
R 36 6%
S 1 0%
U 6 1%
V 22 3%
W 13 2%
X 56 9%
Y 11 1%
आपका अग्रिम में ही बहुत धन्यवाद!
3 जवाब
कई रिक्त स्थान के साथ पैड करने के लिए:
print(('{:<2}{:<3}{:<3}').format(letter, times, percent))
इस पर निर्भर करता है कि आप इसे कैसे प्रदर्शित करना चाहते हैं। अपने प्रिंट स्टेटमेंट में टैब जोड़ने का एक तरीका यह होगा।
उदाहरण के लिए:
print(letter,"\t", times,"\t", percent)
चूंकि आपने Python 3.6 को टैग किया है, इसलिए नए f-strings का उपयोग करें:
import collections
text = input()
symbols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
letters = collections.Counter(text.upper())
length = len(text)
print(f'Length of message: {length} characters')
for letter, times in sorted(letters.items()):
if letter not in symbols:
continue
percent = times / length
print(f'{letter} {times:2} {percent:5.1%}')
प्रतिशत स्ट्रिंग की मैन्युअल रूप से गणना करने की कोई आवश्यकता नहीं है। बस फ़्लोट मान percent = times / length
की गणना करें और f-स्ट्रिंग में उचित स्वरूपण का उपयोग करें।
{percent:5.1%}
का अर्थ है: यहां "प्रतिशत" चर को चौड़ाई 5 के क्षेत्र में डालें, जिसमें दशमलव के बाद एक स्थान हो। %
एक प्रारूप विनिर्देशक है जो संख्या को 100 से गुणा करता है और एक प्रतिशत चिह्न जोड़ता है। {letter}
बिना किसी विशेष स्वरूपण के डाला गया है, और {times:2}
एक 2-चौड़ा फ़ील्ड बनाता है जो डिफ़ॉल्ट रूप से संख्याओं के लिए सही-औचित्य है।
इनपुट का आउटपुट "abbbbbbbbbbbcccc":
Length of message: 14 characters A 1 7.1% B 10 71.4% C 3 21.4%
यह सभी देखें:
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।