Rosetta Code/Count examples: Difference between revisions

From Rosetta Code
Content added Content deleted
No edit summary
(added python and clarifed)
Line 5: Line 5:
Output:
Output:


<lang>
<lang>100 doors: 20 examples.
100_doors: 20 examples.
99 Bottles of Beer: 29 examples.
99_Bottles_of_Beer: 29 examples.
Abstracttype: 10 examples.
Abstract_type: 10 examples.
...
...
Total: X examples.
Total: X examples.</lang>
</lang>


=={{header|Python}}==
=={{header|Python}}==
Line 29: Line 27:
y = y.lower()
y = y.lower()
tasks[i] = y.count("{{header|")
tasks[i] = y.count("{{header|")
print i + ": " + str(tasks[i]) + " examples."
print i.replace("_"," ") + ": " + str(tasks[i]) + " examples."


print "Total: " + str(sum(tasks.values())) + " examples."</lang>
print "Total: " + str(sum(tasks.values())) + " examples."</lang>

Revision as of 19:14, 9 February 2009

Task
Rosetta Code/Count examples
You are encouraged to solve this task according to the task description, using any language you may know.

Find the total number of programming examples for each task and the total for all tasks.

Essentially, count the number of occurrences of "=={{header|" on each task page.

Output:

<lang>100 doors: 20 examples. 99 Bottles of Beer: 29 examples. Abstracttype: 10 examples. ... Total: X examples.</lang>

Python

<lang python>import urllib import xml.dom.minidom import re

tasks = {}

x = urllib.urlopen("http://www.rosettacode.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Programming_Tasks&cmlimit=500&format=xml") x = xml.dom.minidom.parseString(x.read()).getElementsByTagName("cm") x = [i.getAttribute('title').replace(" ","_") for i in x]

for i in x:

   y = urllib.urlopen("http://www.rosettacode.org/w/index.php?title=%s&action=raw" % i).read()
   y = y.lower()    
   tasks[i] = y.count("{{header|")
   print i.replace("_"," ") + ": " + str(tasks[i]) + " examples."

print "Total: " + str(sum(tasks.values())) + " examples."</lang>