Several exercises

1 valid_pwd

#1-4 均是在Windows Powershell 中编译通过
>>> import re
>>> def valid_password(pwd):
...     if re.match(r'^[a-zA-Z][0-9a-zA-Z\_]{0,8}[a-zA-Z]$',pwd):
...         return True
...     else:
...         return False
...
>>> valid_password('a')
False
>>> valid_password('1pgh')
False
>>> valid_password('pgh1')
False
>>> valid_password('pgh')
True

2 prime_numbers

>>> def prime_numbers():
...     l=[2]
...     for x in range(3,101):
...         n=2
...         count = 0
...         while n < x:
...             if x % n != 0:
...                 count = count +1
...             n = n + 1
...             if count == (x-2):
...                 l.append(x)
...     return l
...# 不考虑纯函数的话用filter函数会更简便
>>> prime_numbers()
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

3 letter_count

>>> def letter_count(str):
...     data = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
...     l = []
...     for i  in data:
...         count = 0
...         n = len(str) - 1
...         while n>= 0:
...             if i == str[n]:
...                 count = count +1
...             n = n-1
...         if count > 0:
...             l.append((i,count))
...     return l
...

4 cap_string(str)

>>> def cap_string(str):
...     str = str.lower()
...     length = len(str)
...     n = 1
...     if str[0] != ' ' :
...         l = str[0].upper()
...     else :
...         l = str[0]
...     while n < length:
...         if str[n] != ' ':
...             if str[n-1] == ' ':
...                 l = l + str[n].upper()
...             else:
...                 l = l + str[n]
...         else:
...             l = l + str[n]
...         n = n +1
...     return l
...# 列表生成式应该会更快点

5 class Queue

#这是在pycharm中编译通过的,总感觉。。。这么简单?
class Queue(object): 
    def __init__(self):
        self.items = []

    def enqueue(self,item):
        self.items.append(item)

    def dequeue(self):
        return self.items.pop(0)

q = Queue()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)

print q.dequeue()
print q.dequeue()
print q.dequeue()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值