1. 程式人生 > >024-2018-1010 正則表示式和re模組

024-2018-1010 正則表示式和re模組

1.今日內容大綱

一. 昨日內容回顧
        序列化:
            pickle: 把物件序列化成bytes
                dumps() 序列化
                loads() 反序列化
                dump()
                load()
            shelve
                檔案型別的字典
                shelve.open(filename, writeback=True)
            json
                把物件序列化成字串.
                dumps()
                loads()
        configparser
            類似檔案字典. 主要用來處理ini檔案

二. 作業講解
  1. 整理部落格和筆記.
  2. 隨機生成4位驗證碼(包含數字, 字母)
  3. 模擬發紅包. 不需要考慮權重問題. 純隨機.

         例如, 小紅髮了100塊紅包. 發給30人. 請給出每個人能收到的錢數

明日默寫內容.

使用json模組完成:

  1. 字典-> 字串
  2. 字串 -> 字典
    
三. 今天主要內容
    1. 正則表示式
    2. re模組

2.練習


import random

lst = []
for i in range(48,58):
    lst.append(chr(i))

for i in range(ord("a"), ord("z") + 1):
    lst.append(chr(i))

for i in range(ord('A'), ord('Z') + 1):
    lst.append(chr(i))

print(random.sample(lst, 4))



import random

money = 100
ren = 30
qian_moneny = 0

lst = []
for i in range(ren-1):
    m = random.uniform(0, money - qian_moneny)
    qian_moneny += m
    lst.append(m)

lst.append(money - qian_moneny)
print(lst)

import random
def bonus(person,money):
    dic = {}
    num_sum = 0
    for i in range(person):
        num = random.randint(1,100) #在1-100隨機整數
        dic["Person%s"%(i+1)] = num
        num_sum += num

    for el in dic: #1/6
        x =round(dic[el]/num_sum*money,2)
        dic[el] = x
    return dic

result = bonus(10,10)
print(result)


def outer():
    content = "1111"
    def inner():
        print(content)

    return inner

fn = outer()
fn()
fn()
fn()
fn()

import json
from urllib.request import urlopen

content = urlopen("https://h5.ele.me/restapi/shopping/v2/restaurants/search?offset=15&limit=15&keyword=%E7%9B%96%E6%B5%87%E9%A5%AD&latitude=39.904172&longitude=116.407417&search_item_type=3&is_rewrite=1&extras[]=activities&extras[]=coupon&terminal=h5").read()

s = content.decode("utf-8")
dic = json.loads(s)

rwf = dic['inside']['0']['restaurant_with_foods']
for el in rwf:
    # 那商家
    print(el['restaurant']['name']) #  店鋪名稱
    for food in el['foods']:
        print(food['name'])

print(r"周潤發\n李\t嘉\r誠") # r能取消掉轉義