def make_withdraw(balance, password): """Return a password-protected withdraw function. >>> w = make_withdraw(100, 'hax0r') >>> w(25, 'hax0r') 75 >>> error = w(90, 'hax0r') >>> error 'Insufficient funds' >>> error = w(25, 'hwat') >>> error 'Incorrect password' >>> new_bal = w(25, 'hax0r') >>> new_bal 50 >>> w(75, 'a') 'Incorrect password' >>> w(10, 'hax0r') 40 >>> w(20, 'n00b') 'Incorrect password' >>> w(10, 'hax0r') "Frozen account. Attempts: ['hwat', 'a', 'n00b']" >>> w(10, 'l33t') "Frozen account. Attempts: ['hwat', 'a', 'n00b']" >>> type(w(10, 'l33t')) == str True """ "*** YOUR CODE HERE ***" times = 0 attempts = [] def bank(amount, pwd): nonlocal balance nonlocal times nonlocal attempts if times == 3: return "Frozen account. Attempts: " + str(attempts) elif pwd != password: times += 1 attempts.append(pwd) return 'Incorrect password' elif balance < amount: return 'Insufficient funds' else: balance -= amount return balance return bank def make_joint(withdraw, old_pass, new_pass): """Return a password-protected withdraw function that has joint access to the balance of withdraw. >>> w = make_withdraw(100, 'hax0r') >>> w(25, 'hax0r') 75 >>> make_joint(w, 'my', 'secret') 'Incorrect password' >>> j = make_joint(w, 'hax0r', 'secret') >>> w(25, 'secret') 'Incorrect password' >>> j(25, 'secret') 50 >>> j(25, 'hax0r') 25 >>> j(100, 'secret') 'Insufficient funds' >>> j2 = make_joint(j, 'secret', 'code') >>> j2(5, 'code') 20 >>> j2(5, 'secret') 15 >>> j2(5, 'hax0r') 10 >>> j2(25, 'password') 'Incorrect password' >>> j2(5, 'secret') "Frozen account. Attempts: ['my', 'secret', 'password']" >>> j(5, 'secret') "Frozen account. Attempts: ['my', 'secret', 'password']" >>> w(5, 'hax0r') "Frozen account. Attempts: ['my', 'secret', 'password']" >>> make_joint(w, 'hax0r', 'hello') "Frozen account. Attempts: ['my', 'secret', 'password']" """ "*** YOUR CODE HERE ***" check = withdraw(0, old_pass) if type(check) == str: return check def joint(amount, passwd): if passwd == new_pass: return withdraw(amount, old_pass) return withdraw(amount, passwd) return joint
currently working on lab07 CS61A Week 6 objects have attributes today.year and method today.strftime(...) objects with good design will do what it supposed to do str(tmr - today) objects c...
{% highlight shell %} # put the output to the end of echo ls str | xargs echo # put the output between echo and hello ls str | xargs -I {} echo {} hello {% endhighlight %}
A simple example to show essential scheme syntax. {% highlight scheme %} (define (abs x) (if (< x 0) (- x) x)) (define (square x) (* x x)) (define (average x y) (/ (+ x y) 2)) ...
CS61A
Integration by Subsitution
A new version of content is available.