1.今日内容大纲
一. 昨日内容回顾 序列化: pickle: 把对象序列化成bytes dumps() 序列化 loads() 反序列化 dump() load() shelve 文件类型的字典 shelve.open(filename, writeback=True) json 把对象序列化成字符串. dumps() loads() configparser 类似文件字典. 主要用来处理ini文件 二. 作业讲解
- 整理博客和笔记.
- 随机生成4位验证码(包含数字, 字母)
- 模拟发红包. 不需要考虑权重问题. 纯随机.
例如, 小红发了100块红包. 发给30人. 请给出每个人能收到的钱数
- 完善昨天最后一题. 把对象通过pickle写入到文件中.
- (升级题))请从以下网址获取json数据. 并对json进行分析. 获取到每家店的名称以及特色菜, 并把获取到的店名和特色菜写入到文件中:https://h5.ele.me/restapi/shopping/v2/restaurants/search?offset=15&limit=15&keyword=%E7%8C%AA%E8%B9%84&latitude=39.904172&longitude=116.407417&search_item_type=3&is_rewrite=1&extras[]=activities&extras[]=coupon&terminal=h5 温馨提示. 首先在chrome地址栏中输入以上网址. 然后把显示的所有内容复制. 按F12 找到屏幕中的console. 粘贴进去. 回车 就能看到数据了.此题需要用到urllib.request模块中的urlopen
明日默写内容.
使用json模块完成:
- 字典-> 字符串
- 字符串 -> 字典
三. 今天主要内容 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能取消掉转义