/
usr
/
lib64
/
python2.7
/
Demo
/
scripts
/
/usr/lib64/python2.7/Demo/scripts
mkdir
upload
Name
Size
Mode
Actions
beer.py
458
0755
edit
dl
rm
beer.pyc
703
0644
edit
dl
rm
beer.pyo
703
0644
edit
dl
rm
eqfix.py
6310
0755
edit
dl
rm
eqfix.pyc
4634
0644
edit
dl
rm
eqfix.pyo
4634
0644
edit
dl
rm
fact.py
1132
0755
edit
dl
rm
fact.pyc
1167
0644
edit
dl
rm
fact.pyo
1167
0644
edit
dl
rm
find-uname.py
1207
0755
edit
dl
rm
find-uname.pyc
1510
0644
edit
dl
rm
find-uname.pyo
1510
0644
edit
dl
rm
from.py
873
0755
edit
dl
rm
from.pyc
751
0644
edit
dl
rm
from.pyo
751
0644
edit
dl
rm
lpwatch.py
2837
0755
edit
dl
rm
lpwatch.pyc
2605
0644
edit
dl
rm
lpwatch.pyo
2605
0644
edit
dl
rm
makedir.py
509
0755
edit
dl
rm
makedir.pyc
732
0644
edit
dl
rm
makedir.pyo
732
0644
edit
dl
rm
markov.py
3589
0755
edit
dl
rm
markov.pyc
4025
0644
edit
dl
rm
markov.pyo
4025
0644
edit
dl
rm
mboxconvert.py
3188
0755
edit
dl
rm
mboxconvert.pyc
3253
0644
edit
dl
rm
mboxconvert.pyo
3253
0644
edit
dl
rm
morse.py
4314
0755
edit
dl
rm
morse.pyc
4431
0644
edit
dl
rm
morse.pyo
4431
0644
edit
dl
rm
pi.py
887
0755
edit
dl
rm
pi.pyc
921
0644
edit
dl
rm
pi.pyo
921
0644
edit
dl
rm
pp.py
3814
0755
edit
dl
rm
pp.pyc
2334
0644
edit
dl
rm
pp.pyo
2334
0644
edit
dl
rm
primes.py
602
0755
edit
dl
rm
primes.pyc
921
0644
edit
dl
rm
primes.pyo
921
0644
edit
dl
rm
queens.py
2238
0755
edit
dl
rm
queens.pyc
3024
0644
edit
dl
rm
queens.pyo
3024
0644
edit
dl
rm
README
1009
0644
edit
dl
rm
script.py
961
0755
edit
dl
rm
script.pyc
1235
0644
edit
dl
rm
script.pyo
1235
0644
edit
dl
rm
unbirthday.py
3139
0755
edit
dl
rm
unbirthday.pyc
3002
0644
edit
dl
rm
unbirthday.pyo
3002
0644
edit
dl
rm
update.py
2749
0755
edit
dl
rm
update.pyc
2759
0644
edit
dl
rm
update.pyo
2759
0644
edit
dl
rm
Edit:
/usr/lib64/python2.7/Demo/scripts/markov.py
(3589B)
#! /usr/bin/python2.7 class Markov: def __init__(self, histsize, choice): self.histsize = histsize self.choice = choice self.trans = {} def add(self, state, next): self.trans.setdefault(state, []).append(next) def put(self, seq): n = self.histsize add = self.add add(None, seq[:0]) for i in range(len(seq)): add(seq[max(0, i-n):i], seq[i:i+1]) add(seq[len(seq)-n:], None) def get(self): choice = self.choice trans = self.trans n = self.histsize seq = choice(trans[None]) while True: subseq = seq[max(0, len(seq)-n):] options = trans[subseq] next = choice(options) if not next: break seq += next return seq def test(): import sys, random, getopt args = sys.argv[1:] try: opts, args = getopt.getopt(args, '0123456789cdwq') except getopt.error: print 'Usage: %s [-#] [-cddqw] [file] ...' % sys.argv[0] print 'Options:' print '-#: 1-digit history size (default 2)' print '-c: characters (default)' print '-w: words' print '-d: more debugging output' print '-q: no debugging output' print 'Input files (default stdin) are split in paragraphs' print 'separated blank lines and each paragraph is split' print 'in words by whitespace, then reconcatenated with' print 'exactly one space separating words.' print 'Output consists of paragraphs separated by blank' print 'lines, where lines are no longer than 72 characters.' sys.exit(2) histsize = 2 do_words = False debug = 1 for o, a in opts: if '-0' <= o <= '-9': histsize = int(o[1:]) if o == '-c': do_words = False if o == '-d': debug += 1 if o == '-q': debug = 0 if o == '-w': do_words = True if not args: args = ['-'] m = Markov(histsize, random.choice) try: for filename in args: if filename == '-': f = sys.stdin if f.isatty(): print 'Sorry, need stdin from file' continue else: f = open(filename, 'r') if debug: print 'processing', filename, '...' text = f.read() f.close() paralist = text.split('\n\n') for para in paralist: if debug > 1: print 'feeding ...' words = para.split() if words: if do_words: data = tuple(words) else: data = ' '.join(words) m.put(data) except KeyboardInterrupt: print 'Interrupted -- continue with data read so far' if not m.trans: print 'No valid input files' return if debug: print 'done.' if debug > 1: for key in m.trans.keys(): if key is None or len(key) < histsize: print repr(key), m.trans[key] if histsize == 0: print repr(''), m.trans[''] print while True: data = m.get() if do_words: words = data else: words = data.split() n = 0 limit = 72 for w in words: if n + len(w) > limit: print n = 0 print w, n += len(w) + 1 print print if __name__ == "__main__": test()
Save
cmd:
run